Gaussian03 の利用についてシステム運用係
一般的非経験分子軌道計算プログラム Gaussian03 をベクトル並列型スーパーコンピューターSR11000/J1（バッチシステム）上のプログラムライブラリーとして 2005 年 3 月 25日に公開しました。Gaussian03 を実行するためのジョブの作成と使用方法について簡単に説明します。但し、Gaussian03 自体の内容や計算方法、入力ファイルの書き方に関しては触れませんので詳細は以下に示す文献を参照して下さい。
なお、SR8000/MPP にインストールされている Gaussian は「03」ではなく「98」ですので御注意下さい。
本センターにおける Gaussian03 のバージョンは次の通りです。
（2005 年 5 月 1 日現在）
Gaussian03 Revision C.02
本ライブラリーは１ノードによる逐次実行版（並列版ではありません）で、プログラムは要素並列化されており、32bit モードで動作します。また、ソースプログラムは非公開です。
参考文献[1] Gaussian03 User’s Reference（Manual Version: 7.0 Mar.2003）[2] Gaussian03 Programmer’s Reference（Manual Version: 7.0 Mar.2003）[3] Gaussian03 IOps Reference（Manual Version: 7.0 Feb.2003）[4] 電子構造論による化学の探求 第二版
James B.Foressman、AEleen Frisch 共著 田崎健三 訳
Gaussian Inc. （ガウシアン社）から上記のマニュアルと解説書が出版されています。[1]、[2]、[3]は英文です。[2]はソースプログラムの解説書なので一般利用者には必要ないでしょう。[4]は入門用解説書です。これらはシステム運用係で管理しており、本センター内にて閲覧可能です。
閲覧希望の方は本センター1F 受付までお申し出下さい。

また、以下の Web ページから Gaussian03 に関する様々な情報を得ることができます。
http://www.gaussian.com/
なお、Gaussian03 を使用して得られた計算結果や成果を公表する場合には、以下の Webページに従って文献の引用を行うようにして下さい。
http://www.gaussian.com/citation.htm

1. スクリプトファイルの作成
Gaussian03 は SR11000/J1 でのみサービスしているためバッチジョブ（NQS）で実行する必要があります。バッチジョブで実行するには環境変数の設定や入出力ファイルを記述するスクリプトファイルを作成する必要があります。以下にスクリプトファイルの例を挙げ説明します。
#!/bin/csh… (1) シェルの宣言#@$‑
q parallel… (2) キューの選択

#@$‑
N 1
#@$‑
lT 00:30:00… (3) ノード数
… (4) 経過制限時間（ここでは 30 分）#@$‑
lM 50GB… (5) メモリーサイズ#@$‑
ls 192MB… (6) スタックサイズ
source /usr/local/g03/bsd/g03.login … (7) 環境設定
cd gaussian/test… (8) 入力ファイルの場所

g03 < test178.com > test178.log… (9) プログラムの起動(1) スクリプトファイルを C シェル「/bin/csh」で記述することを宣言します。
（本スクリプトでは setenv、source 等 C シェルのコマンドを使用しています。
）(2) パイプキューは「parallel」を指定します。これはプログラムが要素並列化されているため、1 ノード占有可能なバッチキューP001 で実行させるためです。
(3) 並列版ではないためノード数は「1」ノード固定です。
(4) ジョブの実行時間を制限します。計画停止時刻（qstat コマンドで確認）が迫っているときはこれを残り時間以内に設定しないとジョブが実行しません。
(5) ジョブの実行に必要なメモリーの大きさです。入力ファイルの%Mem で指定した値より十分大きい値を設定する必要があります。
(6) スタックサイズは通常「192MB」として下さい。
(7) コマンドパスなど各種環境変数を設定します。
(8) 入力ファイルのある場所までディレクトリーを移動します。
(9) プログラム g03 を起動します。入力ファイル及び出力ファイルを以下のようにリダイレクションで指定することができます。
g03 < 入力ファイル > 出力ファイル> 出力ファイル を省略すると実行結果はジョブの標準出力ファイルに出力します。

2. プログラムの実行スクリプトファイルが完成したらファイル（以下の例では job.csh）に保存し、バッチシステムにジョブを投入します。ジョブの投入は以下のように qsub コマンドで行います。実行状況は qstat コマンドで確認して下さい。

% qsub job.csh
Request 14575.n81 submitted to queue: P001.
% qstat2005/04/27 (Wed) 19:09:09: REQUESTS on SR11000
NQS schedule stop time : 2005/04/28 (Thu) 8:30:00 (Remain:REQUEST
14575.n81

NAME

OWNER

QUEUE

PRI NICE

job.cshp05000P001

63 0CPU13h 20m 51s)
MEM

unlimit 50GBSTATE
RUNNING

1.のスクリプトファイルの場合、ジョブが終了すると以下のファイルが作成されます。
エラーメッセージが出ていないか各ファイルを確認して下さい。
job.csh.o14575 … ジョブの標準出力
job.csh.e14575… ジョブの標準エラー出力（空の場合は作成されません）

test178.log… Gaussian03 の出力ファイル

エラーがなければ出力ファイルに計算結果が出力され、標準出力のファイルは空になります。
ジョブをキャンセルする場合には以下のようにします。
% qdel 14575.n81
deleting request 14575.n81.

3. 実行時のエラー
Gaussian03 実行後は、出力ファイル（Gaussian03 の出力ファイル、ジョブの標準・エラー出力ファイル）のメッセージを確認して下さい。なお、問題解決には、入力ファイル中のルートセクションの記述を #（標準）や#T（簡略化した出力）ではなく#P（詳細の出力）としてみることも必要です。

4. スクラッチファイルについて
Gaussian03 は実行時にスクラッチファイルと呼ばれる巨大な一時ファイル（サフィック
スが.rwf、.scr、.chk1）等のファイル）を各利用者の /short/batch に作成します。これらのファイルはジョブが正常終了した場合は終了時に消去されますが、異常終了した場合、消されずにディスク上に残る事があります。また、計算によってはスクラッチファイルが20GB 程度にまで達することがありますが、本 Gaussian03 ではこの大きさのファイルを扱えずエラーとなります。この場合はアルゴリズムを変更する等で対応して下さい。アルゴ
リズムについては参考文献[1]又は Web ページ http://www.gaussian.com/を参照して下さい。

1）.chk ファイルを他のディレクトリーに出力したい場合は.com ファイルで指定して下さい。その際、絶対パスで指定していないとカレントディレクトリーに出力されます。
例%chk=/batch/p05000/xxx.chk

また、/home を使用する場合はファイル使用量上限値に御注意下さい。

5. 例題
Gaussian03 が用意しているテスト用の入力ファイルが以下にあります。参考文献[1]の「Chapter 6 Running Gaussian Test Jobs」にこれに関する記述があります。
/usr/local/g03/tests/com/testxxx.com（xxx は 000〜718）
また、参考文献[4]の例題、演習に使用している入力ファイルが mpp‑s の以下のディレク
トリーにあります。ファイル名は文献中の「インプットファイル表」を参照して下さい。
/usr/local/g98/explore/quick（クイックスタート）/usr/local/g98/explore/examples （例題）
/usr/local/g98/explore/exercise （演習）※ 注意
Gaussian03 で作成されるスクラッチファイル等は、ソフトウェアの都合上、グループ属性が "gaussian" となりますので、御了承下さい。