2016-08-27 5 views
7

일부 컴퓨팅 클러스터를 사용하기 위해 SLURM을 사용했으며 -ntasks 또는 -n이었습니다. 그것은 (http://slurm.schedmd.com/sbatch.html) 내가 분명히 문서를 읽고 :SLURM에서 --ntasks 또는 -n 작업은 무엇을합니까?

sbatch이 작업을 실행하지 않습니다, 그것은 자원 의 할당을 요청하고 배치 스크립트를 제출합니다. 이 옵션은 Slurm 컨트롤러 에 할당 내에서 실행되는 작업 단계는 최대 개의 작업을 실행하고 충분한 자원을 제공 할 것을 조언합니다. 노드 당 기본값은 이지만 태스크 --cpus-per-task 옵션은 이 기본값을 변경합니다.

특정 부분 나는 그것이 무엇을 의미하는지 이해하지 못한다는 다음과 같습니다 할당 내에서

실행은 수 작업의 최대를 시작하고 에 충분한 자원을 제공 할 것입니다.

내가 몇 가지 질문이 있습니다
  1. 내가 내 첫 번째 질문은 단어 "작업"무엇을 추측 의미와 차이는 SLURM 문맥에서 단어 "일"로한다. 나는 대체로 직장을 bbash 스크립트를 sbatch my_batch_job.sh처럼 실행한다고 생각한다. 어떤 작업이 의미하는지 확실하지 않습니다.
  2. 나는 task라는 단어를 job과 동일시하면 -n, --ntasks=<number>에 대한 인수에 따라 동일한 동일한 bash 스크립트를 여러 번 실행했을 것이라고 생각했습니다. 그러나, 나는 분명히 클러스터에서 그것을 밖으로 테스트 --ntask=9와 함께 echo hello을 실행하고 sbatch가 stdout에 안녕하세요 9 시간을 에코 것이라고 기대했다 (이는 slurm-job_id.out에 수집되지만 놀랍게도 내 echo hello 스크립트의 단일 실행이 있었다 그렇다면 이 명령은 심지어 무엇을합니까? 그것은 아무것도하지 않는다 또는 적어도 내가 일을 할 생각 뭐죠 볼 수없는 것 같다.

내가 -a, --array=<indexes> 옵션은 여러 작업을 위해 존재 알고있다. 즉, 다른입니다 간단히 말해서 --ntasks이 무엇인지 알고 싶습니다. 이상적으로 예제를 통해 클러스터에서 테스트 할 수 있습니다.

답변

7

"--ntasks"옵션은 실행되는 명령의 인스턴스 수를 지정합니다. 일반적인 클러스터 설정의 경우 "srun"명령을 시작하면 MPI 순위 수에 해당합니다.

반면 "--cpus-per-task"옵션은 각 작업에서 사용할 수있는 CPU 수를 지정합니다.

출력이 나에게도 놀라움을 선사합니다. 스크립트 또는 srun을 통해 명령을 실행 했습니까? 는 당신에게 같은 스크립트 모습을합니까 :

#!/bin/bash 
#SBATCH --ntasks=8 
## more options 
echo hello 

이해야 항상 출력 단 한 줄의 스크립트 만 제출 노드가 아닌 작업자에서 실행되기 때문이다.

#!/bin/bash 
#SBATCH --ntasks=8 
## more options 
srun echo hello 

SRUN 스크립트가 작업자 노드에서 명령을 실행하고 그 결과로 당신이 인사의 8 개 라인을 얻어야한다 원인이 같은 스크립트가 보면.