自分が使っている気象モデルSCALEを実行するものを例にします。
WRFやWRFDA、CReSS、fortranコンパイルなどほぼ同じです。
随時更新はしますが、きっとモデルを扱っている人ならきっと大丈夫です。
1. 基本操作
ジョブスケジューラーの基本操作は2つです。
$ qsub hogehoge.sh
$ qstat
1行目のqsubがジョブを投入するコマンドで、hogehoge.shの設定を読み込む。
2行目のqstatがジョブの状況を表示するコマンド。
2.qsubとhogehoge.shの書き方
ジョブを投入する際に、その設定を書き込むシェルの書き方の見本と、オプションを整理します。
#!/bin/sh
#PBS -l nodes=1:ppn=16
#PBS -j oe
cd $PBS_O_WORKDIR
NPROCS=`wc -l <$PBS_NODEFILE`
mpirun -machinefile $PBS_NODEFILE -np $NPROCS ./scale-rm run.d01.conf
1行目:おまじない
2行目:ノードとコア数を指定している(例の場合1ノード16コア)
3行目:ジョブの標準出力ファイルと標準エラー出力ファイルを結合する
4行目:ブランク
5行目:qsubを実行しているディレクトリ移動する。
6行目:PBS_NODEFILEの数をカウントしてNPROCSに格納する(例の場合16)
7行目:実行ファイルの実行
というわけで、何も考えずに1ノード16コアでジョブを実行したい場合は、コピペしてもらい、7行目だけ自分の実行したいものに書き換えれば良い(はず)
mpirun -np 16 wrf.exeなど。
以下にhogehoge.sh内で使えるオプションをまとめます。
オプション | 説明 | デフォルト |
---|---|---|
#PBS -q queue_name | 投入するqueueを指定する。 | default queueで実行される。 |
#PBS -j oe | 投入するqueueを指定する。 | default queueで実行される。 |
#PBS -l nodes=X:ppn=Y | ジョブを実行するノード数Xとコア数Yを指定する。 | queueのデフォルト値 |
PBS -l ncpus=64 | nodes * ppn。これを指定しないと全コア専有してしまうらしい…のだけど今のところ大丈夫そう? | |
#PBS -l mem=8G | 確保するメモリ量を指定する。 |
3.qstatの使い方
※作成中
4.参考HP
Altair PBS Professional 2021.1 User's Guide(長い
https://www.altairjp.co.jp/pdfs/pbsworks/PBSUserGuide2021.1.pdf