PBS 작업 명령어 정리
개요
PBS는 Portable Batch System의 약자로, 대규모 컴퓨터 클러스터에서 작업을 관리하는 데 사용되는 소프트웨어이다. PBS는 작업 스케줄링, 자원 관리 및 작업 모니터링을 지원하여 사용자가 클러스터에서 효율적으로 작업을 수행할 수 있도록 돕는다.
작업 스크립트
작업 스크립트는 PBS에 제출할 작업을 정의하는 파일이다. 주석은 #
으로 시작하며, #!
나 #PBS
와는 다르다는 것에 유의하자.
#!/bin/sh
: 스크립트의 인터프리터를 지정. 스크립트 파일을 실행할 때 어떤 셸을 사용할지를 선택함.#PBS
: 작업에 대한 각종 메타 정보를 지정하는 지시어.#
: 주석
PBS 지시어 | 설명 |
---|---|
-N {JOB_NAME} | 작업 이름 지정. |
-q {QUEUE} | 사용할 큐 이름 지정. |
-l select=1:ncpus=1:ngpus=1 | 사용할 자원 (코어 개수 등) 지정. |
-o {PATH} | 표준 출력 파일 경로 지정. |
-e {PATH} | 표준 에러 파일 경로 지정. |
-j oe | 표준 출력(stdout)에 표준 에러(stderr)를 통합. |
-j eo | 표준 에러에 표준 출력을 통합. |
자원 할당 변수 키워드는 아래와 같다.
select
: 사용할 노드 수ncpus
: 사용할 CPU 코어 수ngpus
: 사용할 GPU 개수walltime
: 작업의 최대 실행 시간
환경변수는 작업 스크립트에서 사용할 수 있는 변수로, PBS가 자동으로 설정해준다. 아래는 몇 가지 예시이다.
환경변수 | 설명 |
---|---|
PBS_O_WORKDIR | 작업이 제출된 디렉토리 경로(qsub이 실행된 절대 경로). |
PBS_JOBID | 작업 ID. |
PBS_JOBNAME | 작업 이름. |
스크립트 파일을 아래와 같이 작성할 수 있다.
#!/bin/sh
#PBS -N train_mymodel # 작업 이름
#PBS -q gpu # 사용할 큐 이름
#PBS -l select=1:ncpus=1:ngpus=1
#PBS -o ./eo/train # 표준 출력 파일 경로
#PBS -j oe # 표준 출력과 표준 에러를 하나의 파일로 합침
module purge
module load cuda/12.1
cd $PBS_O_WORKDIR
{작업 내용}
exit 0
명령어
명령어 | 설명 |
---|---|
qsub {script_file} | 작업 제출. |
qstat | 현재 큐에 제출된 작업 목록 확인. |
qstat -u {user} | 특정 사용자의 작업 목록 확인. |
qstat -u $USER | 현재 사용자의 작업 목록 확인. |