Skip to main content
QUICK REVIEW

[論文レビュー] Porting Large HPC Applications to GPU Clusters: The Codes GENE and VERTEX

T. Dannert, Andreas Marek|arXiv (Cornell University)|Oct 5, 2013
Magnetic confinement fusion research参考文献 7被引用数 3
ひとこと要約

本論文では、CUDAを用いてGPUアクセラレートクラスタに大規模HPCアプリケーション2つ—プラズマ乱流のためのGENEと、コア収縮超新星シミュレーションのためのVERTEX—を移植する手法を提示している。著者はGPUカーネルの最適化とCPU-GPUワークロードのバランスを図ることで、最大2倍のスループット向上を達成し、複雑な科学的コードにおいてもスケーラビリティを損なわずに時間対解決を著しく短縮できることを示している。

ABSTRACT

We have developed GPU versions for two major high-performance-computing (HPC) applications originating from two different scientific domains. GENE is a plasma microturbulence code which is employed for simulations of nuclear fusion plasmas. VERTEX is a neutrino-radiation hydrodynamics code for "first principles"-simulations of core-collapse supernova explosions. The codes are considered state of the art in their respective scientific domains, both concerning their scientific scope and functionality as well as the achievable compute performance, in particular parallel scalability on all relevant HPC platforms. GENE and VERTEX were ported by us to HPC cluster architectures with two NVidia Kepler GPUs mounted in each node in addition to two Intel Xeon CPUs of the Sandy Bridge family. On such platforms we achieve up to twofold gains in the overall application performance in the sense of a reduction of the time to solution for a given setup with respect to a pure CPU cluster. The paper describes our basic porting strategies and benchmarking methodology, and details the main algorithmic and technical challenges we faced on the new, heterogeneous architecture.

研究の動機と目的

  • 大規模で生産用途のHPCアプリケーションをGPUアクセラレートクラスタに移植することで、顕著なパフォーマンス向上を実現すること。
  • 既存の並列スケーラビリティを保ちつつ、高度に最適化された科学的コードにGPUアクセラレーションを統合する課題に対処すること。
  • 核融合エネルギーおよび天体物理学分野の実世界のHPCワークロードにおけるGPUオフロードの実現可能性とパフォーマンス向上を評価すること。
  • 異種アーキテクチャにおけるデータ移動およびカーネル移植の主なボトル neck を同定し、克服すること。
  • 長期的な科学的アプリケーションに向けたGPU移植の持続可能性、保守性、コスト効率を評価すること。

提案手法

  • CUDAプログラミングモデルを採用し、CUDA-Fortranに比べて優れたGPUパフォーマンスを発揮するため、パフォーマンスを最優先とした。
  • スループットの測定に、同等のノード数における高度に最適化されたCPUオンリーランをパフォーマンスベースラインとして用い、公平な比較を確保した。
  • フィールドソルバーや非線形項計算などの計算集約型カーネルを特定するために、GENEおよびVERTEXの詳細なプロファイリングを実施した。
  • CPUとGPU間のデータ転送を最適化し、特にPCIe 2.0環境では主要なボトル neck であることが判明した。
  • ノード全体にわたるCPUおよびGPUワークロードのバランスを最適化し、リソースの未利用を回避し、全体のスループットを最大化した。
  • 手動最適化されたCUDAカーネルに比べてパフォーマンスが劣るため、OpenACCおよびOpenMPベースのアプローチを回避した。

実験結果

リサーチクエスチョン

  • RQ1GENE や VERTEX のような大規模で生産用途のHPCアプリケーションが、GPUアクセラレートクラスタに移植された場合、顕著なパフォーマンス向上を達成できるか?
  • RQ2複雑で高並列性を持つ科学的コードを、CPU-GPU異種アーキテクチャに移行する際の主なパフォーマンスボトル neck は何か?
  • RQ3GPUアクセラレーションは、既存のHPCアプリケーションの弱スケーリング特性にどのように影響を与えるか?
  • RQ4コアアルゴリズムの再設計なしに、どの程度のパフォーマンス向上が達成可能か?
  • RQ5低レベルGPUカーネルを用いる場合、開発作業量、保守性、長期的持続可能性のトレードオフは何か?

主な発見

  • GENEおよびVERTEXの両アプリケーションにおいて、ノード1台あたり2つのK20X GPUを搭載したGPUアクセラレートクラスタ上での全体的なパフォーマンスが最大2倍向上した。
  • GENEのパフォーマンスは現在、CPUとGPU間のデータ転送に制限されており、将来のPCIe 3.0ハードウェアでは改善が見込まれる。
  • VERTEXはGPUクラスタ上でも優れた弱スケーリングを示し、既存の強力なパフォーマンス特性を維持した。
  • ブロック三重対角行列の線形ソルバーが移植されれば、3倍のスループット向上が可能であるが、現時点ではデバイスコール可能なLAPACK機能の欠如によりブロックされている。
  • GENEおよびVERTEXのCPUオンリーバージョンはすでに高度に最適化されていたため、GPUオフロードによるパフォーマンス向上は、高いベースラインパフォーマンスにもかかわらず顕著であった。
  • 1コードあたり数か月分の開発作業が、エネルギー効率の向上およびハードウェアコストの削減を考慮すると、パフォーマンス向上の観点から妥当な投資であった。

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

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

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

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