내 MPI 프로세스를 (물리적 인) 코어 목록에 정확하게 고정하고자합니다. 나는 mpirun이 --help 출력의 다음 사항을 참조하십시오mpirun --cpu-set 대 --rankfile (Open MPI) 1.4.5
-cpu-set|--cpu-set <arg0>
Comma-separated list of ranges specifying logical
cpus allocated to this job [default: none]
...
-rf|--rankfile <arg0>
Provide a rankfile file
은 다음 내 프로세서 토폴로지가 될 때 :
-------------------------------------------------------------
CPU type: Intel Core Bloomfield processor
*************************************************************
Hardware Thread Topology
*************************************************************
Sockets: 1
Cores per socket: 4
Threads per core: 2
-------------------------------------------------------------
HWThread Thread Core Socket
0 0 0 0
1 0 1 0
2 0 2 0
3 0 3 0
4 1 0 0
5 1 1 0
6 1 2 0
7 1 3 0
-------------------------------------------------------------
Socket 0: (0 4 1 5 2 6 3 7)
-------------------------------------------------------------
을 이제 경우 mpirun -np 2 --cpu-set 0,1 --report-bindings ./solver 프로그램을 정상적으로 시작하지만 고려하지 않음 --cpu-set 인수를 제공했습니다. 그에 mpirun을 실제로 최고으로 확인
[neptun:14781] [[16333,0],0] odls:default:fork binding child [[16333,1],0] to slot_list 0
[neptun:14781] [[16333,0],0] odls:default:fork binding child [[16333,1],1] to slot_list 1
나를 보여줍니다 나에게 다음과 같은 출력을 제공 ./solver에 mpirun -np 2 --rankfile rankfile --report-바인딩 내 프로그램을 시작하는 한편 실제로 지정된 코어를 사용합니다. 그러나이 산출물을 어떻게 해석해야합니까? 호스트 (neptun)와 지정된 슬롯 (0,1)을 제외하고 나는 실마리가 없습니다. 다른 명령과 동일 나는 밖으로 시도 :
$mpirun --np 2 --bind-to-core --report-bindings ./solver
[neptun:15166] [[15694,0],0] odls:default:fork binding child [[15694,1],0] to cpus 0001
[neptun:15166] [[15694,0],0] odls:default:fork binding child [[15694,1],1] to cpus 0002
와 함께
$mpirun --np 2 --bind-to-socket --report-bindings ./solver
[neptun:15188] [[15652,0],0] odls:default:fork binding child [[15652,1],0] to socket 0 cpus 000f
[neptun:15188] [[15652,0],0] odls:default:fork binding child [[15652,1],1] to socket 0 cpus 000f
최고 명령을 다시 한 번 코어 0과 1이 사용되는 것을 나에게 보여 --bind-에 코어, 출력은 왜입니까 cpus 0001 및 ? - 바인드 소켓은 더 많은 혼동을 초래합니다. 2x 000f? 왜 작업 명령을 --cpu-설정되어 있지 않습니다 -
:
- --report-bindings 출력의 결과를 어떻게 해석해야합니까?
종류는 출력이 정확히 당신이 열기 MPI를 말한 것과 일치 두 경우 모두
그게 문제를 해결했습니다. 감사합니다! 좋은 링크, 나는 이미 그 두 페이지에 많은 시간을 보냈지 만, 작동하지 않는 CPU 설정 옵션에 대한 설명을 찾을 수 없습니다 ... –