MPI/OpenMP ハイブリッド並列化大規模量子化学計算アルゴリズムの開発
石村和也 1、倉本圭 2、生田靖弘 1、兵頭志明 1
1 豊田中央研究所、2 兵庫県立大学

e1502@mosk.tytlabs.co.jp
概要： 量子化学計算は、化学反応の予測・制御、スペクトルの解析など化学の様々な面で重要な役割を果たし、取り扱われる分子サイズは年々大きくなっている。そこで、量子化学の基礎理論である
Hartree-Fock 法について、計算機ノード間を MPI、計算機ノード内を OpenMP で並列化する
MPI/OpenMP ハイブリッド並列化アルゴリズムを開発した。最も計算時間のかかる Fock 行列計算だけではなく、初期軌道計算など計算全体の並列化を行った。2048CPU コアまでの計算時間、並列加速率を報告する。

1

はじめに物質が変化する化学反応の研究において、量子化学計算は反応の解析や制御、化合物の安定性や物性など様々な面で用いられており、計算に対する要求は高まる一方である。計算対象分子は年々大きくなり、大きな置換基を付けることによる立用いることにより、高速化も行った。

1t1C1  S11
S12C2 Ct2S12S11S12C22

C2: 拡張 Huckel 計算による軌道係数
S11: 実計算の基底の重なり積分
S12: 拡張 Huckel と実計算との基底の重なり積分$OMP parallel do schedule(dynamic)
do  = 1, nbasis
do  = 1, 
do  = 1,  =  + 1
if(mod(,nproc).ne.mpi_rank) cycle
do  = 1, 
2 電子反発積分()計算()を Fock 行列に足し込み
enddo
enddo
enddo
enddo
call mpi_allreduce(Fock matrix)

で、新たな物質・反応の設計が期待される。通常用いられる計算方法は、原子数のおおよそ 3 乗に比例して計算量が増加することから、ナノサイズ分子では計算コストは膨大となる。今後の計算機システムで高速に計算するためには、並列化効率の良いプログラムの開発が求められている。本研
究では、量子化学の基礎理論である Hartree-Fock法について、計算機ノード間を MPI、計算機ノード内を OpenMP で並列化した MPI/OpenMP ハイブリッド並列化アルゴリズムを開発・実装し、2048CPU コアまでのベンチマーク計算を行った。

並列化アルゴリズム

1

C1: 初期軌道係数体効果や、分散力など非共有結合を多用すること2



図 1 Fock 行列計算の MPI/OpenMP ハイブリッド

Hartree-Fock 計算で最も時間を要する Fock 行

並列化アルゴリズム

列(2 電子反発積分)計算は 4 重ループの中で行われる。図 1 のように、第 1 ループを OpenMP で、3計算結果

第 3 ループを MPI のランクにより負荷を分散させ開発したアルゴリズムを量子化学計算プログるアルゴリズムを開発した。OpenMP での分散をラムパッケージ GAMESS[2]に実装した。オリジ

最外ループで行うことにより、OpenMP のオーバ

ナルの GAMESS は MPI(もしくは Socket 通信)ーヘッドを大幅に減らし、さらに動的に分散させの み で 並 列 化 さ れ て い る 。 TiO2 ク ラ ス タ ーることにより、ノード内の負荷をほぼ均等に分け(Ti35O70, 6-31G 基底, 1645 次元, 30SCF サイクル)ることができる。

を用いて、Cray XT5 (Quad-core Opteron 2.4GHz,Fock 行列計算以外にも、1 電子積分、初期軌道

8CPU コア/ノード) 2048CPU コアのベンチマー計算のハイブリッド並列化を行った。初期軌道のク計算を行った。ハイブリッド並列計算は、8 ス

射影計算では、大半が行列積演算になる次式[1]をレッド/プロセスで行った。

の主な原因である。改良版では、2048CPU コアでも 5.9 – 7.0%と割合は小さく、計算全体の並列加速率への影響は小さい。シリアル計算ではわずかな割合(1%以下)の計算でも、1000CPU コア規模の計算では無視することはできない。これからの大規模計算では、主要な計算部分のみの並列化だけではなく、計算全体の高速化・並列化が重要で

図 2 TiO2 クラスターある。

TiO2 クラスター全計算の並列加速率を図 3 に示す。2048CPU コアの並列加速率は、オリジナルの GAMESS では 748 倍であったが、初期軌道計算変更により 1055 倍(改良版(Flat MPI))に向上し、さらに MPI/OpenMP ハイブリッド並列化により

表 2 TiO2 クラスターの Fock 行列計算時間(秒)及び並列加速率(カッコ内)
CPU コア数

162561024

2048

17881.8 1175.2(16.0) (243.5)

334.0
188.6(856.6) (1517.0)

17953.5 1175.2(16.0) (244.4)

360.0
203.1
(797.9) (1414.4)

改良版
17777.6 1150.4
MPI/OpenMP (16.0) (247.3)

316.4
174.8(899.0) (1627.2)

オリジナル
Flat MPI

1238 倍(改良版(MPI/OpenMP))に向上した。

改良版
Flat MPI

表 3 TiO2 クラスターの初期軌道計算時間(秒)及び全計算時間に占める割合(カッコ内)
CPU コア数16

オリジナル

166.2(0.9%)

143.6
143.6
143.8(10.5%) (27.2%) (37.5%)

20.2(0.1%)

18.6(1.5%)

18.9(4.4%)

19.2(7.0%)

18.6
MPI/OpenMP (0.1%)

13.2(1.1%)

13.6(3.6%)

13.8(5.9%)

Flat MPI
改良版
Flat MPI
図 3 TiO2 クラスター全計算の並列加速率

改良版

25610242048

表 1 TiO2 クラスター全計算時間(秒)及び並列加速4率(カッコ内)
CPU コア数

1625610242048

オリジナル 18176.4 1368.6 527.6 383.5(16.0) (212.5) (551.2) (758.3)
Flat MPI
改良版
Flat MPI

18045.6 1241.2 428.7 273.7(16.0) (232.6) (673.5) (1054.9)

18121.6 1214.6 381.1 234.2
MPI/OpenMP (16.0) (238.7) (760.8) (1238.0)
改良版

MPI/OpenMP ハ イ ブ リ ッ ド 並 列 化に よ り、
Fock 行列計算の並列加速率はオリジナルに比べ向上しており、CPU コア数が多くなるほど、その差は大きくなっている(表 2)。
オリジナル版の初期軌道計算の割合は、16CPUコアでは 0.9%であるのに対し、2048CPU コアでは 37.5%になっている(表 3)。これが、図 3 におけるオリジナル(Flat MPI)と改良版(Flat MPI)の差まとめ
Hartree-Fock 計算全体の MPI/OpenMP ハイブリッド並列化アルゴリズムを開発し、2048CPUコアまでのベンチマーク計算を行った。初期軌道計算改良及びハイブリッド並列化により、計算時間、並列加速率ともにオリジナルの GAMESS よりも大幅に向上した。本研究を基にして、高精度計算への展開が可能になった。

参考文献[1] D. Cremer, J. Gauss, J. Comput. Chem. 7,274 (1986).
[2] M. W. Schmidt, K. K. Baldridge, J. A. Boatz,
S. T. Elbert, M. S. Gordon, J. H. Jensen, S.
Koseki, N. Matsunaga, K. A. Nguyen, S. J. Su, T.
L. Windus, M. Dupuis, J. A. Montgomery, J.
Comput. Chem. 14, 1347 (1993).