プログラムの高速化・並列化サービスの事例

チューニングレポート:マルチスケール流体の分子動力学と直接数値シミュレーションのスケーラブルな連成

Lucian Anton, Numerical Algorithms Group Ltd
Edward Smith, Imperial College London
May 31, 2012


[2016年6月掲載]

概要

本プロジェクトの目的は、高性能な流体ソルバーと分子動力学ソルバーを連成する基盤ソフトウェアの開発です。これにより、分子レベルの局所的な流体の重要な詳細情報を捕捉しつつ、残りの領域での連続体計算の効率を確保します。この検証されたコードは、連続的な流体力学時コード(CFD)を分子動力学コードへリンクするスケーラブルなライブラリです。

目次



1. イントロダクション


1.1  CFDとMDの連成に関する一般的観点

マクロな流体の振る舞いに対して、そのインターフェイスを操作することにより影響を与える技術は、将来の工学技術に大きなインパクトを与えます。例えば、イルカの皮膚上で摩擦抵抗を減らすtono-filamentや脂肪滴の分泌の場合と同じような、ミクロンサイズで解像可能な流体力学的コーティングの表面の特性が、乱流摩擦抵抗の低減のために探索されています。また、変形する表面テクスチャでは、リフトを最適化するために昆虫の能力を模倣する「フライ・バイ・フィール」の技術が想定され、電気スプレー中の液滴の界面挙動を操作するために電場の利用が探索されています。

こうした課題を達成するカギとなるのは、ミクロとマクロスケールの間の依存性が二面性を持つことと認識することです:ミクロなインターフェイス領域はマクロな流れを大きく変更し、その外側の状態はミクロなダイナミクスへ影響を与えることから、フィードバックループが確立されます。よって、空間的に7-8次のオーダーと、時間に関して9-10次のオーダーに渡る忠実なダイナミクスの記述が必要とされます。この結果、こうしたレベルのマルチスケール・モデリングは、最先端の工学シミュレーション能力を遥かに超えるものです。

本プロジェクトでは、連続体-分子連成システムの基盤ソフトウェアを開発します。分子動力学(MD)シミュレーションは、閉じた空間内で相互作用する個々の原子の運動を追跡します。他方、連続体ソフトウェアは、直接数値シミュレーション(DNS)を用いて、大きな計算領域内の各点における流速に対する非線形偏微分方程式を解きます。

離散的な原子および連続体のシミュレーションの連成は、O'Connell and Thompsonのセミナー論文[1]まで遡る、活発に研究されている分野です。この8年間に重要な論文が多く存在します[2, 3, 4, 5, 6, 7, 8, 9]。この連成技術を利用する研究者の数は増加し続けており、このような連成の方法論を実現するためには、効率的でスケーラブルかつ堅牢な方法が必要です。

本作業により、一つの連成フレームワークによるMDアルゴリズム(StreamMD)とDNSソルバー(TransFlow)の連成が、本提案の最初のフェーズで達成されました。これは多目的な計算の連成ユーティリティの基礎となるもので、HECToRコミュニティ・ユーザに公開される予定です。

1.2  プロジェクト目標と作業概要

本プロジェクトの目標は、大規模並列コードの同時連成実行をサポートする基盤ソフトウェアを開発することです。この場合は、その対象は、連続的な流体力学コードと離散的な分子動力学コードです。カプラ(連成ソフトウェア)はライブラリ・パッケージとして提供され、両方のコードとリンクし、それらの間の通信を制御します。

連成基盤ソフトウェアは以下の構成で実装されました:

  1. データのパッキングと通信のための内部ルーチンセット。DNSとMDソルバー特定のデータレイアウトからカプラの独立性を保つために、カプラは内部的なデータオブジェクトと通信マップを初期ステージで構築します。こうして、新たなDNSやMDソルバーに対して変更を最小限にします。
  2. DNSやMDアプリケーションからアクセス可能なインターフェイスモジュール。これはアプリケーション間の同期とデータ交換に必要な全てのルーチンを備えます。

2.  カプラのアルゴリズムと実装の詳細

2.1  カプラの基盤ソフトウェア

カプラは以下の主要な機能を持ちます:(a)必要となる全てのコミュニケータの初期化、(b)DNSとMDアプリケーションのMPI配置に対する論理関係と通信マップの定義、(c)データ転送操作。以下に実装された各アルゴリズムの簡単な説明を記述します。

