Windows7 (64-Bit)でGAMESS並列処理

私が分子軌道計算を始めたのは昭和50年代前半である.当時,非経験的分子軌道計算法 (ab initio)を用いてベンゼン分子の理論構造を大型計算機センターで計算すると100万円の費用が必要と聞かされた(大澤映二氏談).そのため,分子構造を求めるためには,構成原子を剛体(電子を計算対象としない)として取り扱う経験的分子力場計算が脚光を集めていた.しかし力場計算法では化学反応の解析に必要な電子のエネルギーや電子密度などは求めることはできない.

分子軌道計算を始めた理由は,フロンティア軌道のエネルギーや軌道相(大きさ,位相)の概略を知るためであった.したがって標準的な結合長や結合角を使って分子を描き,幾何学的に分子座標を求めて,Huckel(平面分子用), PPP(平面分子用), CNDO/2等の計算を行っていた.その後,入力した構造を変化させてもっとも安定な構造を求めることができるMINDO/3等の手法が開発され,MNDO, AM1, PM3, PM6等へと引き継がれた.

分子軌道計算には半経験的手法と非経験的手法がある.半経験的分子軌道法は分子の実測値に基づくパラメータを利用するので処理速度は非常に速い.それに対し非経験的分子軌道法は,方程式を解くために必要な分子積分に実測値を利用したり,省略することなく分子軌道をすべて計算によって求めるためab initio法と呼ばれている.計算に要する時間は比べものにならないほど長い(例 1.5秒:12分).

近年,ab initio計算はCPUの高速化,記憶容量(ハードディスク,メモリ)の巨大化でパソコンでも実行できるようになった.しかし,PCを複数台ギガネット ワークで接続したシステムを組む必要があり個人の利用形態としては敷居が高かった.しかし,1つのプロセッサ・パッケージ内に複数のプロセッサ・コアを封 入する技術(マルチコア)の登場で計算環境は一変した.

以下は最新CPUを搭載したパソコンへab initio法プログラムをインストールしたメモである.

インストールの実際

フ リーソフトを利用して、その気になれば誰でも研究用の高レベル非経験的MO計算が実行できることは以前紹介した。マルチコアCPUの開発でその機運は高 まってい るが、周辺関連領域の知識習得を含めそう簡単ではない。Core i7 2600Kを搭載したWINDOWS7 (64bit) パソコン (HDD 1TB, RAM 8GB) で並列処理計算を試みた。

Gamessの中でもFirefly (PC GSMESS) の場合は、ダウンロードすれば特別の環境設定をすることもなくマウス操作で実行できるようになっているので、インプットデータさえ作成できればジョブの実 行は比較的簡単である。もっとも広く使われているWinmostarの場合はpathを通すだけでよい。

GAMESS (WinGAMESSおよび類縁)は Iowa州立大学のGordon研究グループのメンバーにより保守されている。次図はそのWebページである.

必要なファイルのダウンロード

http://www.msg.chem.iastate.edu /gamess/にアクセスしてダウンロードの手続きをすればIDとパスワードがメールで送られてくるので、指示にしたがい必要なファイルをダウンロード する.Cドライブのgamess.64フォルダの中にmanualというフォルダがあり、その中に手順書WinGAMESS- setup-guide- 64.PDFがある。

そのファイルにすべてが図解入りで書かれている。私はそれを読むのを省略したため少しまわり道をした。以下に示す3)をインストールする前に,1),2)を実行する必要がある。


The following three files will be downloaded and installed:

1) Microsoft Visual C++ 2010 Redistributable Package (x64)

• This will install the Windows libraries that are needed for the GAMESS binary

2) HPC Pack 2008 R2 MS-MPI Redistributable Package with Service Pack 1

• Communication protocol used for both serial and parallel runs

3) GAMESS for Microsoft Windows 64-Bit

• The native Windows binary of GAMESS built using the Portland Group (PGI)


Microsoftからダウンドードした64ビット用のソフトウエア

MS-DOSコマンドによる実行

プログラムのインストールが終了したら,Windowsの「スタート」ボタン→すべてのプログラム→アクセサリ→コマンドプロンプトを開きコマンドで操作する.

まず,cd C:¥gamedd.64を入力し,C:¥gamedd.64へカレントディレクトリーを変更する.

フォルダには実行ファイルとしてgamess.11-64.exeが準備されている.さらにrunall.batとrungms.batの2個のバッチファイルがあるので,まずrunall.batを使ってテストデータを実行する.

C:¥gamedd.64>runall 11-64 1と入力すると計算が始まる.11-64は実行形式のファイルでGAMESSのバージョン番号を表している.

一連のテストデータが次々に実行される.1),2)のインストールがうまくいっていないと各データ毎にエラーが表示される.処理が終了したら実行結果をチェックし,正常に計算が行われていることを確認する.

結果に問題がなければ,次図に示すようにrunall 11-64 2に変更して実行し,パラレル処理の実行結果を確認する.

パラレル処理ができることが確認できたら,いよいよ実際のデータを使って実行する.

実行初期画面(Allyl xanthateの[3,3]-sigmatropy転位の遷移状態計算)

CPUの稼働状況とCPUの温度

Microsoft Windows (64-Bit)上でのGAMESSの実行と引数

実行コマンドrungmsに続けて以下の項目を入力する

GAMESSのバージョン

CPUの数

通常 0

出力ファイル名

Running GAMESS on Microsoft Windows (64-Bit)

The rungms.bat file is used to run GAMESS. The rungms.bat requires 4 arguments.

Usage: rungms.bat [input] [version] [ncpus] [ppn] [logfile]

[input] = The filename of the input

[version] = The GAMESS version number

[ncpus] = The number of compute processes requested for this job (default: 1)

[ppn] = The number of compute processes per node (default: 0)

The default is for running on a single node (workstation). This script is not set to run across nodes. The value of [ppn]

must be 0. So either pass 0 as your 4th argument or leave it blank.

[logfile] = If a 5th argument is passed then the output of the GAMESS run is redirected from the terminal window

to the name of this file.


Examples:

To run an input name sarom.inp using a GAMESS binary gamess.11-64.exe on 1 compute process with the output shown

in the windows terminal, execute the following command:

rungms.bat sarom.inp 11-64 1 0

To run an input name sarom.inp using a GAMESS binary gamess.11-64.exe on 1 compute process with the output saved

to sarom.log, execute the following command:

rungms.bat sarom.inp 11-64 1 0 sarom.log

To run an input name sarom.inp using a GAMESS binary gamess.11-64.exe on 2 compute process with the output shown

in the windows terminal, execute the following command:

rungms.bat sarom.inp 11-64 2 0

To run an input name sarom.inp using a GAMESS binary gamess.11-64.exe on 2 compute process with the output saved

to sarom.log, execute the following command:

rungms.bat sarom.inp 11-64 2 0 sarom.log


Winmostarからジョブを実行する

分子計算支援システムから実行するためには,他のMOと同様に,pathを設定する.その際は,実行プログラムである11-64.exeに到達するように設定すればよい.

入力データはセットアップから,予め設定されているdefaultデータを修正・追加する形式で作成する.

CPU数の設定はFireflyとは異なる.使用するCPU数を指定するだけでよい.


追記

Firefly (PC-GAMESS) の方がGAMESSよりかなり処理速度が速い.


参考資料

pc-chem.info: スケーリング(系のサイズと計算時間の関係)の比較

分子計算支援システムWinmostar

Winmostarによる分子軌道法計算入門

(2012/2/13)