Gaussian03の実行方法

 Gaussian03は非経験的および半経験的分子軌道計算を行うソフトウェアです。量子力学の基礎方程式に基づく計算により、気相や溶液中、基底状態や励起状態など、さまざまな条件のもとでの広範囲な分子システムをモデリングできます。
 詳しくは、Official Gaussian Web Site: http://www.gaussian.com/をご覧ください。

1. スーパーコンピュータでの実行

1-1. ログイン
  sshコマンドによりログインします。
   % ssh -l <user-id> super1
  上記の方法でログインできない場合は、以下を試してください。
   % ssh -l <user-id> super1.imr.edu

1-2. 入力ファイルの作成
 Gaussianの実行には入力ファイル(***.com)が必要です。このファイルに分子の構造や計算手法、基底関数などを記述します。

 入力ファイルに'nproc=4'の記述が必要です。この記述がない場合は強制的にキャンセルされますので、ご注意ください。

1-3. ジョブの投入
 ジョブを投入するにはsubmitコマンドを使用します。
 入力ファイルのあるディレクトリで以下のコマンドを実行します。
   % submit SC g03 input.com

 submitコマンドには以下のオプションがあります。
  % submit SC g03 input.com [ output.log ] [ -J Jobname ] [ -B ] [ -N ] [ -u mail_address ]

オプション 意味
output.log 出力ファイル名を指定します。省略した場合は、"入力ファイル名.log"になります。
-J Jobname ジョブに対して識別情報を付けることができます。
-B ジョブ開始時にメールを送信します。送信アドレスは-uオプションで指定できます。-uを省略した場合はuserid@imr.eduになります。
-N ジョブ終了時にメールを送信します。送信アドレスは-uオプションで指定できます。-uを省略した場合はuserid@imr.eduになります。
-u mail_address ジョブ開始時/終了時に送信するメールアドレスを指定します。省略した場合はuserid@imr.eduになります。

 キューSCには以下の制限があります。

キュー名 用途 CPU時間制限 メモリ制限 最大ジョブスロット数
SC Gaussian 1週間 12GB 8

1-4. ジョブの状況確認
 ジョブの状態を確認するにはstatjコマンドを使用します。
  % statj super
 (例)
  % statj super
  ### Super Computer (super) ###
  JOBID         STAT QUEUE WAIT JOB_NAME     SUBMIT_TIME
  super25-cx.6425.0 RUN  qsc    -   super25-cx.6425 07/05/30 09:21:06

 statj superはスーパーコンピューターに投入済みのジョブのみを表示します。単にstatj ではアプリケーションサーバーのジョブも同時に表示します。

 その他のコマンドについてはこちらをご覧ください。

1-5. ジョブのキャンセル
 ジョブをキャンセルするにはjobdelコマンドを使用します。
  % jobdel Job_ID
 (例)
  % statj super
  ### Application servers ###
  JOBID         STAT QUEUE WAIT JOB_NAME     SUBMIT_TIME
  super25-cx.6425.0 RUN  qsc    -   super25-cx.6425 07/05/30 09:21:06
  % jobdel super25-cx.6425.0
  % statj super
  ### Application servers ###
  JOBID         STAT QUEUE WAIT JOB_NAME     SUBMIT_TIME

1-6. 結果の確認
 結果を確認するには出力ファイルの最後の行をご覧ください。正常終了していれば、以下のような記述があります。
---
Normal termination of Gaussian 03 at Fri Apr 6 20:37:05 2007.
---

1-7. Gaussianユーティリティの実行方法
 Gaussianのユーティリティ(formchkなど)を実行する場合は、まず以下のようなスクリプトの作成します。
---
#!/bin/csh
formchk test.chk test.fchk
---
 これを以下のコマンドで投入します。
  % submit SB general -exec script.sh

Gaussianユーティリティを実行の際に、以下のようなメッセージでエラーになることがあります。
---
Out-of-memory error in routine FChkPn-MO (IEnd= 8469235 MxCore= 6291456)
Use %mem=9MW to provide the minimum amount of memory required to complete this step.
---
その場合は、スクリプトへ以下のような設定を追加してください。
setenv GAUSS_MEMDEF 9000000

2. アプリケーションサーバーCでの実行

2-1. ログイン
 sshコマンドによりログインします。
  % ssh -l <user-id> appc
 上記の方法でログインできない場合は、以下の方法を試してください。
  % ssh -l <user-id> appc.imr.edu

2-2. 入力ファイルの作成
 Gaussianの実行には入力ファイル(***.com)が必要です。このファイルに分子の構造や計算手法、基底関数などを記述します。

2-3. ジョブの投入
 ジョブを投入するにはsubmitコマンドを使用します。

 *シングルコアで計算する場合
  入力ファイルのあるディレクトリで、以下のコマンドを実行します。
   % submit cg03 input.com

 *4コアで並列計算する場合
  入力ファイルのあるディレクトリで、以下のコマンドを実行します。
   % submit cg03 input.com -n 4
  4並列で計算するためには、入力ファイルに以下の記述が必要です。
   NProcShared=4

 submitコマンドには以下のオプションがあります。
  % submit cg03 input.com [ output.log ] [ -n num ] [ -J Jobname ] [ -B ] [ -N ] [ -u mail_address ]

