FOCUSスパコンでの Gaussian 09 利用講習会

FOCUSスパコンでの Gaussian 09 利用講習会
計算科学振興財団 2012年 4月 24日 (火) 15:30~17:30
プログラム
0. LSFを利用したGaussian 09 の実行方法
1.  ノード内並列の効率的実行方法
1-­‐1 並列数(%Nprocshared=)とメモリ指定(%mem=)
1-­‐2 CacheSizeオプション
1-­‐3 構造最適化からの振動数計算の手続き 2. Linda を用いたノード間並列の効率的実行方法
2-­‐1 Linda 並列を実行する際のLSF スクリプト
2-­‐2 プロセス数の %LindaWorker の指定と %Nprocshared の指定への割り振り
2-­‐3 Model・property による Linda 並列の有効性 3. SCF が収束しない場合の対処法
4. 構造最適化が収束しない場合の対処法
5. 質疑応答
0. LSFを利用したGaussian 09 の 実行方法
•  フロントエンドサーバにログインし、LSFを利用してバッチジョブとして
Gaussian 09の計算を実行する。 •  Gaussian 09の環境設定はg09rootを設定し、初期設定スクリプトを読込む
ことで行う。 bash系 export g09root=/home1/share/ # Gaussian 09 Rev. B01 export g09root=/home1/share/g09c01 # Gaussian 09 Rev. C01 source $g09root/g09/bsd/g09.profile csh系
setenv g09root /home1/share/ # Gaussian 09 Rev. B01 setenv g09root /home1/share/g09c01 # Gaussian 09 Rev. C01 source $g09root/g09/bsd/g09.login •  なお上記設定は、シェルの環境設定をするファイルに記述するとLSFの
バッチスクリプト内に記載する必要はない。 (bash系 .bashrc、 csh系 .cshrc)
0. LSFを利用したGaussian 09 の実行方法 (2) サンプルスクリプト
[uleg0001@f002 ~]$ cat g09sample.sh #!/bin/bash #BSUB –q c24t24h # キュー名
#BSUB -­‐n 12 # 最大プロセス数
#BSUB -­‐R "span[p`le=12]" # 1ノードのプロセス数
#BSUB -­‐J G09SAMPLE # ジョブ名
#BSUB -­‐o G09SAMPLE.o%J # 標準出力ファイル、%JはLSFが割り当てるジョブIDに置換
#BSUB -­‐e G09SAMPLE.e%J # 標準エラー出力ファイル、%Jは同上
# ### 入力ファイルの指定
export MOL=inp0 ### GAUSS_SCRDIRの指定
export GAUSS_SCRDIR=/tmp ### # 以下では$MOL.comの中でメモリとプロセス数を適切に指定している事を仮定
`me g09 <$MOL.com > $MOL.log [uleg0001@f002 ~]$ bsub < g09sample.sh 0. LSFを利用したGaussian 09 の実行方法 (3) サンプルスクリプト
•  実行可能なキューの確認 bqueues [uleg0001@f002 ~]$ bqueues
QUEUE_NAME PRIO STATUS MAX JL/U JL/P JL/H NJOBS PEND RUN SUSP s128n1debug 300 Open:Active - - - - 0 0 0 0
s128n2debug 300 Open:Active - - - - 0 0 0 0
s128t24h 30 Open:Active - - - - 20 0 20 0
c24t24h 30 Open:Active - - - - 0 0 0 0
•  ジョブ投入コマンド bsub [uleg0001@f002 ~]$ bsub < スクリプトファイル
•  実行中のジョブの確認 bjobs [uleg0001@f002 ~]$ bjobs
JOBID USER STAT QUEUE FROM_HOST EXEC_HOST JOB_NAME SUBMIT_TIME
40863 uleg000 RUN c24t24h f002.p 12*cx017.p INP2 Apr 24 14:30
40864 uleg000 PEND c24t24h f002.p INP3 Apr 24 14:33
0. LSFを利用したGaussian 09 の実行方法 (4) サンプルスクリプト
•  ジョブのキャンセル bkill [uleg0001@f002 ~]$ bjobs
JOBID USER STAT QUEUE FROM_HOST EXEC_HOST JOB_NAME SUBMIT_TIME
40863 uleg000 RUN c24t24h f002.p 12*cx017.p INP2 Apr 24 14:30
40864 uleg000 PEND c24t24h f002.p INP3 Apr 24 14:33
[uleg0001@f002 ~]$ bkill –s KILL 40863
Job <40863> is being terminated
[uleg0001@f002 ~]$ bkill 40864
Job <40864> is being terminated
0. LSFを利用したGaussian 09 の実行方法 (5) 課金の確認
•  ユーザー課金確認 uacct [uleg0001@f002 share]$ uacct
Charge information of uleg0001 in 201204 :
Computational: 8610.00 (Rack rate: 8610)
Items S128: 9 nodehours, 1043.00 yen
C24 : 90 nodehours, 7567.00 yen
Gaussian 09 : 48 nodehours, 3085 yen
=====================================================
Total charge : 11695.00
•  グループ当月課金確認 thismonth [uleg0001@f002 ~]$ thismonth
Accounting information at S128 in this month.
proj njob avg_et avg_nodes avg_procs et_nodes charge et_max et_np_max np_max
leg 16 0.0 1.0 12.0 0.1 0 0.0 0.3 12
1. ノード内並列の効率的実行方法
1-­‐1 並列数(%Nprocshared=)とメモリ指定(%mem=)
1-­‐2 CacheSizeオプション
1-­‐3 構造最適化からの振動数計算の手続き FOCUSスパコンでは、計算資源はノード時間単位、Gaussian 09利用料は全
CPU時間をノード内コア数(A,Cシステムでは12、Bシステムでは16)で除した
ノード時間相当単位に63円/ノード時間で課金するため、ノード内並列を利用
しないと損をする。 A,CシステムでのGaussian 09使用料の概算計算例 Job cpu `me: 0 days 7 hours 25 minutes 7.9 seconds. の値をコア数で割ると、(7+25/60+7.9/3600)/12=0.5835 [ノード時間] Aシステム (105+63)*0.5835=98 [円]、Cシステム (84+63)*0.5835=85 [円] ノード内並列を実行するならばCシステムの方が低コストである。 1-­‐1 並列数(%Nprocshared=)とメモリ
指定(%mem=)
•  ノード単位課金のため、1つのGaussian 09ジョブではノード内コア数全て
を利用した方が得である。 そのための方法は、 1)1コアしか利用しない計算を同時にノード内コア数分並行実行 2)ノード内コア数を%NprocSharedに指定した並列計算実行 がある。 •  1)はスクラッチディスクへの入出力が競合しない計算、分子力学、半経
験的手法、HF、DFT等の一点計算や構造最適化等の場合に効果的だが、
それ以外は避けた方が良い。 •  2)では全てのコアを利用するよう適切なメモリサイズを指定しなければ
ならない。1コアの計算に必要なメモリ量をノード内コア数倍した値
を%memに指定する。 1-­‐1 並列数(%Nprocshared=)とメモリ
指定(%mem=) (2)
Elapsed time [s]
•  %NprocShared=12と%mem=72MWと指定して PrsmSu: requested number of processors reduced to: 9 ShMem 1 Linda と出力ファイルに記録されているなら、12/9*72MW=96MWを指定し直す。 •  %memで指定するメモリ量は多過ぎても少なくても性能が劣化することが
ある。以下の図はCCSD(T)一点計算で%NprocShare=12を指定した時、
様々なメモリ割り当ての場合の性能例である。 2200
%mem=144MWと
288MWの時に最も
2000
高速となっている。
1800
1600
100
200
300
400
%mem [MW]
図1 経過時間のメモリ指定量依存性