2014-12-18 8 views
2

SLURM 클러스터에서 MPI 작업을 실행하고 결과 프로세스를 노드의 특정 코어에 고정하려고합니다. 여기에는 서로 다른 노드에있는 프로세스의 수와 다른 노드의 다른 고정 패턴이 포함될 수 있습니다. salloc을 사용하여 노드를 할당하고 mpi 프로세스에 대한 순위 파일을 만들고 mpirun을 사용하여 프로세스를 시작하면 비교적 간단합니다.srun을 통해 실행 된 MPI 작업의 프로세스 고정

유감스럽게도 시간 초과 또는 선매와 같은 이유로 할당이 취소 된 경우 노드에서 실행중인 프로세스가 종료되지만 헤드 노드에서 실행중인 mpirun이 종료되지 않고 무시할 수있는 생성에서 이동합니다 무한정 실행중인 스레드에 대해 100 %로드를 생성하도록로드합니다.

대답은 mpirun 대신 srun을 사용하여 응용 프로그램을 시작하는 것으로 보입니다. 그러나 이렇게하면 프로세스 배치를 설정하는 방법을 찾는데 어려움을 겪고 있습니다. 누구든지 어떤 제안이 있습니까?

+0

당신이'보다는'salloc'를 사용하는 이유 모든 이유 sbatch'? 프로그램이 상호 작용 하는가? 그렇지 않으면,'sbatch'로 주 mpirun 프로세스가 종료됩니다. – damienfrancois

+0

나는 실행중인 실험의 본질 때문에 salloc을 사용하여 많은 수의 기계를 할당 한 다음 srun을 사용하여이 할당 내에서 특정 작업을 시작합니다. 나는 salloc을 사용하여 무엇인가를 시작하기 전에 모든 필요한 기계를 가지고 있는지 확인하고자한다. –

답변

0

저는 슬럼 전문가로서 당신이하려는 일의 구체적인 내용을 모른 채 구체적인 대답을 드릴 수는 없습니다. 그러나, 당신이 아마 원하는 것은 SLURM 문서에서 발견된다 : 코어에 결합 할 수있는 백만 가지 방법, 소켓, 뭐든에 대한 설명서의 모든 종류가 있습니다

https://computing.llnl.gov/linux/slurm/mc_support.html

합니다. 프로세스를 개별 코어에 구체적으로 바인드하려면 --cpu-bindmap_cpu과 함께 사용하려고합니다.

특정 시스템에서 해당 시스템에서 수행하는 방법에 대한 설명서가 제공 될 수도 있습니다. 예를 들어, 아르곤 국립 연구소 (Argonne National Laboratory)의 슈퍼 컴퓨터에, 당신은 그들의 IBM BG/Q를 위해 특별히 작업을 수행하는 방법에 대한 자신의 사이트에 대한 정보를 찾을 수 있습니다

http://www.alcf.anl.gov/user-guides/running-jobs#mapping-of-mpi-tasks-to-cores

+0

고마워요.하지만이 문서를 잠시 동안 살펴 봤는데 지금까지 볼 수 있듯이이 명령을 사용하여 프로세스의 동질성 배열을 구성 할 수 있습니다. 노드 당 프로세스 수를 지정하고 노드 수. 내가하려고하는 일은 노드 A의 코어 2,4,6,8,9에 5 개의 프로세스를, 노드 b의 코어 1,3,5,9에 대해 4 개의 프로세스를 원하는대로 지정할 수 있습니다. 예를 들어 다음과 같이 할 수 있습니다. 순위 파일로해라. –