次世代ナノ統合                           シミュレーションソフトウェアの研究開発
次世代ナノ統合                           シミュレーションソフトウェアの研究開発
トップページ

GAMESSのHF計算におけるOpenMP/MPIハイブリッド並列化


(筑波大)○梅田宏明、佐藤三久


1. はじめに
 メニーコアプロセッサの出現などに象徴される計算機技術の発展に伴い、数千コアを越えるような並列計算機が一般ユーザーにも手軽に利用可能になってきている。 しかしながらMPI自体の性能・制限等により、MPIだけで並列化されたアプリケーションの実行が疑問視されている。 一方、古くからユーザーが利用してきた科学技術アプリケーションには、研究室レベルのPCクラスターを念頭に置いた数十プロセス程度の並列計算を前提にしているものもあり、MPIによる並列化にとどまっていることも多い。 分子軌道計算プログラムパッケージであるGAMESS[1]も、そのようなアプリケーションの一つである。 本研究では、GAMESSのHF計算についてOpenMP/MPIハイブリッド並列化を試みた。


2.GAMESSのハイブリッド並列化
 GAMESSの計算化学部分のコードは全てFortran77で書かれており、それが一つのバイナリとして実行される。 通信部分はDDIと呼ばれる独自のAPIを利用しているが、MPI-1によって書かれたDDI実装も存在する。 GAMESSプログラム自体への変更を最小限にするため、COMMON文で定義される共通ブロックは必要に応じthreadprivate化し、copyinで初期化した。 GAMESSでは独自のメモリ管理機構を利用しており、OpenMP指示文だけでは対処できない場合がある。 そのような箇所については自動変数として配列を別途確保した。 HF計算の計算手法としていくつかあるうち、今回は二電子積分をその場で計算するdirect SCFについてのみOpenMP化を試みている。 GAMESSのプロセスレベル並列化では、グローバルカウンターを利用した動的負荷分散(DLB)とループインデックスをシンプルに割り振る静的負荷分散(SLB)が実装されている。 スレッドレベルの並列化については、今回は簡単のため静的な負荷分散のみを実装している。


3.性能評価
 開発したコードを評価するため、CG対2対からなるDNA分子のHF/6-31G計算(126原子, 814基底)を行なった。 筑波大のT2Kシステム(4コア/CPU, 4CPU/ノード, Infiniband)を利用し16ノード(256コア)までの計算を行なった。 DDIの実装としてはMPIライブラリとしてmvapich2を利用したARMCI[2]コンフィギュレーションを採用した[3]。 MPIランクごとのスレッド数は可能な限り4スレッドとしている。
Fig. 1 GAMESSにおける並列化速度向上比Fig.1 に各コードの全体(丸)およびSCF部分(三角)の経過時間に対する速度向上比を示した。 破線が元のGAMESS, 実線がOpenMP化したもの、塗りシンボルがDLB, オープンシンボルがSLBにそれぞれ対応する。 速度向上比の基準は1コアの計算で最も速かったオリジナルのDLBコードの経過時間としている。 コア数の少ない領域では十分な性能が出ていないが、並列度が大きい場合には同等の並列性能を示している。 特に全体の経過時間としては、元のコードよりも性能が向上しており、ハイブリッド並列化の有効性が確認できる。




【参考文献】[1] GAMESS; http://www.msg.chem.iastate.edu/gamess/
        [2] ARMCI; http://www.emsl.pnl.gov/docs/parsoft/armci/
        [3] DDIの各種実装に関する性能評価ではARMCIを用いた場合に最速(下表参照)
[3] DDIの各種実装に関する性能評価ではARMCIを用いた場合に最速


*出典:ナノ統合第4回公開シンポジウム要旨集より。
 掲載に際しては梅田宏明氏、佐藤三久教授のご了承を得ています。



筑波大学計算科学研究センターへのリンク: http://www.ccs.tsukuba.ac.jp/CCS/index-j.html

前へ先頭へトップページ

分子研マーク 分子科学研究所
次世代スーパーコンピュータプロジェクト ナノ統合拠点事務局
*このページ内の著作権はすべて分子科学研究所に属します。無断転載等は一切お断りいたします。