HOME > 使い方と注意事項 > 計算サービス

計算サービスの利用方法と注意事項

ジョブスクリプトの例

以下では、より具体的な場合を想定した、ジョブスクリプトの例を示します。

OpenMPによる自動並列化のジョブスクリプト例

 1行目: #!/bin/csh 
 2行目: # sample script for auto-parallel job
 3行目: #PBS -q JP10
 4行目: #PBS -N parallel_job
 5行目: #PBS -j oe
 6行目: #PBS -l select=1:ncpus=4
 7行目:
 8行目: source /etc/profile.d/modules.csh
 9行目: module load intel
10行目:
11行目: setenv OMP_NUM_THREADS 4
12行目: cd $PBS_O_WORKDIR
13行目: ifort -O2 -o sample sample.f -parallel
14行目: ./sample

1行目: 1行目でCシェルスクリプトであることを示します。
2行目: 一般のシェルスクリプトと同様、先頭が # であればコメントとみなします。
3行目: -q オプションでキューを指定します。
4行目: -N オプションでバッチのジョブ名を指定します。
5行目: -j オプションで標準出力と標準エラー出力をまとめて標準出力に出力します。
6行目: -l select=1:の後に続いてncpus オプションでジョブで使用するCPUを確保します。 ここではジョブ実行に必要なCPU数を指定してください。(不必要に多くのCPU数を指定しないでください。)
7行目: 空白行は何も行いません。
8行目: module コマンドを利用するための環境を設定します。1行目で csh としているので、modules.csh を読み込みます。
9行目: module コマンドで最新のインテルコンパイラの利用環境を読み込みます。
10行目: 空白行は何も行いません。
11行目: OpenMPプログラムにおいて並列化ジョブを実行する場合、環境変数 OMP_NUM_THREADS によるCPU数の指定が必要です。 特に理由がなければ、ncpus オプションで指定したCPU数と同じにしてください。
12行目: qsubコマンドを実行したディレクトリへ移動します。
13行目: 自動並列化オプション -parallel とともにIntelコンパイラでコンパイルします。
14行目: プログラムを実行します。

 

MPIプログラムのジョブスクリプト例

 1行目: #!/bin/csh 
 2行目: # sample script for MPI job
 3行目: #PBS -q JP10
 4行目: #PBS -M user@xxx.scl.kyoto-u.ac.jp
 5行目: #PBS -m e
 6行目: #PBS -l select=4:ncpus=2:mpiprocs=2:mem=2gb
 7行目: #PBS -W depend=afterok:56465
 8行目:
 9行目: source /etc/profile.d/modules.csh
10行目: module load intel
11行目:
12行目: cd $PBS_O_WORKDIR
13行目: icc -O2 -o sample sample.f -lmpi
14行目: mpirun -np 8 -mem 8gb ./sample

1行目: 1行目でCシェルスクリプトであることを示します。
2行目: 一般のシェルスクリプトと同様、先頭が # であればコメントとみなします。
3行目: -q オプションで、キューを指定します。
4行目: -M オプションで、メールアドレスを指定します。
5行目: -m オプションで、ジョブ終了後にメールを送信します。
6行目: MPIタスクごとに、2CPUと2GBメモリを要求する8並列のMPIジョブであることを指定します。
7行目: -W depend オプションで、JobID 56465 のジョブがエラーなく終了した後にのみ実行するように、スケジュールされます。
8行目: 空白行は何も行いません。
9行目: module コマンドを利用するための環境を設定します。1行目で csh としているので、modules.csh を読み込みます。
10行目: module コマンドで最新のインテルコンパイラの利用環境を読み込みます。
11行目: 空白行は何も行いません。
9行目: qsubコマンドを実行したディレクトリへ移動します。
10行目: MPIライブラリ(-lmpi)をリンクして、Intelコンパイラでコンパイルします。
11行目: mpirun コマンドでプログラムを実行します。使用するCPU数は -np オプション、 メモリは-memオプションで指定します。利用するリソースの数は、-l select オプションでの指定された内容と矛盾が ないようにしてください。

 

