FMOベンチマークプログラムの性能予測について

片側通信を用いた並列フラグメント
分子軌道計算プログラムの実装
稲富雄一*,真木淳*,本田宏明*,
薄田竜太郎***,井上弘士**,青柳睦*
*; 九州大学情報基盤研究開発センター
**; 九州大学システム情報科学研究院
***; 福岡県産業・科学技術振興財団
SWoPP2007 旭川
目次
• 研究目的
• フラグメント分子軌道(FMO)法について
• スケルトンコードとPSI-SIMについて
• FMOスケルトンコードを用いた性能評価
• まとめ
SWoPP2007 旭川
研究目的
次世代スパコンで想定される大規模並列計算機で効率
よく動作する並列フラグメント分子軌道法プログラムを
作成する
現状は・・・
• プロトタイプ(スケルトンコード(後述))が完成した
• きちんと計算できるコード(実コード)作成中
SWoPP2007 旭川
目次
• 研究目的
• フラグメント分子軌道(FMO)法について
• スケルトンコードとPSI-SIMについて
• FMOスケルトンコードを用いた性能評価
• まとめ
SWoPP2007 旭川
フラグメント分子軌道(FMO)法とは?
• タンパク質、DNA、糖鎖などの大規模分子に対する電
子状態計算を行うために開発された計算手法
• 並列処理向きである
20,581原子
77,754電子
164,442関数
1,398フラグメント
参考:SC|05, T. Ikegami et al., technical paper
FMOでの計算時間=72.5時間(Opteron (model 246), 600プロセッサ使用時)
cf. 従来分子軌道法(Hartree-Fock法)で計算した場合の予想計算時間=およそ20万年
SWoPP2007 旭川
FMO法の計算手順
•対象分子をいくつかの小さなフラグメントに分割する
R1
O
R3
O
H
N
H
N
NH2
OH
N
H
O
ペタコン時代の入力は
1万~10万フラグメント
R5
N
H
R2
O
R4
O
•分子全体の電子状態を、フラグメント(モノマー)とフラグメントペア(ダイマー)
の電子状態を用いて求める
Nfrag
FMO
total
E
N
  EIJ  ( Nfrag  2) EI ,
I J
I
FMO
total
D
Nfrag
N
I J
I
  DIJ  ( Nfrag  2) DI
•フラグメント(モノマー、ダイマー)電子状態は、該当フラグメントと、その近傍の
モノマーの密度行列を基にして計算する



 
EIn 1 DnI 1  f DnI , DnK

K neighborhoot of monomer I
, residues

EIJ  D IJ   f D I , D J , D K Kneighborhoot of monomer I and J , residues

•すべてのモノマーの電子状態が収束するまで、モノマー電子状態計算を繰り返す
(Self-Consistent Charge, SCC)
SWoPP2007 旭川
20~40回の繰り返し
計算
密度行列操作のタイミング
D 
0
I
initial density calculation
update monomer density matrices
electronic structure calculation for monomer
n1
I
E
 D   f  D ,D 
n 1
I
n
I
n
K Kneighborhood of monomer I

refer monomer matrices needed in
electronic structure calculation
not yet converged
convergence check of
SCC procedure
SCC procedure
already converged
update monomer density matrices
electronic structure calculation for SCF-dimer

EIJ  DIJ   f DI , DJ , DK Kneighborhood of monomer I and J

approximated electronic structure calculations for
ES-dimer
EIJ  DIJ   f  EI , EJ , DI , DJ 
refer monomer matrices needed in
electronic structure calculation
refer two monomer matrices needed
in dimer-ES calculation
For all monomers
evaluate approximated electronic structure of
entire system
Nfrag
Nfrag
I J
I
FMO
Etotal
  EIJ   Nfrag  2   EI ,
