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 | 現在の使用者の作業一覧を確認。 |