最終更新: 2023/6/2
このページでは g16sub コマンドで RCCS スパコンに Gaussian ジョブを投入する方法を説明します。
前提条件として、以下の準備が必須です。
ssh や scp, sftp の設定ができていない場合はクイックスタートガイドのページをご覧ください。
以下のような内容の ch3cl.gjf (.gjf は .com と同じく Gaussian インプットの標準的な拡張子です)が手元にあるとして、これを RCCS に転送し、Gaussian で計算を行います。
%chk=ch3cl.chk
# HF/6-31G(d,p) Optmethyl chloride
0,1
C -0.000004 1.127470 0.000000
H -0.511417 1.468491 0.885898
H -0.511417 1.468491 -0.885898
H 1.022922 1.468527 0.000000
Cl -0.000004 -0.657078 0.0000
%mem, %nprocshared, %cpu の指定は通常 g09sub や g16sub に上書きされます。利用する CPU コア数については g16sub/g09sub の -np オプションで指定してください。メモリについては、jobtype 等に応じた上限値(少しだけ余裕をもたせてあります)が自動的に指定されますので、通常指定する必要はありません。
WinSCP での例を示します。
ccfep.ims.ac.jp に接続し、手元の PC 上の Gaussian のインプットを置いたフォルダに移動します。
(注意: RCCS システム上では /lustre/home/users/(ユーザー名) と /home/users/(ユーザー名) は同一の場所を指します)
(必要に応じて)RCCS側にディレクトリ、ここでは RCCS 側でのホームディレクトリ直下の CH3Cl (/home/users/(ユーザー名)/CH3Cl)、を作成します。
ch3cl.gjf を RCCS に転送します。以下ではこの CH3Cl ディレクトリに置いた ch3cl.gjf というインプットを実行します。
別の場所に置いた場合には以下の記述を適宜読み替えて対応ください。
Gaussian ジョブを投入するため、ssh (PuTTY 等)で ccfep.ims.ac.jp にログインします。
ログインができたら、CH3Cl ディレクトリに cd コマンドで移動し、ls コマンドで先ほど転送したファイルがそこにあることを確認します。
Last login: Fri Jan 27 11:24:15 2023 from ***.***.***.***
[user@ccfep3 ~]$ ls CH3Cl/
ch3cl.gjf
[user@ccfep3 ~]$ cd CH3Cl/
[user@ccfep3 CH3Cl]$ ls
ch3cl.gjf
[user@ccfep3 CH3Cl]$
そして、g16sub コマンドでジョブを投入します。
[user@ccfep3 CH3Cl]$ g16sub ch3cl.gjf
このようにオプション指定無しで g16sub コマンドを実行した場合、8 コアを利用します。
計算の制限時間(walltime)は 72 時間となっています。時間内に終わらなかった場合は強制的に終了となります。
実行すると、以下のような情報が表示されます。
[user@ccfep3 CH3Cl]$ g16sub ch3cl.gjf
QUEUE detail
------------------------------------------------------------------------------
QUEUE(MACH) Jobtype MaxMem DefMem TimLim DefCPUs(Min-Max)
------------------------------------------------------------------------------
H( ap) 1.8GB 1.2GB 72:00:00 8(1-128)
------------------------------------------------------------------------------
JOB detail
======================================================================
MOL name(s) : ch3cl
INP file(s) : ch3cl.gjf.ap
OUT file(s) : ch3cl.out
Current dir : /lustre/home/users/***/CH3Cl
SCRATCH dir : /lwork/users/${USER}/${PBS_JOBID}/gaussianQUEUE : H
Memory : 9.6GB
Time limit : 72:00:00
Job script : /lustre/home/users/***/CH3Cl/H-1614679.sh
Input modified : y
======================================================================/usr/local/bin/jsub –q H /lustre/home/users/***/CH3Cl/H-1571896.sh
4008669.ccpbs1
[user@ccfep3 CH3Cl]$
投入したジョブの状態は jobinfo コマンドで確認できます。
(投入した直後の場合は表示されないこともあります。その場合は少しお待ち下さい。)
[user@ccfep3 CH3Cl]$ jobinfo –c
--------------------------------------------------------------------------------
Queue Job ID Name Status CPUs User/Grp Elaps Node/(Reason)
--------------------------------------------------------------------------------
H 4008669 H-1571896.sh Run 8 user/--- 00:00:00 ccc001
--------------------------------------------------------------------------------
[user@ccfep3 CH3Cl]$
一旦ジョブが投入されてしまえば、SSH接続を切断してもジョブは残ったままになります。
ジョブが終了すると、実行したディレクトリには以下のようなファイルが残っているはずです。
この内、H_ で始まるファイルと .ap で終わるファイルについては g16sub が作成したもので、正常に終了した場合には気にする必要はありません。
[user@ccfep3 CH3Cl]$ ls
H-1571896.sh H-1571896.sh.o4008669 ch3cl.gjf ch3cl.out
H-1571896.sh.e4008669 ch3cl.chk ch3cl.gjf.ap
[user@ccfep3 CH3Cl]$
出力ファイル(ch3cl.out)についてはジョブの実行中も less や tail コマンドで内容を確認できます。
今回のインプットのように %chk でチェックポイントファイルを指定していれば、それもここに作成されます。
チェックポイントファイル(.chk)を formchk コマンドでテキスト形式(.fchk)に変換したい場合、まず以下のようなコマンドで設定を読み込む必要があります。
ログインシェルが /bin/bash もしくは /bin/zsh の場合:
[user@ccfep3 CH3Cl]$ source /apl/gaussian/16c02/g16/bsd/g16.profile
ログインシェルが /bin/csh の場合:
[user@ccfep3 CH3Cl]$ source /apl/gaussian/16c02/g16/bsd/g16.login
上記コマンドを実行すれば、一見なにも起こりませんが内部設定が変更され、formchk コマンドが使えるようになります。
(PYTHONPATH: Undefined variable. と出力された場合も読み込みは完了しています。以下のように formchk も実行可能です)
[user@ccfep3 CH3Cl]$ formchk ch3cl.chk
Read checkpoint file ch3cl.chk type Unk
Write formatted file ch3cl.fchk
FChkPn: Coordinates translated and rotated
FChkPn: Coordintesmatch /B/ after translation and rotation
[user@ccfep3 CH3Cl]$
もし、自身のログインシェルがどちらかわからない場合は以下のように echo $SHELL コマンドを実行してください。
[user@ccfep3 CH3Cl]$ echo $SHELL
以下の二つは同一の設定になります。
[user@ccfep3 CH3Cl]$ g16sub ch3cl.gjf
[user@ccfep3 CH3Cl]$ g16sub -j core -rev g16c02 -np 8 -walltime 72:00:00 ch3cl.gjf
オプションの値を変更すれば設定も変わります。例えば -np 4 とすれば 4 コアだけ利用するようになります。
RCCS では以下のバージョン、リビジョンの Gaussian が利用できます。
作業ディレクトリ(SCRATCH)は g16sub を実行した瞬間では確定していません。以下のような表記になっているはずです。
SCRATCH dir: /lwork/users/${USER}/${PBS_JOBID}/gaussian
USER にはユーザー名が、PBS_JOBID の部分には上で述べたジョブの固有 ID (上の例ならば 4008669.ccpbs1)が入ります。
作業ディレクトリの場所は出力ファイル(上の例では ch3cl.out)の冒頭でも確認できます。
/lwork 以下はジョブの実行時のみに有効なディレクトリであるため、このスクラッチはジョブの終了と同時に削除されます。
/lwork の使用可能な容量は利用するコア数に比例します。容量が足りない場合は、利用コア数を増やすことで問題が解消
する可能性があります。必要なスクラッチ領域が大きすぎる場合には、g16sub/g09sub に -N オプションをつけて
/gwork/users 以下にスクラッチディレクトリを作るようにするようにした方が良いかもしれません。
あるいは、以下のように g16sub/g09sub を使わないようにすることで回避することもできます。
何らかの方法でジョブのテンプレートを作成する必要があります。ジョブスクリプトさえ作成できれば、jsub コマンドで投入するのみとなります。
どちらの場合でも、完成したジョブスクリプトファイルを jsub コマンドで投入することになります。
スクラッチディレクトリの情報(例えば .rwf ファイル)を確保したい場合は、スクリプトファイル中で cp コマンドで確保するか、
あるいは /lwork/users/$USER ではなく /gwork/users/$USER 以下を作業ディレクトリに使うなどする必要があります。
(/gwork 以下もいずれ自動で削除されますが、/lwork ほど速やかに消去されません。)