Slurm
slurm 사용 방법입니다.
Last updated
slurm 사용 방법입니다.
Last updated
Slurm은 작업 스케줄러의 한 종류로, 클러스터 시스템 상에서 작업을 관리하기 위한 프로그램입니다.
로그인 노드에서 slurm 스케줄러에 작업을 제출하면, 비어 있는 계산 노드 중 하나를 할당 받아 작업이 실행하게 됩니다.
slurm 주요 명령어는 다음과 같습니다.
공식 문서:
위 명령어를 사용하여 job 을 실행하면, slurm 이 자원을 할당하여 job을 실행하게 됩니다.
공식 문서:
job 을 slurm 프로그램에 제출하는 명령어로, 지금 당장 사용할 수 있는 자원이 없을 경우 충분한 자원이 확보될 때까지 기다렸다가 job 을 실행하게 됩니다.
공식 문서:
현재 slurm 으로 관리되는 자원에 대한 정보를 볼 수 있는 명령어입니다.
공식 문서:
slurm 에 제출된 job 들을 확인할 수 있는 명령어입니다.
slurm 에 제출된 job 을 중단하는 명령어입니다.
서버에서 slurm 을 사용하여 프로그램을 실행하는 방법은 크게 2가지 입니다.
slurm 프로그램을 이용하여 자원을 할당받고, 할당받은 자원을 terminal 형태로 사용할 수 있도록 작성해둔 script 입니다.
다만, 이 방법을 사용하여 할당받은 자원의 경우 사용자가 장시간 사용하지 않더라도, 제한 시간에 도달하거나 사용자가 직접 종료하지 않는 한 할당받은 자원이 해체되지 않으므로, GSDS 서버 자원을 효율적으로 사용하지 못하는 직접적인 원인이 될 수 있습니다.
따라서, 가능한 디버깅 용도로만 사용하고, 다수의 작업을 동시에 실행해야 하는 경우 sbatch 명령어를 사용해주시기 바랍니다. (launch-shell 최대 사용 시간을 4시간으로 변경했습니다.)
사용 예시는 아래와 같습니다.
sbatch 를 사용하여 프로그램을 실행하기 위해서는 아래와 같이 사용하고자 하는 자원에 대한 내용을 명시한 script 가 필요합니다. 아래는 sbatch 를 이용하기 위한 script 의 한 예시입니다.
위와 같이 작성된 script 는 아래와 같이 실행하면 됩니다.
제출된 job 은 squeue
명령어를 통해 확인할 수 있습니다.
slurm 프로그램을 이용하여 자원을 할당받고, 할당받은 자원을 통해 Jupyter Notebook을 사용할 수 있도록 작성해해둔 script 입니다.
로그인 노드에서 위 형식에 맞게 명령어를 입력하면 아래와 같은 출력을 볼 수 있습니다.
( anaconda가 없는 경우 자동으로 설치됩니다.)
맨 아래 Jupyter Notebook에 접근 가능한 URL이 나타납니다.
해당 URL을 복사한 후 노드 이름을 적절한 IP 주소로 변경하여 브라우저 창에 입력하면 됩니다.
각 노드별 접근 가능한 IP는 다음과 같습니다.
a00-a11 -> 147.47.200.192
b00-b15 -> 147.47.200.188
b16-b31 -> 147.47.200.22
위 예시에서는 노드 b24를 할당받았으므로 URL에서 b24를 147.47.200.22로 바꾸면 접속이 가능합니다.
launch-jupyter 역시 디버깅 용도로만 사용하고, 다수의 작업을 동시에 실행해야 하는 경우 sbatch 명령어를 사용해주시기 바랍니다. ( launch-jupyter 최대 사용 시간은 4시간입니다.)
공식 문서: