Linux의 C: 25개의 병렬 프로세스를 실행하는 것이 24개의 프로세스를 실행하는 것보다 훨씬 빠릅니다.

Linux의 C: 25개의 병렬 프로세스를 실행하는 것이 24개의 프로세스를 실행하는 것보다 훨씬 빠릅니다.

내 C 프로그램은 새로운 프로세스를 생성하고 각 프로세스가 작업을 완료하는 데 걸리는 시간을 측정하기 위해 fork()를 사용합니다. 사실 저는 그들에게 이 일을 10,000번 하게 하고 시간을 측정했습니다.

측정은 gettimeofday(...)를 통해 수행되며 각 프로세스가 완료된 후 결과가 인쇄됩니다.

요점은 24개의 병렬 프로세스를 실행하면 이 시간이 약 180,000usec에 클러스터된다는 것입니다. 하지만 프로세스를 25개로 늘리면 시간이 줄어들고 약 100,000usec로 수렴됩니다. 이것이 Linux에만 해당됩니까? 더 많은 프로세스를 생성하면 운영 체제에서 더 많은 리소스를 얻을 수 있습니까?

아니면 이것이 전혀 불가능하고 제가 측정하고 있는 시간이 잘못된 걸까요? 1->24 과정에서는 측정값이 증가하고 25 과정에서는 감소한다는 점에 유의해야 한다.

관련 정보