計算化学の分野では、”いかに速く計算するか” が一つの命題です。
初期設定のままだと、通常の量子化学計算ソフトは1つの計算を1CPUで行います。そこで、複数のCPUを使って計算の効率化を図ろうというのが『並列計算』です。
pall1
今回は、Firefly(PC GAMESS)を使用して並列計算を実行してみましょう。並列化の環境を整えると、計算速度がグッと速くなるので、可能であればできるだけ早い段階で準備しておきましょう。
 

CPU数N=計算速度N倍ではない!!

勘違いしやすいのが、「N個のCPUを使ったから計算速度がN倍になる」と思ってしまうことです。
並列計算では、逐次性のない計算箇所は各CPUに計算を割り振ることができますが、逐次的に計算するしかない箇所はメインのCPUでのみで計算を行います。つまり、並列性のある or ないでメインCPUと複数のCPUとを適時制御しているということになるので、単純にCPU数N=計算速度N倍とはならないのです。

 

並列計算で準備するものは?

たいていの量子化学計算ソフトは、並列計算用のソフトを別途準備する必要があります。商用のGaussianでは『Linda(有償)』が有名です。
一方、これまで説明してきたFirefly(PC GAMESS)を使用する場合、並列計算用のソフトを別途準備する必要はありません。通常、CPU数の指定はコマンドプロンプト上で行いますが、初心者にも分かりやすいように今回は別のフリーソフトと併用することで気軽に並列計算を『体験』してもらおうと思います。

ここで紹介する『FiCo』は並列化のためのソフトではなく、単にCPUをGUI上で分かり易く指定できます。他にも計算の連続実行ができるという利点があります。
 

まずは、自分のパソコンのCPU数を知ろう

並列計算を行う前提として、お使いのパソコンが複数のCPU(コア数)を持っている必要があります。ここでは、CPU数(コア数)の調べ方を紹介します。

1) Windowsの場合、コントロール パネル\システムとセキュリティ\システム画面を開き、プロセッサの種類を確認します。
pall5

2) 私の場合「Intel core i5-2500 3.3GHz」だったので、これをGoogleで検索します。ここでは、検索結果の一番上に表在されたintelプロセッサの製品仕様ページで確認します。
コア数のところが4になっているので4コア(4つCPUがある)ということがわかりました。
pall6

3) 念のためWindowsのタスクマネージャーを開き「パフォーマンス」タブの「CPU使用率の履歴」の画面を見てみると4つ表示箇所があるので、間違いなく4コアであることがわかります。
pall8

ちなみに、下の「リソースモニター」ボタンを押すとさらに詳しくCPUの稼働状況を見ることができます。並列計算実行中に、きちんとCPU間で計算の並列化がされているかチェックしたい場合、ここを見ると良いでしょう。

 

便利なソフト『FiCo』をダウンロードしよう

以前、Firefly(PC GAMESS)の入手とインストール方法で紹介したダウンロードページに実はFiCoのダウンロードリンクもあります。Fireflyと違いダウンロードして直ぐ使えるので安心してください。

1) Firefly (PC GAMESS)のWebページ(http://classic.chem.msu.su/gran/gamess/)にアクセスし、 左側の『Download』 をクリックします。
1

2) 次に、『Quantum Chemistry Package Download Area Terms of Use』 のページが表示されます(いわゆる利用規約です)。利用規約へ同意し、下部の『I agree』をクリックします。
2

3) ページを一番下までスクロースすると、『FiCo (Firefly Commander) batch job processor for Firefly (Windows) gracefully donated by Dr. Pasquale Morvillo.』という項目があるのでここからFiCoをダウンロードします。
pall7

4) ダウンロードしたZIPファイルを解凍すると、「FiCo」というEXEファイルが出てくるので好きな場所に保存して、インストール完了です。


『FiCo』で並列化の設定をしよう

1) FiCo.exeを開くと、メイン画面が表示されます。次に、の『Settings』を押して設定画面を開き、「Firefly executable」からFirefly(PC GAMESS)の実行ファイル(.exe)の場所を指定します(ボタン)。
pall2

2) ボタンで計算の一時ファイルの出力先を指定します。お好きな場所でかまいません。私は、Desktopにしています。
 

3) で使用するCPU数を指定します。私の場合、4コアだったので4つまで指定できることになります。フルで使用するとPCの動作が非常に重くなるので、まずは-1コア(ここでは3コア)で指定することをおすすめします。
 

4) また、『Other』のタブでInputやOutputファイルを開くテキストエディッタと分子構造描写ソフトを指定できます。例えば、以前紹介したサクラエディタを使用したい場合、サクラエディタの実行ファイル(.exe)の場所を指定します。
 

5) 設定が終了したら必ずOK』を押して設定を保存します。また、FiCoを終了するときは、メイン画面の⑥『Exit』でアプリケーションを終了してください。Windowsの✕(閉じるボタン)で終了すると、画面は消えますがバックグランドで動作したままになります(タスクバーにアイコンが残っているので確認できます)。間違って終了した場合はタスクマネジャーのプロセスからFiCoを選択してプロセスを終了してください。

おわりに

以上、今回は初心者でも比較的簡単に並列計算を始められるように『FiCo』というソフトの導入を行いました。また、FiCoには計算の連続実行などMoCalc2012にはない便利な機能があるので併せて紹介していきます。

次回は、実際にFiCoを起動して並列計算を実行して見ましょう。

【関連記事】
並列計算をしてみよう(実行編) ~その②~
Firefly(PC GAMESS) の入手とインストール方法 ~その①~
Firefly(PC GAMESS) の入手とインストール方法 ~その②~