(a) 連続体ソルバーと分子動力学コードはMPMD式に同時実行します。グローバルコミュニケータ(MPI_COMM_WORLD)は初期化後に、DNSとMDアプリケーションに対応する連続体コミュニケータ(CFD_COMM)と分子コミュニケータ(MD_COMM)に分割されます。さらに、インターコミュニケータも定義されますが、これは連続体プロセスのみを含み、分子動力学についてはカプラに物理的に連成されます。

(b) 問題に関するパラメータを用いて(例えば、DNSのグリッド変数や物理的な領域変数)、このアルゴリズムはDNSとMDアプリケーション間に必要な連成を特定し、これを両方のコードの適切なMPIランク間のマッピングとして保存します。これはMPI通信の局所性を確保し、連成されたコードの個別のスケール性を保ちます。

(c) プロセスと内部マップの論理的レイアウトを用いて、カプラは計算中に生じる全てのアプリケーション間のデータ転送を実現します。初期化においてMPIランク間の空間的な関係が確立され、データ転送には単純な送受信型MPIが呼び出されます。これは開発モジュールの一般性を保証し、新たな連続体やMDソルバーあるいは新たな連成スキームへの統合を容易にします。

カプラの主なインターフェイスサブルーチンの名前と機能の簡単な説明を以下にリストします。カプラの処理の流れは図1に示します。


! coupler_create_comm	(cfd+md) splits MPI_COMM_WORLD, creates
!				intercommunicator between CFD and MD
! coupler_create_map	(cfd+md) creates correspondence maps between
!				the CFD grid and MD domains
! coupler_cfd_init	(cfd)	initialises coupler and CFD parameters
! 				using data from MD or COUPLER.in
! coupler_md_init	(cfd)	initialises coupler and MD parameters
! 				using data from CFD or COUPLER.in
! coupler_send_data	(cfd+md) sends grid data exchanged between
! 				realms ( generic interface)
! coupler_recv_data	(cfd+md) receives data exchanged between
!				realms ( generic interface)
! coupler_cfd_get	(cfd) 	returns coupler internal parameters
! 				for CFD realm
! coupler_md_get	(md)	 returns coupler internal parameters
!				for MD realm


図1: DNS-MDカプラのフローチャート。色つきの箱はカプラを表す。

2.2  連成アルゴリズムのベンチマークとスケーラビリティ

連成アルゴリズムのベンチマークの前に、コード個別の性能を図2に示します。効果的なカプラは扱う個別のコードの性能を保証すべきです。TransFlowの性能テストは、コンプレッサ・ブレード周りの乱流に対して曲線メッシュを用いて実施しました。これはSGI Altix 4700, Intel Itanium 2 (HLRB, Super-Computing Centre, Germany)上でMPIタスクあたり370,000グリッドポイントを用いてシミュレーションを行いました。並列効率は16コアの性能を元に示しています。コア数の増加に伴い、ノードあたりのコア数は一定にしています。図2aに示すように、768コアで94.4%の並列効率が示されています。

作業項目1の一部としてStreamMDをHECToRの1024コアを用いてベンチマーク測定しました。図2bのプロファイルは3,317,760分子のレナード・ジョーンズ系の5000ステップの結果です。このシステムサイズに対してプロセッサ数を増やしていき、シングルコアを基にした理論スケール性能に対するシミュレーション時間として並列効率を示します。結果はLAMMPSから得られたそれと比較されています。その数値計算手法によりStreamMDは高い並列効率をある程度は示します。ここで、LAMMPSはより小さなシステムサイズ(32,000分子)で計測された結果のため、コア数の増加と共に急速に効率が減少します。


図2: コード個別の並列性能。(a:左図):TransFlowの並列性能、(b:右図):StreamMDの並列性能(△)対、Cray X5におけるLAMMPSの性能(□)。

連成手法は文献[3]に従い、その精度はこの文献の結果を再現することで検証しました。対象とした問題は、解析解と比較できるカノニカルせん断クエット流です。図3aは解析解に沿って文献[3]の結果を再現していることを示しています。連続体-MD連成コードは解析解を正確に再現しています。

連成アルゴリズムのスケーラビリティも評価しました。クエット層流のケースの場合、連続体ソルバーの計算負荷はほぼ無視できます。よってコードの高速化はほぼStreamMDとカプラに依存します。もしカプラが効率的に実行されるならば、全体の高速化はStreamMDと同じスケール性を持つと期待できます。カプラのスケール性をStreamMDと1024プロセッサまで比較したものを図3bに示します。カプラの性能は僅かに悪化するのみです。


図3:連成コードの精度とスケーラビリティ。(a:左図):クエット流の解析解に対する連成コードの検証。(b:右図):StreamMDのみの並列高速化(△)、連成コード(○)、理論性能(破線)。

