Quick Start (バッチ処理)
はじめに
以下ではユーザ名を USER とします. 適宜, 自分のユーザ名に読み替えて下さい.
また, 以下のような "$" から始まるブロックは, ターミナル上でコマンドを実行することを示します.
$ pwd
システムへのデータ転送
まず, システムに必要なファイルを転送する.
- 方法 1: JupyterLab(https://pbs.epi.it.matsue-ct.jp:8000) からファイルをアップロードする.

方法 2: JupyterLab 以外の方法. 手元の PC にある test.c と, データの入ったディレクトリ data を scp コマンドで転送する.
$ scp -r test.c data USER@pbs.epi.it.matsue-ct.jp:~/
なお,データ転送には scp コマンドや rsync コマンドだけでなく, FileZilla や WinSCP などのアプリを用いることもできる.
システムへログイン
- 方法 1: JupyterLab(https://pbs.epi.it.matsue-ct.jp:8000) を利用

方法 2: ターミナルソフトを利用. Windows では putty や teraterm が使えるでしょう. Mac ではターミナルが使えるでしょう.
$ ssh -l USER pbs.epi.it.matsue-ct.jp
ジョブ管理システム (PBS) を用いたプログラムの実行
ジョブスクリプトの準備
ジョブスクリプトを作成する. /work/SAMPLES 以下に例があるのでそれを活用すると良い. 以下では, システムで用意されているジョブスクリプトと python プログラムを実行する場合を示します.
$ cd (ホームディレクトリへ移動) $ cp -r /work/SAMPLES/Python-venv ./ (サンプルをコピー) $ cd Python-venv/
フォルダ内の job01.sh, job02.sh がジョブスクリプトである. cat コマンドなどで中身を確認することができます.
$ cat job01.sh #!/bin/sh #PBS -q gpu #PBS -l select=1:ncpus=1:ngpus=1 # ジョブを実行したディレクトリに移動 cd $PBS_O_WORKDIR # 開始処理. venv 環境をアクティベート. . /work/ENV/matsue-ct/venv/bin/activate # python プログラムの実行 python tensorflow2-sample.py # 終了処理. venv 環境をディアクティベート. deactivate
自分のプログラムを実行する場合は,プログラムを実行する部分 (python tensorflow2-sample.py) の部分を書き換えて下さい.ファイル編集に用いるエディタとしては vi, emacs, nano などが使えます (自分の PC へ scp して編集してから戻しても良い).
オプションで select=1 (1 ノード利用) や ngpus=1 (Tesla V100S 1 基利用) となっていることを確認すること. CPU 1 コアのみ使う場合は ncpus=1 となっていれば良いが, もし, MPI や OpenMP で並列化する場合は ncpus, mpiprocs, ompthreads の指定を変更する必要がある.
補足:メール送信する場合
ジョブ実行時・終了時にメールを送る場合は ジョブファイルに -M, -m オプションを追記する. 但し, メールアドレスとして学内のものを指定すること. 学外のメールアドレスは使えません.
#PBS -M XXXX@matsue-ct.jp <= メールアドレスを指定 #PBS -m abe <= これは変えないで良い
ジョブの投入と実行状況の確認.
qsub コマンドでジョブを投入する. ジョブスクリプト job.sh を qsub の引数として与える.
$ qsub job01.sh 171.ncsv4 <= ジョブに番号がつく
ジョブの状況の確認には qstat コマンドを使う. なお, qstat -s とすると実行ノードなども確認できる. Status が R ならば実行中, H ならば実行待ちである.
$ qstat Job id Name User Time Use S Queue ---------------- ---------------- ---------------- -------- - ----- 171.pbs job01.sh sugiyama 05:00:00 R gpu
(参考) ジョブの削除.
もしジョブを削除する場合は qdel コマンドを用いる. qdel コマンドの引数にジョブ番号 (XXX) を与えると, ジョブをキャンセルできる.
$ qdel XXX $ qstat (ジョブ番号が消えていることを確認)
実行結果の確認
qstat コマンドを実行して, 自分のジョブが表示されなければ計算が終了している.
計算が終了すると, 標準出力やエラー出力がファイル出力されます. ファイル名の末尾に .oXXX, .eXXX (XXX はジョブ番号) が付いているものが 標準出力やエラー出力である.
$ cat job.sh.o171 ...(略)... 313/313 - 0s - loss: 0.0701 - accuracy: 0.9801
計算結果のデータ転送
計算結果は前述の「システムへのデータ転送」と同様な方法で行うことができます.