OpenPBSで個人的によく使うコマンドをまとめました。
ジョブ投入 qsub exec.sh
ジョブを投入するには、実行内容を記述したexec.shをqsubコマンドで実行する。
exec.shの例
#!/bin/bash
#PBS -N TestJob
#PBS -l walltime=24:00:00
#PBS -l ncpus=1
#PBS -q workq
#PBS -o stdout.txt
#PBS -e stderr.txt
cd $PBS_O_WORKDIR
sleep 1s
echo HelloWorld
#PBSで始まる行はジョブに関する設定。書いておいたほうが良いが、書かない場合もデフォルト設定のものが適用されて動作はする。また qsub -N TestJob exec.sh のようにコマンドラインで指定することも可能。よく使う項目を以下の表にまとめた。
| スクリプト内 | コマンドライン引数 | |
|---|---|---|
| ジョブ名の指定 | #PBS -N JobName | -N JobName |
| 使用CPUコア数 | #PBS -l ncpus=1 | -l ncpus=1 |
| 実行時間上限 | #PBS -l walltime=24:00:00 | -l walltime=24:00:00 |
| キューの指定 | #PBS -q workq | -q workq |
| 標準出力ファイル | #PBS -o stdout.txt | -o stdout.txt |
| エラー出力ファイル | #PBS -e stderr.txt | -e stderr.txt |
| コマンドラインからスクリプト内に変数を渡す | -v “var1=${var1},var2=${var2}” |
ジョブの実行開始時刻を指定する方法
qsub -a 1200 exec.sh
1200は12時00分という意味。ジョブがキューに追加された後に実行待ち状態になり、12時になったら処理が始まる。ここの日時指定方法は以下の表のとおり。
| qsub -a 1300 | その日の13時00分 |
| qsub -a 06201300 | 6月20日の13時00分 |
ジョブ確認 qstat
qsubで投入したジョブの状況を確認する。
| qstat | 実行待ち&実行中のジョブ一覧の確認 |
| qstat <ジョブ番号> | 指定したジョブの確認 |
| qstat -x | 実行待ち&実行中&終了したジョブ一覧の確認 |
| qstat -f <ジョブ番号> | 指定したジョブの詳細確認 |
| qstat -q | キューの使用状況の確認 |
| qstat -B | ノードの使用状況の確認 |
| qstat -w | qstatの内容を文字列幅を広げて確認 |
ノードの稼働状況の確認
pbsnodes -a
ノードやキューの設定を確認する
qmgr -c “p s”
コメント