어떤 이유로 SLURM을 사용하여 CentOS8 클러스터에서 mpi 작업을 시작할 때 slurm은 mpi 프로세스를 항상 CPU0에서 시작하는 CPU에 바인딩합니다.
컴퓨팅 노드에 128개의 CPU 코어가 있다고 가정합니다. 노드에 64개의 CPU가 필요한 mpi 작업을 시작합니다. 좋습니다. 처음 64개 코어(첫 번째 소켓)에 할당되었으며 그곳에서 제대로 실행됩니다.
이제 동일한 노드에 또 다른 64CPU mpi 작업을 제출하면 SLURM이 이를 첫 번째 슬롯에 다시 배치하므로 두 작업 모두 CPU 0-63을 사용하지만 두 번째 슬롯에는 CPU 64 -127이 전혀 사용되지 않습니다.
다양한 mpi 매개변수를 시도했지만 소용이 없었습니다. 2개의 작업을 서로 다른 소켓에 할당할 수 있는 유일한 방법은 openmpi의 레벨 파일을 사용하는 것입니다. 그러나 SLURM이 제대로 작동한다면 그럴 필요는 없습니다.
SLURM에서 소비되는 리소스는 CR_Core입니다. TaskPlugin=작업/친화성.
SLURM 없이 동일한 노드에서 동일한 2x mpi 코드를 실행하면 동일한 openmpi가 CPU를 올바르게 할당합니다.
SLURM이 그렇게 이상하게 행동하는 이유는 무엇입니까?