slurm 스케줄러에서는 sbatch 옵션으로 이름, 작업시간 뿐만 아니라 자원 할당량을 지정할 수 있습니다. 비슷한 옵션이 많아서... 자주 사용하는 옵션만 메모용으로 남겨 둡니다.
-J, --jobname=작업 이름
작업 이름을 지정.
-t, --time=시간
작업이 수행될 시간을 지정.
-o, --output=파일 이름 패턴
표준 출력 파일 지정.
-e, --error=파일 이름 패턴
표준 에러 파일 지정.
--priority=값
작업의 우선순위 지정. (관리자만 사용 가능)
-d, --dependency=dependency 목록
작업에 종속성을 설정. after, Afterany, Afterok ... 등
--mem=메모리 크기
작업에 사용할 메모리를 지정. --mem-per-cpu, --mem-per-gpu 와 중복으로 설정 불가. (서로 상호 배타적)
--exclusive
노드 독점 사용 옵션.
-n, --ntasks=값
작업에서 사용할 총 task 수를 입력. 예를 들어 2개 노드에서 2 MPI 실행을 한다면 -n 4 가 되는 것.
--ntask-per-node=값
노드당 실행될 task 수. 예를 들어 2 MPI 하여야 한다면 2 를 입력.
-c, --cpus-per-task=cpu 개수
task 당 사용될 cpu 수를 입력. 예를 들어 OpenMP, thread 로 실행되는 프로그램은 실행할 스레드 수 만큼 값을 입력. 1 노드에서 2 MPI, 4 OpenMP 프로그램이라면...? ntask-per-node 2, cpus-per-task=4 (-n 은 두 값의 곱)
--cpus-per-gpu=cpu 개수
gpu 당 사용될 cpu 수를 입력. gpu-cpu 매칭을 의미하는 것은 아님.
--gres=name[[:type]:count]
가능한 리소스를 지정하여 할당. 예를 들어 gpu 카드 2장이라면 --gres=gpu:2 (특정 GPU를 지정하여 가져올 수도 있다.)