QUICK REVIEW
[論文レビュー] JLQCD IroIro++ lattice code on BG/Q
Guido Cossu, Jun Noaki|arXiv (Cornell University)|Nov 1, 2013
Particle physics theoretical and experimental studies参考文献 2被引用数 10
ひとこと要約
本稿では、高メンテナビリティ、ポータビリティ、および異種アーキテクチャへのパフォーマンスポータビリティを実現するC++ベースのオブジェクト指向格子ゲージ理論シミュレーションフレームワーク、IroIro++を提示する。IBM Blue Gene/Q向けにカスタム低レベルライブラリ(BGNET、BGQThreads)、BFM統合、細粒度スレーディングを活用し、16スレッドで16スレッドで1ノードあたり最大27.56 GFlops/sのドメインウォールフェルミオンシミュレーションを達成。同時に、マルチプラットフォーム対応および将来のアルゴリズム拡張のための拡張性を維持している。
ABSTRACT
We describe our experience on the multipurpose C++ code IroIro++ designed for JLQCD to run on the BG/Q installation at KEK. We discuss some details on the performance improvements specific for the IBM Blue Gene Q.
研究の動機と目的
- 現代のスーパーコンピュータにおける格子ゲージ理論シミュレーションのレガシーフォルトレンコードの複雑化とメンテナビリティの課題に対処する。
- 物理的コンセプトを実装詳細から抽象化し、ポータブルで拡張可能かつメンテナブルなシミュレーションフレームワークを設計する。
- コード変更なしにユーザーが設定を制御できるように、XML駆動によるシミュレーション動作制御を実現する。
- IBM Blue Gene/Q向けに、アーキテクチャ固有のライブラリとBFM(BiCGStab FMA最適化カーネル)の統合を通じてパフォーマンスを最適化する。
- 大規模シミュレーションを想定し、さまざまなフェルミオン作用、ソルバ、観測量をサポートする。特にNf=2+1ドメインウォールフェルミオンを含む。
提案手法
- Chromaからインspiredしたデザインパターンを採用したオブジェクト指向C++を採用し、フィールド、作用、ディラック作用素、ソルバ、トラジェクトリを抽象化する。
- MPI、BGNET、またはシングルコア実行を抽象化する通信レイヤーを備えた階層的ソフトウェアアーキテクチャを実装する。
- IBMジャパンが提供する最適化ライブラリを統合:低レイテンシ通信のBGNET、SMT対応スレーディングのBGQThreads、最適化されたBLASカーネル。
- 高性能線形代数処理、特に共役勾配ソルバ向けに、BFM(BiCGStab FMA最適化)カーネルを統合する。
- 再コンパイルなしに実行時設定を制御できるXMLベースの設定を採用し、シミュレーションパラメータ、作用、観測量を制御する。
- 細粒度マルチスレーディングとハイブリッドMPI+OpenMP並列処理を実装し、BG/Qにおけるスレッド数によるパフォーマンスチューニングを実施する。
実験結果
リサーチクエスチョン
- RQ1複雑なアルゴリズムと複数のアーキテクチャをサポートできる、現代的でメンテナブルかつポータブルな格子ゲージ理論シミュレーションフレームワークをどのように設計できるか?
- RQ2ドメインウォールフェルミオンを用いたHMCシミュレーションにおいて、Blue Gene/Qで発生するパフォーマンスボトルネックは何か。また、それらをどのように緩和できるか?
- RQ3BFM最適化カーネルとIBMの低レベルライブラリは、BG/Qにおける格子QCDシミュレーションのパフォーマンスをどの程度向上できるか?
- RQ4スレッド数が、特にハーゼンバスチ・プリコンディショニングを用いたRHMCにおけるマルチレベルソルバおよび力計算のパフォーマンスに与える影響は何か?
- RQ5大規模HMCシミュレーションにおいて、通信オーバーヘッド、同期、計算効率の間で生じる主要なパフォーマンストレードオフは何か?
主な発見
- IroIro++は、16スレッドを用いた2フレーバーのドメインウォールフェルミオンシミュレーションにおいて、Blue Gene/Qで1ノードあたり最大27.56 GFlops/sのパフォーマンスを達成。そのうち87%が共役勾配ソルバで消費されている。
- CGソルバは1ノードあたり20 GFlops/sを超えるパフォーマンスを達成しており、BFMのピーク効率に向けたさらなる最適化の余地が示唆されている。
- 力計算ではスレッド数の増加に伴いパフォーマンスが低下しており、特に有理関数近似項(表3のP-1)のスレーディングが不完全であることが原因で、全体のスケーリングが制限されている。
- CGの最良パフォーマンスは最大スレッド数(例:64スレッド)で達成され、MPI通信とバリアオーバーヘッドが最小限に抑えられている。
- 2048ノードのRHMC実行(2+1フレーバー)において、全体のパフォーマンスは1ノードあたり約15 GFlops/s(I/Oを含むと13 GFlops/s)に達しており、CGのみで1ノードあたり20 GFlops/sを達成している。
- 本コードは現在のNf=2+1ドメインウォールフェルミオンシミュレーションに生産環境で使用可能であり、今後ドキュメントとテストスイートの改善を経て、公開リリースを予定している。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。