Skip to main content
QUICK REVIEW

[論文レビュー] Multi-block/multi-core SSOR preconditioner for the QCD quark solver for K computer

Taisuke Boku, Ken-Ichi Ishikawa|arXiv (Cornell University)|Oct 28, 2012
Quantum Chromodynamics and Particle Interactions参考文献 1被引用数 11
ひとこと要約

本稿では、Kコンピュータ上のQCDクォークソルバーに向けたマルチブロック/マルチコアSSORプリコンディショナを提示する。SPARC64 VIIIfx CPU上で単精度SIMDインストラクションを最適化して、LüscherのSAPプリコンディショニング付きネストドBiCGStabソルバーを高速化している。16〜4096ノードの間で理想の弱スケーリングを達成し、主要なカーネルで50%を超える継続的効率を発揮。単精度BiCGStabソルバーは、全テストされた格子サイズで約26%の効率に達している。

ABSTRACT

We study the algorithmic optimization and performance tuning of the Lattice QCD clover-fermion solver for the K computer. We implement the Lüscher's SAP preconditioner with sub-blocking in which the lattice block in a node is further divided to several sub-blocks to extract enough parallelism for the 8-core CPU SPARC64$^{\mathrm{TM}}$ VIIIfx of the K computer. To achieve a better convergence property we use the symmetric successive over-relaxation (SSOR) iteration with {\it locally-lexicographical} ordering for the sub-blocks in obtaining the block inverse. The SAP preconditioner is included in the single precision BiCGStab solver of the nested BiCGStab solver. The single precision part of the computational kernel are solely written with the SIMD oriented intrinsics to achieve the best performance of the \SPARC on the K computer. We benchmark the single precision BiCGStab solver on the three lattice sizes: $12^3 imes 24$, $24^3 imes 48$ and $48^3 imes 96$, with fixing the local lattice size in a node at $6^3 imes 12$. We observe an ideal weak-scaling performance from 16 nodes to 4096 nodes. The performance of a computational kernel exceeds 50% efficiency, and the single precision BiCGstab has $\sim26% susutained efficiency.

研究の動機と目的

  • Kコンピュータのマルチコア、SIMDアーキテクチャを備えたSPARC64 VIIIfx CPU向けに、O(a)-改訂されたウィルソンクォークソルバーの最適化とチューニングを実施すること。
  • 部分ブロッキングと辞書式順序を用いた対称的逐次過緩和(SSOR)を適用することで、SAPプリコンディショナの収束性と並列性を向上させること。
  • 低レベルのSIMDインストラクション関数を用いて、内側のBiCGStabソルバーにおける単精度演算の高性能化を実現すること。
  • 最大4096ノードで12³×24から48³×96の大きな格子サイズにわたり、弱スケーリングの挙動と性能効率を評価すること。

提案手法

  • SAPプリコンディショナに部分ブロッキングを実装し、各ノードのローカル格子(6³×12)をより小さなサブブロック(3⁴)に分割することで、マルチコア並列性を向上させる。
  • 収束性向上のため、SAPプリコンディショナにおけるブロック逆行列計算に、局所的辞書式順序を用いた対称的逐次過緩和(SSOR)を適用する。
  • SPARC64 VIIIfxアーキテクチャでのパフォーマンス最大化を目的に、SIMD最適化インストラクションを用いて単精度計算カーネルを実装する。
  • SAPプリコンディショナをネストドBiCGStabソルバーに統合し、内側のソルバーでは単精度算術を、最終的な解の精度は二重精度を維持する。
  • ノードごとのローカル格子サイズを6³×12に固定し、3つの格子サイズ(12³×24、24³×48、48³×96)でベンチマークを実施する。
  • KコンピュータのTofuネットワークと富士通のコンパイラー・プロファイラを用いて、パフォーマンス、SIMD利用率、弱スケーリング効率を測定する。

実験結果

リサーチクエスチョン

  • RQ1SSORプリコンディショナに部分ブロッキングを適用することで、Kコンピュータの8コアSPARC64 VIIIfx CPU上でのQCDクォークソルバーの並列性と収束性はどのように向上するか?
  • RQ2Kコンピュータ上でBiCGStabソルバーにSIMD最適化された単精度カーネルを適用することで、どの程度のパフォーマンス向上が達成できるか?
  • RQ3ローカル格子サイズを固定した状態で、16〜4096ノードの範囲でソルバーが理想の弱スケーリングを示すか、その程度はいかにか?
  • RQ4A_EEカーネルのパフォーマンス効率がD_EEカーネルより低いのはなぜか、その要因は何か?
  • RQ5冗長な浮動小数点演算(例:SU(3)再構成、スピン射影のためのFMAD)が測定されたパフォーマンスに与える影響は何か。また、これを補正するにはどうすべきか?

主な発見

  • 単精度BiCGStabソルバーは、全テストされた格子サイズで約26%の継続的効率を達成しており、Kコンピュータの計算リソースを効果的に活用していることが示された。
  • D_EEカーネルは50%を超える効率を達成し、インストラクション関数使用時におけるSIMD利用率が90%に達しており、ハードウェアの高い活用度が裏付けられた。
  • A_EEカーネルは、スレッド間のロードバランシングの不均衡と、D_EEに比べてループ本体の計算密度が低いことが原因で、35%の効率にとどまった。
  • 弱スケーリング性能は16〜4096ノードの範囲で理想であり、カーネルのパフォーマンスと効率がスケールにわたり安定したまま維持された。
  • D_EEの理論ピークと観測されたパフォーマンスの差は、ボリューム領域と表面領域を区別する条件分岐に起因しており、さらなる最適化の余地があるとされた。
  • 冗長な演算(例:SU(3)再構成、FMAD)を除外した場合、実効パフォーマンスは測定値の約80%にまで上昇すると推定され、さらなるチューニングの余地があることが示された。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。