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 経過時間のメモリ指定量依存性
© Copyright 2024 ExpyDoc