Gaussianのジョブスクリプト例

	 1行目: #!/bin/csh 
	 2行目: # sample script for Gaussian job
	 3行目: #PBS -q JP10
	 4行目: #PBS -N g09_job
	 5行目: #PBS -l select=1:ncpus=8:mem=16gb
	 6行目:
	 7行目: source /etc/profile.d/modules.csh
	 8行目: module load g09
	 9行目:
	10行目: cd $PBS_O_WORKDIR
	11行目: rung09 test100.com output
	

1行目: 1行目でCシェルスクリプトであることを示します。
2行目: 一般のシェルスクリプトと同様、先頭が # であればコメントとみなします。
3行目: -q オプションで、キューを指定します。
4行目: -N オプションで、バッチのジョブ名を指定します。
5行目: Gaussianの場合、select=1としてください。 そして、その後に続いてncpusmem オプションでジョブで必要なCPU数とメモリサイズを指定します。
6行目: 空白行は何も行いません。
7行目: module コマンドを利用するための環境を設定します。1行目で csh としているので、modules.csh を読み込みます。
8行目: Gaussian09 の利用環境を読み込む設定を行います。
9行目: 空白行は何も行いません。
10行目: qsubコマンドを実行したディレクトリへ移動します。
11行目: rung09 コマンドにより Gaussian ジョブを実行します。

 

MaterialsStudio/CASTEPのジョブスクリプト例

	 1行目: #!/bin/csh 
	 2行目: # sample script for MS_CASTEP
	 3行目: #PBS -q JP10
	 4行目: #PBS -N CASTEP_job
	 5行目: #PBS -l select=1:ncpus=10:mem=12gb
	 6行目:
	 7行目: source /etc/profile.d/modules.csh
	 8行目: module load ms/8.0
	 9行目:
	10行目: cd $PBS_O_WORKDIR
	11行目: RunCASTEP.sh -np 2 BaseName
	

1行目: 1行目でCシェルスクリプトであることを示します。
2行目: 一般のシェルスクリプトと同様、先頭が # であればコメントとみなします。
3行目: -q オプションで、キューを指定します。
4行目: -N オプションで、バッチのジョブ名を指定します。
5行目: -l select=1:の後に続いてncpus オプションでジョブで使用するCPUを確保します。 ここではジョブ実行に必要なCPU数を指定してください。
6行目: 空白行は何も行いません。
7行目: module コマンドを利用するための環境を設定します。1行目で csh としているので、modules.csh を読み込みます。
8行目: MaterialsStudio 8.0 の利用環境を読み込む設定を行います。"8.0"はバージョン番号を意味します。 もし、7.0を利用されたい場合には、ms/7.0としてください。
9行目: 空白行は何も行いません。
10行目: qsubコマンドを実行したディレクトリへ移動します。
11行目: RunCASTEP.sh コマンドにより MS CASTEPジョブを実行します。 5行目のncpusオプションで指定したCPU数を、RunCASTEP.shコマンドの-npオプションで指定してください。
(CPU数の指定がない場合は、シングルCPUでの計算処理になります。)

 

インタラクティブバッチジョブの例

通常計算ノードは直接ログインできませんが、インタラクティブバッチジョブという仕組みを利用することで、ログインすることが可能です。 インタラクティブバッチジョブの場合には、-I オプションが必要です。

fe1% qsub -I -q JP20 -l select=1
qsub: waiting for job 108.fe3 to start
qsub: job 108.fe3 ready

Directory: /user1/scl7/fukumoto
2015年 12月  5日 土曜日 21:37:53 JST
jp001%

ジョブの実行中は、qsub を実行している端末セッションからジョブへの入力を行います。 以下の例は、端末セッションにてジョブの入力を行っています。なお、最初の module コマンドで Gaussian09 を実行するために 必要な環境設定を行っています。

jp001% module load g09
G09.d01 environment
jp001% rung09 test.com test.log
jp001% ls -l
合計 64
-rw-r--r-- 1 fukumoto crj    94  9月 27  2007 test.com
-rw-r--r-- 1 fukumoto crj 26190 12月  5 21:43 test.log

終了させるには、exit コマンドを実行します。

jp001% exit
logout

qsub: job 108.fe3 completed
fe1%