2017 Volume 16 Issue 5 Pages 126-128
Recently, simulations with coarse-graining models, such as coarse-grained molecular dynamics (CG-MD) and dissipative particle dynamics (DPD), have attracted practical interest. We have developed a portable code CAMUS for DPD simulations. Performance evaluations of CAMUS (Code for dissipative particle dynAMics simUlationS) have been made by comparison with COGNAC (Coarse-Grained molecular dynamics program by Nagoya Cooperation) as a standard DPD code, in 5,000 − 100,000 particles systems.
分子の性質を予測,研究するための道具として分子動力学(Molecular Dynamics,MD)シミュレーションが盛んに利用されている.しかし,より大きな系,より長いシミュレーション時間のシミュレーションを行いたいという需要は常に存在する.そのため,近年では複数の原子や分子を1つの粒子に"粗視化"し,シミュレーションを行うことも増えている."粗視化"を用いたシミュレーション法としては,Coarse-grained MD (CG-MD)と散逸粒子動力学(Dissipative Particle Dynamics, DPD)が存在するが,我々はDPDに注目した.DPDでは,シミュレーション中に1ステップで進む時間をより長くすることが可能である.そのため,同じステップ数のシミュレーションを行った時,より長い時間の計算を行う事ができる.そのため,我々はDPDに注目した.
しかし,そのソフトウェアの整備状況はMDと比較すると十分とはいえない.DPDシミュレーションのためのソフトウェアは今までにも,LAMMPS [1,2], HOOMD-blue [3,4,5],GROMACS [6,7],DL_MESO [8]等が知られている.また,国内でもCOGNAC [9]が存在する.COGNACは,ソフトマテリアル総合シミュレータOCTA [10,11]の一部であり,原子結合を考慮した詳細な分子モデルから,粗視化モデルまでを対象とした汎用の分子動力学シミュレーションプログラムである.
しかし,これらのソフトウェアはきわめて大きなソフトウェアであり,機能拡張を自ら行うのは難しいと感じられた.そのため,コンパクトで拡張性の高いDPDのソフトウェアCAMUSの開発を行った.CAMUSの実装上の大きな特徴は,DPDの特性に基づいて近接リストの構築を省いたことである.CAMUSのベンチマークテストでは,これまで常用 [12]してきたCOGNACと比較することにした.COGNACは,MDとDPDの両方のシミュレーションが出来るが,DPDでも近接リストを用いている.
シミュレーションボックスに5000粒子から100000粒子を配置し計算を行い消費した時間を計測した.無次元密度を3と設定し,それに応じてシミュレーションボックスの大きさは変化させた.各粒子数の計測において,スレッド数も1から12まで変化させ,加速効率や並列化効率を計算した.加速効率 Acc は次式で計算した.
Acc = 100 × T/T1Thread
なお,T1Thread は1スレッドでの計算時間である.並列化効率 Parは次式で計算した.
Par = 100 × T/(T1Thread Nthreads)
なお,Nthreadsは計算に使用したスレッド数である.
単一ノードで,主CPUはXeon E5-2640 (2.50 GHz, 6cores)を二つ持つサーバを用いた.また,COGNAC及びCAMUSはOpenMP [13]を用いて,計算コストの高い力の計算ループなどがスレッドベースで並列化されている.
Table 1にIntel Xeon 上での結果を示す.
CAMUS | COGNAC | ||||||||
# of particles | Threads | Time (ms)/step | Acc | Par | # of particles | Threads | Time (ms)/step | Acc | Par |
5000 | 1 | 10.1 | 100.0 | 100.0 | 5000 | 1 | 16.3 | 100.0 | 100.0 |
2 | 6.1 | 165.4 | 82.7 | 2 | 10.6 | 153.8 | 76.9 | ||
4 | 3.7 | 274.4 | 68.6 | 4 | 6.9 | 236.3 | 59.1 | ||
12 | 2.8 | 365.3 | 30.4 | 12 | 4.7 | 346.8 | 28.9 | ||
10000 | 1 | 20.5 | 100.0 | 100.0 | 10000 | 1 | 34.9 | 100.0 | 100.0 |
2 | 11.9 | 172.9 | 86.4 | 2 | 24.6 | 141.9 | 70.9 | ||
4 | 7.6 | 268.8 | 67.2 | 4 | 13.3 | 262.4 | 65.6 | ||
12 | 7.1 | 289.5 | 24.1 | 12 | 8.1 | 430.9 | 35.9 | ||
50000 | 1 | 99.0 | 100.0 | 100.0 | 50000 | 1 | 236.9 | 100.0 | 100.0 |
2 | 56.7 | 174.8 | 87.4 | 2 | 143.6 | 165.0 | 82.5 | ||
4 | 35.4 | 279.8 | 70.0 | 4 | 90.9 | 260.6 | 65.2 | ||
12 | 24.8 | 399.0 | 33.2 | 12 | 51.3 | 461.8 | 38.5 | ||
100000 | 1 | 194.5 | 100.0 | 100.0 | 100000 | 1 | 634.4 | 100.0 | 100.0 |
2 | 113.5 | 171.4 | 85.7 | 2 | 393.8 | 161.1 | 80.6 | ||
4 | 68.4 | 284.5 | 71.1 | 4 | 232.4 | 273.0 | 68.2 | ||
12 | 56.8 | 342.5 | 28.5 | 12 | 128.5 | 493.7 | 41.1 |
全体的に,COGNACと比較すると,CAMUSでの計算時間は少なく高速に動作している事がわかる.また,この傾向は粒子数が少ない場合よりも粒子数が多くなるとより差が顕著になる.例えば,5000粒子の系を1スレッドで計算した場合では,COGNACでは1ステップに16.3 (ms) 消費しているのに対して,CAMUSでは10.1 (ms) で済んでいる.しかし,100000粒子の系を1スレッドで計算した場合では,COGNACでは1ステップに634.4 (ms) かかるのに対して,CAMUSでは194.5 (ms)の時間である.特記すべきは,CAMUSが粒子数の増加に対して(ほぼ)線形の計算コスト依存性を示す点であり,近接リストの構築を省いた効果であると考えられる.DPDシミュレーションの利点は,容易に大きな系,長い時間のシミュレーションが実行可能であるという点に想定されているため,粒子数のより多い系で高速に動作する特性は望ましい.
次に加速と並列化の効率を見てみる.両方のソフトウェアに共通するが,効率的には残念ながらあまり良くない.加速効率はCAMUSの場合は340前後が最高値になっており,COGNACの場合は500前後になっているが,後者の方が高いのは近接リスト構築のコスト分が乗っているためと考えられる.アムダール則的には,コード全体の並列化度が十分でない場合,いくら並列数を上げても有効な加速が得られないが,今回の結果はこうした状況を反映したものと言える.近年,CPUは多コア化が進んでおり,一般のユーザーでも容易に8コアや16コアのCPUを入手できるような状況にある.また,Intel Xeon Phiなどの数十コアが使用できる加速器的なCPUも存在する.こうしたことから,粒子を多く含む大型のシミュレーションを高い並列数で行う需要は大きくなってきている.こうしたことから,CAMUSの並列パフォーマンスを向上させる一つの方策としては,セルの領域分割によってOpenMPによるスレッド並列(領域内)とMPIによるプロセス並列(分割セルのリスト)を混成させる複合的な並列化が有効であると思われる.そのためには,乱雑力の統一化や分割セル間の粒子の移動の扱いなど,幾つかの拡張•工夫が必要であり,現在作業を進めているところである.作業完了後に,より大きな系のベンチマークテストを超並列環境でも行って性能を評価し,改良をさらに続けていく予定である.
本研究開発は,文科省FS2020プロジェクト重点課題6からの支援を受けている.