システムの紹介 各種手続き 使い方と注意事項 アプリケーション一覧 講習会情報 FAQ
HOME > 使い方と注意事項 > Altix 計算サービス

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

ジョブスクリプトの例

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

自動並列化のジョブスクリプト例

 1行目: #!/bin/csh 
 2行目: # sample script for auto-parallel job
 3行目: #PBS -q SMALL
 4行目: #PBS -N parallel_job
 5行目: #PBS -j oe
 6行目: #PBS -l select=1:ncpus=4
 7行目:
 8行目: setenv OMP_NUM_THREADS 4
 9行目: cd $PBS_O_WORKDIR
10行目: ifort -O2 -o sample sample.f -parallel
11行目: ./sample

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

 

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

 1行目: #!/bin/csh 
 2行目: # sample script for MPI job
 3行目: #PBS -q MEDIUM
 4行目: #PBS -M user@xxx.xxx.jp
 5行目: #PBS -m e
 6行目: #PBS -l select=1:ncpus=8
 7行目: #PBS -W depend=afterok:JobID
 8行目:
 9行目: cd $PBS_O_WORKDIR
10行目: icc -O2 -o sample sample.f -lmpi
11行目: mpirun -np 8 dplace -s1 ./sample

1行目: 1行目でCシェルスクリプトであることを示します。
2行目: 一般のシェルスクリプトと同様、先頭が # であればコメントとみなします。
3行目: -q オプションで、キューを指定します。
4行目: -M オプションで、メールアドレスを指定します。
5行目: -m オプションで、ジョブ終了後にメールを送信します。
6行目: -l select=1:の後に続いてncpus オプションでジョブで使用するCPUを確保します。 ここではジョブ実行に必要なCPU数を指定してください。(不必要に多くのCPU数を指定しないでください。)
7行目: -W depend オプションで、JobIDのジョブがエラーなく終了した後にのみ実行するように、スケジュールされます。
8行目: 空白行は何も行いません。
9行目: qsubコマンドを実行したディレクトリへ移動します。
10行目: MPIライブラリ(-lmpi)をリンクして、Intelコンパイラでコンパイルします。
11行目: mpirun コマンドでプログラムを実行します。使用するCPU数は -np オプションで指定します。 ncpus オプションと同じCPU数にしてください。また、性能向上のため、MPIプログラムの場合には実行CPU数に関係なく、dplace コマンドの -s1 オプションを使用してください。

 

Gaussianのジョブスクリプト例

	 1行目: #!/bin/csh 
	 2行目: # sample script for Gaussian job
	 3行目: #PBS -q MEDIUM
	 4行目: #PBS -N g03_job
	 5行目: #PBS -l select=1:ncpus=2:mem=16gb
	 6行目:
	 7行目: cd $PBS_O_WORKDIR
	 8行目: rung03 test100.com output
	

1行目: 1行目でCシェルスクリプトであることを示します。
2行目: 一般のシェルスクリプトと同様、先頭が # であればコメントとみなします。
3行目: -q オプションで、キューを指定します。
4行目: -N オプションで、バッチのジョブ名を指定します。
5行目: -l select=1:の後に続いてncpusmem オプションでジョブで必要なCPU数とメモリサイズを指定します。
6行目: 空白行は何も行いません。
7行目: qsubコマンドを実行したディレクトリへ移動します。
8行目: rung03 コマンドにより Gaussian ジョブを実行します。

 

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

	 1行目: #!/bin/csh 
	 2行目: # sample script for MS_CASTEP
	 3行目: #PBS -q LONG
	 4行目: #PBS -N CASTEP_job
	 5行目: #PBS -l select=1:ncpus=2
	 6行目: cd $PBS_O_WORKDIR
	 7行目: RunCASTEP.sh -np 2 BaseName
	

1行目: 1行目でCシェルスクリプトであることを示します。
2行目: 一般のシェルスクリプトと同様、先頭が # であればコメントとみなします。
3行目: -q オプションで、キューを指定します。
4行目: -N オプションで、バッチのジョブ名を指定します。
5行目: -l select=1:の後に続いてncpus オプションでジョブで使用するCPUを確保します。 ここではジョブ実行に必要なCPU数を指定してください。
CPUの上限はバッチキューの制限に従ってください。
6行目: qsubコマンドを実行したディレクトリへ移動します。
7行目: RunCASTEP.sh コマンドにより MS CASTEPジョブを実行します。5行目のncpusオプションで指定したCPU数を、icrCASTEP.shコマンドの-npオプションで指定してください。
(CPU数の指定がない場合は、シングルCPUでの計算処理になります。)

 

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

	 1行目: #!/bin/csh 
	 2行目: # sample script for MS_Discover
	 3行目: #PBS -q SHORT
	 4行目: #PBS -N Discover_job
	 5行目: #PBS -l select=1:ncpus=2
	 6行目: cd $PBS_O_WORKDIR
	 7行目: RunDiscover.sh -np 2 BaseName
	

1行目: 1行目でCシェルスクリプトであることを示します。
2行目: 一般のシェルスクリプトと同様、先頭が # であればコメントとみなします。
3行目: -q オプションで、キューを指定します。
4行目: -N オプションで、バッチのジョブ名を指定します。
5行目: -l select=1:の後に続いてncpus オプションでジョブで使用するCPUを確保します。 ここではジョブ実行に必要なCPU数を指定してください。 CPUの上限はバッチキューの制限に従ってください。
6行目: qsubコマンドを実行したディレクトリへ移動します。
7行目: RunDiscover.sh コマンドにより MS Discoverジョブを実行します。5行目のncpusオプションで指定したCPU数を、icrDiscover.shコマンドの-npオプションで指定してください。
(CPU数の指定がない場合は、シングルCPUでの計算処理になります。)

 

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

1. バッチジョブを実行するキューや使用するリソースを指定するとともに、インタラクティブであることを示す -Iオプションを指定するためのジョブスクリプトを作成します。なお、スクリプト内の指示は処理されますが、実行可能コマンドはすべて破棄されます。

 altix74% cat interactive.qsub
 #!/bin/csh
 #PBS -q MEDIUM
 #PBS -j oe
 #PBS -l select=1:ncpus=6
 #PBS -I 

 

2. qsub コマンドによりジョブスクリプトを実行します。割り当てられたジョブIDが表示されます。

altix75% qsub interactive.qsub
qsub: waiting for job 194.a451 to start
qsub: job 194.a451 ready

 

3. ジョブの実行中は、qsub を実行している端末セッションからジョブへの入力を行います。以下の例は、端末セッションにてジョブの入力を行っています。

altix13% mpirun -np 6 dplace -s1 ./a.out
I am process 0. Total number of processes: 6

 

4. ジョブを投入した時点では、インタラクティブバッチジョブは終了しません。終了させるには、そのバッチジョブを qdelで削除するか、qsub自体によって解釈される特殊シーケンス 〜. を入力します。

altix14% ( 〜. は特殊シーケンスであるため入力時は画面に表示されません。)