3.  作業の成果

カプラの主たる目的は分子による影響を補足する際の計算リソースの削減でした。多くの研究場面では、これはHECToRのノード時間を何桁も削減します。他の工学的に興味の有るケースでは、連成の利用によりMDやDNS単独で出来なかったシミュレーションを可能にします。これにより、ミクロスケールのシミュレーション領域をより幅広く研究者や技術者に利用してもらうことができるようになります。

連成実行の利点の例として、ここでミクロンサイズのチャネルの全原子シミュレーションを考えます。要求される原子数は、1µ×1µ×10µのチャネルでさえ、2×1011のオーダーが必要です。コアあたり200,000分子程度を仮定しても、全チャネルの計算には百万コアが必要です。重要な分子効果は壁付近の小さな領域(~O(nm))なので、連成手法を使えばMD領域を~O(109)程度に削減することが可能です。これは4,096コアで容易に実行可能な問題です。

この例は連成手法の一般的な可能性を示し、特にHECToRユーザに利点となるものです。

4.  結論と今後

連成ソフトウェアが作成され、セクション2.2の内容通りに、その精度とスケーラビリティが検証されました。

本プロジェクトの成功により、次のプロジェクトが現在作業中です。その目的はさらなるカプラの開発で、これにより連成手法研究者とより多くの流体およびナノスケールシミュレーション・コミュニティにとって便利なものになるでしょう。カプラは異なる連成スキームでの利用に必要な異なる変数レンジ(ベクトル、テンソルなど)を渡せるように拡張される予定です。さらに、DNSとMDソルバー間の負荷バランスと実際の問題でのスケーラビリティが検討されます。開発には広く採用される標準的なMPIをベースにした様々なルーチンのモジュール性強化を含みます。その目的は、カプラインターフェイスのみでアクセス可能な保護された変数を扱う、最小限かつロバストなカプラ呼び出しインターフェイスセットの提供です。これは余分な影響を除きつつ、さまざまな言語による他のDNS/MDコード(例えばC++によるLAMMPS)に対してカプラをポータブルにします。さらに徹底的なパラメータ調査により、コードをテストし、詳細なドキュメントと共に詳細なエラー捕捉機構を作成し、HECToRユーザにとって魅力的なコードにしていきます。

謝辞

このプロジェクトは、nAG Ltd.が運営するHECToRの分散計算科学および工学(CSE)サービスの基に実行されました。英国の国立スーパーコンピューティング・サービスである、HECToR:英国リサーチ・カウンシル・ハイエンド計算サービスは、リサーチ・カウンシルを代行するEPSRCが管理しています。そのミッションは英国学術界の科学および工学の研究支援です。HECToRスーパーコンピューターは、UoE HPCx Ltd.およびnAG Ltd.のCSEサポートサービスにより管理運営されています。

文献

[1] S. T. O'Connell and P. A. Thompson. Molecular dynamics-continuum hybrid computations:A tool for studying complex fluid flow. Phys. Rev., E 52:R5792, 1995.
[2] R. Delgado-Buscalioni and P.V. Coveney. Continuum-particle hybrid coupling for mass, momentum, and energy transfers in unsteady fluid flow. Phys. Rev. E, 67:046704, 2003.
[3] X. B. Nie, S.Y. Chen, W. N. E, and M.O. Robbins. A continuum and molecular dynamics hybrid method for micro- and nano-fluid flow. J. of Fluid Mech., 500:55, 2004.
[4] T. Werder, J. H. Walther, and P. Koumoutsakos. Hybrid atomistic-continuum method for the simulation of dense fluid flows. J. of Comp. Phys., 205:373, 2005.
[5] N. G. Hadjiconstantinou. Hybrid atomistic-continuum formulations and the moving contact-line problem. J. Comp. Phys., 154:245, 1999.
[6] M. K. Borg, G. B. Macpherson, and J. M. Reese. Controllers for imposing continuum-to-molecular boundary conditions in arbitrary fluid flow geometries. Molec. Sims., 36:745, 2010.
[7] J. Li, D. Liao, and S. Yip. Coupling continuum to molecular-dynamics simulation: Reflecting particle method and the field estimator. Phys. Rev. E, 57:7259, 1997.
[8] W. Ren. Analytical and numerical study of coupled atomistic-continuum methods for fluids. J. of Comp. Phys., 227:1353, 2007.
[9] E. G. Flekk_y, G. Wagner, and J. Feder. Hybrid model for combined particle and continuum dynamics. Europhys. Lett., 52:271, 2000.
関連情報
MENU
Privacy Policy  /  Trademarks