Nfrag
Nfrag
I J
I
DFMO
total   DIJ   N frag  2   DI
SWoPP2007 旭川
For all SCF-dimers
For all separated dimers
Update all monomer density matrices
Refer some monomer density matrices
MPI-2仕様(片側通信)の必要性
次世代スパコンでのFMO計算の入力として想定している
10万フラグメントの場合・・・
密度行列要素の保存に必要なメモリ容量≒43GB !
モノマー密度行列あたりの平均データサイズ≒450KB
• このデータをすべてのMPIプロセスが保持することは、非常に大変な
ので、密度行列の分散保存が必要
これまでの並列FMOプログラム(GAMESS[1]やABINIT-MP[2])では、すべてのMPI
プロセス各々が、すべての密度行列データを保存する手段をとっている
• 効率よくリモートメモリにアクセスするためには、片側通信機構が必須
[1] M.W.Schmidt et al., J. Comput. Chem., Vol.14, pp.1347-1363 (1993)
[2] T. Nakano et al., Chem. Phys. Lett., Vol.318, pp.614-618 (2000)
SWoPP2007 旭川
密度行列データの保存・参照方法
①各MPIランクが、すべてのデータを保存する(非分散保存、従来法)
利点:
• データ参照時のコストが軽い(メモリコピー程度)
欠点:
• 各MPIランクが使用するメモリがネックになって、計算対象分子に対
するスケーラビリティーがない
• データの更新処理に多くの通信コストがかかる
②すべてのMPIランクで分散して保存する(分散保存)
利点:
• メモリ不足が起きにくい
• FMO法の特性で、分散保存に伴う通信コスト増加は、それほど大き
くない、と予想される(かも?)
欠点:
• データ参照の効率を考えると、片側通信機構が必要である
• データ参照時のコストが増加する
SWoPP2007 旭川
目次
• 研究目的
• フラグメント分子軌道(FMO)法について
• スケルトンコードとPSI-SIMについて
• FMOスケルトンコードを用いた性能評価
• まとめ
SWoPP2007 旭川
PSI-SIMのワークフロー
評価アプリ
ケーション
(実機実行:可能)
評価アプリ
ケーション
(実機実行:不可能)
プログラムコード抽象化
(BSIM-Parser)
1. BSIM-Parser
プロセッサ情報
データベース
2. BSIM-Logger
スケルトン
コード
通信プロファイル生成
(BSIM-Logger)
評価アプリケーションのプログラ
ムコード抽象化(通信プロファイ
ルの高速生成を目的)
通信プロファイルの生成(中規
模システムによる大規模システ
ムの通信プロファイル生成を目
的)
評価イン
ターコネク
ト構成
通信プロファイル
(ゼロ通信遅延)
モデル化
インターコネクト
シミュレーション
(NSIM)
インターコネクト
コンフィグレーション
(NDLファイル)
3. NSIM
ネットワークシミュレーション(ゼ
ロ通信遅延プロファイルへの実
遅延時間付加が目的)
4. ANA
予測実行時間
ネットワーク性能
通信プロファイル
(通信遅延有)
アプリケーションの可視化/解
析(アプリケーションの評価や開
発支援が目的)
可視化/解析
(ANA)
通信トラフィックの可視化
プログラム最適化の指針提供
SWoPP2007 旭川
スケルトンコード
スケルトンコードとは・・・
プログラム中における主要な計算部分を削除して、その代わりに、
推定計算時間を埋め込んだコード
図: スケルトンコードの例
実コード
スケルトンコード
double foo(int n) {
int i;
double r=0.0;
for (i=0; i<n; i++) {
r += calculate_something(i);
}
return r;
}
SWoPP2007 旭川
double foo(int n) {
int i;
double r=0.0;
/*
for (i=0; i<n; i++) {
r += calculate_something(i);
}
*/
BSIM_Add_time ( etime(n) );
return r;
}
スケルトンコードとBSIM Logger
スケルトン
コード
PSIプロジェクトで開発中のBSIM Loggerと、スケル
トンコードを組み合わせて用いることで、ゼロ通信遅
延の通信プロファイル(clog2形式)が得られる
通信プロファイル作成
(BSIM Logger)
通信プロファイル
(ゼロ通信遅延)
表:通常のMPE環境で得られるプロファイルとの相違点
通常のMPE
BSIM Logger
通信イベントのタイム
スタンプ
実際の計算時間、通信時間
を基に決められる
BSIM_Add_timeで与えられた推
定実行時間を基に決められる
通信遅延
有限の値を持つ
ゼロ
SWoPP2007 旭川
目次
• 研究目的
• フラグメント分子軌道(FMO)法について
• スケルトンコードとPSI-SIMについて
• FMOスケルトンコードを用いた性能評価
• まとめ
SWoPP2007 旭川
FMOプログラムの基本構造
全MPIランク(MPI_COMM_WORLD)をいくつかの単位
に分割して、分割された各単位で分担して計算を行う
グループ=フラグメント(モノマー、ダイマー)電子状態計算を行う単位
マスター=各グループに対して、電子状態計算を行うフラグメントの割当て
を行うMPIプロセス(動的負荷分散を行う場合)
マスター
グループ 0
グループ 1
グループ Ngroup-1
rank 0
rank 0
rank 0
rank 1
rank 1
・
・
・
・
・
・
・
・
・
rank Pgroup-1
rank Pgroup-1
rank Pgroup-1
MPI_COMM_WORLD
SWoPP2007 旭川
・・・
rank 1
並列FMO計算のスケルトンコード
• フラグメント(モノマー、ダイマー)の電子状態計算部分を
BSIM_Add_time関数で置き換えた。
• 上記のBSIM_Add_timeに与える値(フラグメント電子状態計算の推定実
行時間は、 NAREGIプロジェクト*で、九州大学の高見氏らが実測値を基
に得た経験式)を基にした。
• モノマー密度行列の通信部分はスケルトンコードに埋め込んだ
このようにして、非分散保存バージョン(OpenFMO-1)と、分散保存
バージョン(OpenFMO-2)のスケルトンコードを作成した。
*;文部科学省プロジェクト「超高速コンピュータ網形成プロジェクト(National Research Grid Initiative
(NAREGI)」
SWoPP2007 旭川
2つのFMOスケルトンコードを用いた性能評価
OpenFMO-1とOpenFMO-2のスケルトンコードをBSIM
Loggerを用いてそのまま実行すると、性能に差が出な
い
通信遅延以外に両者に差がないのに、BSIM Loggerで得られたプロ
ファイルには通信遅延0として記録されているから
実測値に即した通信遅延時間をBSIM_Add_time関数でログに加算することで、
通信遅延時間の「粗い推定」を行った。
•MPI_SendとMPI_Recvの通信遅延時間をデータサイズを変えて求め、1対1通
信の通信遅延時間の経験式を求めた
•集団通信はbinomial treeライクの1対1通信の繰り返しで行うことを仮定した
•MPI_Put, MPI_Getは、それぞれ、MPI_Send, MPI_Recvと同じ通信遅延とした
SWoPP2007 旭川
性能評価環境
使用計算機:
理研スーパーコンバインドクラスタ(RSCC)のLinuxクラスタ部分の一部
プロセッサ: dual Xeon(3.06GHz)/node, 64 nodes
ネットワーク: Gigabit ether
コンパイラ: GCC version 3.2
MPIライブラリ: BSIM loggerパッチをあてたMPICH2(version 1.0.4p1)
使用プログラム:
OpenFMO-1とOpenFMO-2のスケルトンコード(フラグメント電子状態
計算部分をスケルトン化してある)
入力データ:
アクアポリン分子(PDB ID=2F2B, モノマー数=492)
SWoPP2007 旭川
密度行列へのアクセスに関わる通信時間の比
OpenFMO-1
Ttotal

OpenFMO-2
Ttotal
Ngroup NSCC  log 2 Ngroup  log 2 Pgroup 


N
N
NSCC  1  log 2 Pgroup   NSCC 1  Nifc4c, monomer   SCF dimer ifc4c, dimer   Nfrag  1
2


Ngroup  グループ数,
NSCC  SCC繰り返し回数
Pgroup  グループあたりランク数,
Nifc4c, monomer  モノマーあたりの近接モノマー数
NSCF dimer  モノマーあたりSCFダイマー計算をする相手モノマーの数
Nifc4c, dimer  ダイマーあたりの近接モノマー数
•フラグメント数Nfragが大きくなると、従来の非分散保存が有利
•グループ数Ngroup(計算機規模)が大きくなると、分散保存が有
利
SWoPP2007 旭川
OpenFMO-1とOpenFMO-2の通信コストの比
target molecule = Aquaporin (14,432 atoms, 492 fragments)
16 ranks/group
10
TOpenFMO-1/TOpenFMO-2
OpenFMO-2 is better
1
measured ratios
estimated ratios
OpenFMO-1 is better
0.1
8
16
32
number of group
SWoPP2007 旭川
64
まとめ
大量のモノマー密度行列データを分散保存しても、通信コストの増加の
程度は小さく、使用する計算機資源が大きくなると、むしろ、従来の保存
方法より効率が良いことが分かった
密度行列を分散保存することで、スケーラビリ
ティーのある並列FMO計算プログラムが作成でき
る
SWoPP2007 旭川
MPIライブラリに対する希望
1. MPI-2規格、特に、片側通信機構(MPI_Put, MPI_Get関数など)
を実装して欲しい
2. MPI_THREAD_SERIALIZED以上のスレッドサポートを実装し
て欲しい
2は、フラグメントの電子状態計算において、動的負荷分散を用いた細粒
度並列化を効率よく行うために必要
SWoPP2007 旭川
謝辞
•本研究は,文部科学省「次世代IT基盤構築のための研究開発」,研究開発
領域「将来のスーパーコンピューティングのための要素技術の研究開発」
(平成17年度~19年度)における研究開発課題「ペタスケール・システムイン
ターコネクト技術の開発」による.
•文部科学省プロジェクト「超高速コンピュータ網形成プロジェクト(National
Research Grid Initiative:(NAREGI)」 で得られたデータを一部使用している.
•計算機を用いた実験は,すべて,理研スーパーコンバインドクラスタ
(RSCC)のLinuxクラスタを用いて行った.
SWoPP2007 旭川