オプション 意味
output.log 出力ファイル名を指定します。省略した場合は、"入力ファイル名.log"になります。
-n num 使用するコア数を指定します。入力ファイルのNProcSharedで指定した値と合わせる必要があります。省略した場合は1となります。
-J Jobname ジョブに対して識別情報を付けることができます。
-B ジョブ開始時にメールを送信します。送信アドレスは-uオプションで指定できます。-uを省略した場合はuserid@imr.eduになります。
-N ジョブ終了時にメールを送信します。送信アドレスは-uオプションで指定できます。-uを省略した場合はuserid@imr.eduになります。
-u mail_address ジョブ開始時/終了時に送信するメールアドレスを指定します。省略した場合はuserid@imr.eduになります。

 キューcg03には以下の制限があります。

キュー名 用途 CPU時間制限 メモリ制限 最大ジョブスロット数 最大ジョブスロット数/ユーザ
cg03 Gaussian 1週間 16GB 60 24

2-4. ジョブの状態確認
 ジョブの状態を確認するにはstatjコマンドを使用します。
  % statj app
 (例)
  % statj app
  ### Application servers ###
  JOBID STAT QUEUE WAIT EXEC_HOST JOB_NAME SUBMIT_TIME
  9943  RUN  cg03   -   4*appc     test     07/04/24 09:48:06

 statj appはアプリケーションサーバーに投入済みのジョブのみを表示します。単にstatj ではスーパーコンピューターのジョブも同時に表示します。

 その他のコマンドについては、こちらをご覧ください。

2-5. ジョブのキャンセル
 ジョブをキャンセルするにはjobdelコマンドを使用します。
  % jobdel Job_ID
 (例)
  % statj app
  ### Application servers ###
  JOBID STAT QUEUE WAIT EXEC_HOST JOB_NAME SUBMIT_TIME
  9943  RUN  cg03   -   4*appc     test     07/04/24 09:48:06
  % jobdel 9943
  % statj app
  ### Application servers ###
  JOBID STAT QUEUE WAIT EXEC_HOST JOB_NAME SUBMIT_TIME

2-6. 結果の確認
 結果を確認するには出力ファイルの最後の行をご覧ください。正常終了していれば、以下のような記述があります。
---
Normal termination of Gaussian 03 at Fri Apr 6 20:37:05 2007.
---
 エラー終了であれば、ログファイルの最後のほうに原因が出力される場合があります。

(1)収束しない場合
 指定した条件で収束しなかった場合は、以下のようなメッセージが出力されます。
---
>>>>>>>>>> Convergence criterion not met.
SCF Done: E(RHF) = -10840.7420210 A.U. after 129 cycles
Convg = .3647D+00 -V/T = 2.0014
S**2 = .0000
Convergence failure -- run terminated.
Error termination via Lnk1e in /opt/g03/g03/l502.exe at Sun Apr 22 07:07:12 2007.
---
 デフォルトではSCFサイクルの最大数が128回となっており、128回でも収束しなかったことが原因です。対応としては、以下のような変更が考えられます。
 SCFサイクルの最大数を増やす: SCF=(MaxCycle=N)
 SCFの収束条件を緩くする: SCF=(Conver=N)
 基底関数を見直す

(2)メモリ不足の場合
 メモリ不足の場合は、以下のようなメッセージが出力されます。
---
Not enough memory in GToLag:
JobTyp=1 LenV= 1072666082 NeedRS= 441 LenG= 76245 MaxRS= 300
short by 11086689 words.
Error termination via Lnk1e in /app/g03/l1111.exe at Mon Apr 23 16:03:39 2007.
---
Link0コマンドで、%Mem=*GBで使用メモリ量を増やしてください。

ログファイルに何もメッセージがなければ、キューのCPU時間制限で終了した可能性があります。
CPU時間制限は7日間に設定されています。標準出力および標準エラー出力はそれぞれJob_id.out, Job_id.errというファイルに出力されていますので、標準出力の実行開始から終了までの時間および"CPU time"の値をご覧ください。CPU timeは並列計算の場合は、各プロセスの合計になります。-Nでメールで送信する指定をした場合には、指定されたアドレスに送信されています。

 :
 :
Started at Tue Apr 24 13:11:44 2007
Results reported at Tue Apr 24 13:12:07 2007

Your job looked like:

------------------------------------------------------------
# LSBATCH: User input
#!/usr/bin/csh
/app/g03/g03 benzene2.com

------------------------------------------------------------

Successfully completed.

Resource usage summary:

CPU time : 13.44 sec.
Max Memory : 6 MB
Max Swap : 12 MB

Max Processes : 1
Max Threads : 1
 :
 :
 :

2-7. Gaussianユーティリティの実行方法
 Gaussianのユーティリティ(formchkなど)を実行する場合は、まず以下のようなスクリプトの作成します。
---
#!/bin/csh
formchk test.chk test.fchk
---
 これを以下のコマンドで投入します。
  % submit cm -exec script.sh

Gaussianユーティリティを実行の際に、以下のようなメッセージでエラーになることがあります。
---
Out-of-memory error in routine FChkPn-MO (IEnd= 8469235 MxCore= 6291456)
Use %mem=9MW to provide the minimum amount of memory required to complete this step.
---
その場合は、スクリプトへ以下のような設定を追加してください。
setenv GAUSS_MEMDEF 9000000