2010-08-03 3 views
2

특정 코어에 프로세스를 할당하려면 어떻게합니까? 필자는 16 코어 머신을 가지고 있으며, 동일한 코어에서 실행되는 모든 코어/코어 코어 대신 여러 코어에 프로세스를 할당해야합니다.Perl을 사용하여 코어에 프로세스 할당

Parallel :: ForkManager로이 작업을 수행 할 수 있습니까? 또는 표준 Perl 배포판을 사용하여 어떻게합니까?

모든 포인터가 감사하겠습니다.

감사

+0

OS가 자동으로 코어간에 프로세스를 가장 효율적으로 배포하지 않습니까? 일반적으로이 문제는 낮은 수준의 문제를 다루지 않아야합니다. – Ether

+0

프로그램을 실행할 때 가끔 임의적으로 2 코어가 언젠가 1/16의 모든 16 개 프로세스를 사용합니다. 이것은 시스템에 최소 백그라운드 프로세스 및 계산이있는 경우입니다. 핵심은 하나의 핵심 할당에 대해 하나의 프로세스를 명시 적으로 지정해야한다는 것입니다. –

+0

당신은 포크 :: 슈퍼 [여기]를 언급 확인할 수 있습니다 (http://stackoverflow.com/questions/21051479/perl-fork-queue-for-n-core-processor?lq=1) –

답변

5

윈도우에서, 당신은 Win32::Process을 사용할 수 있습니다, 그것은 당신이 원하는 일을해야 SetProcessAffinityMask라는 서브 루틴을 가지고 있습니다.

는 리눅스에서, Sys::CpuAffinity를보십시오.

+1

'sys 인 :: CpuAffinity' Windows에서도 작동합니다. – mob

관련 문제