研究課題/領域番号 |
16K00175
|
研究機関 | 分子科学研究所 |
研究代表者 |
石村 和也 分子科学研究所, 理論・計算分子科学研究領域, 特任研究員 (80390681)
|
研究期間 (年度) |
2016-04-01 – 2019-03-31
|
キーワード | 大規模並列計算 / 量子化学 / 計算化学 |
研究実績の概要 |
弱い相互作用を取り扱える2次の摂動(MP2)法のエネルギー及びエネルギー微分計算の省メモリMPI/OpenMPハイブリッド並列計算アルゴリズムを開発、実装した。これまでに開発してきたエネルギー計算アルゴリズムでは、原子数の4乗に比例して増加する中間データをすべて一度にメモリ上に分散保存していたため、巨大分子の計算が困難であった。原子軌道2電子項に分子軌道係数を4回掛けて分子軌道2電子項を計算する際、原子軌道2電子項を複数回計算することになるが、分子軌道係数を分割して掛けることで一度に蓄える中間データを削減した。実証計算では、分子軌道係数を2分割、3分割した場合、メモリ使用量はそれぞれ1/2、1/3になり、計算時間は約15%、30%の増加となった。計算量の増加を抑えつつ、大幅なメモリ使用量の削減が可能になった。この手法を微分計算にも適用し同様の結果を得た。 金属原子を含む複雑な電子状態計算の収束性を高めるため、従来のDIIS法の他に2次収束法のMPI/OpenMPハイブリッド並列計算アルゴリズムの開発と実装を行った。すべての計算を2段階で並列化し、通信を極力まとめて行い並列化効率を高めた。有機分子の計算ではDIIS法に比べ計算時間は増加するものの収束回数は2/3になり、複雑な電子系に適用できるようになった。 Hartree-Fock計算におけるFock行列計算の4重ループは、従来第1ループのみOpenMPでスレッド並列化されていた。今後のメニーコアシステムに対応するため、第1、2ループをまとめてスレッド並列化した。第2ループの回転数は第1ループのインデックスに依存するため、2つのループを統合した上で行った。第一世代Xeon Phi(60コア)で100原子系の計算を実行したところ、従来法では60スレッドで並列加速率は頭打ちになったが、新規アルゴリズムでは120スレッドでも向上した。
|
現在までの達成度 (区分) |
現在までの達成度 (区分)
2: おおむね順調に進展している
理由
アルゴリズムの改良により、ノード内並列化効率向上を達成し、現在そしてこれからのメニーコアシステムで効率良く計算を実行することが可能になった。繰り返し計算における収束回数削減も行い、金属原子を含む複雑な電子系の計算も実用的になった。さらに、一部サブルーチンの他のプログラムへの移植も行われ、分野でのソースコード共有が始まった。
|
今後の研究の推進方策 |
弱い相互作用を取り扱える2次の摂動(MP2)法のエネルギー及びエネルギー微分計算では、Infinibandで接続されたクラスターでMPI_SendRecvの通信時間が約1割を占める。スーパーコンピュータなど大規模計算での実行時間削減及び並列化効率向上のため、計算と通信をオーバーラップさせる。受信データ用配列を2つ用意し、受信用と受信後の演算用としてこれら2つを交互に利用し、非ブロッキング通信を導入する。さらに演算はMPI/OpenMPハイブリッド並列化を行う。 これまでに開発した大規模並列量子化学計算プログラムSMASHでは、1回の計算で数百万、数千万回呼ばれる原子軌道2電子反発項計算などのサブルーチンはライブラリ化されており、実装コストの削減に大きく寄与している。量子化学計算の範囲内であればこれで十分であるが、今後ますます発展が期待される量子化学計算とその他の計算手法の融合(第一原理分子動力学法など)、また分子を分割して計算コストを削減する方法(Fragment MO法、QM/MM法)では、エネルギー計算や構造計算などをひとくくりにして取り出すことも求められる。そこで、Fortranのmodule変数を使わずに引数のみでデータの受け渡しを行うことでデータの流れを明確化し、その上でPythonを用いて各計算ステップを容易に制御できるようにして、生産性を高める。現在module変数で扱われている分子の座標など計算で必要になる基礎データ変数を、引数で関数及びサブルーチンに渡すように変更する。構造体を用いることで、引数をシンプルにしつつ、物理定数などパラメータ変数以外のすべてのmodule変数を削除する。
|
次年度使用額が生じた理由 |
平成28年度は共同研究者に訪問してもらう機会が多く、想定よりも旅費が少なかった。
|
次年度使用額の使用計画 |
平成29年度はこちらから共同研究者先に訪問することが多くなる予定のため、旅費で使用する。
|