[論文レビュー] HPX -- An open source C++ Standard Library for Parallelism and Concurrency
HPX は、非同期タスクベースの並列処理とグローバルアドレス空間を可能にするオープンソースの C++ 標準準拠の AMT ランタイムで、異種ハードウェア上で HPC アプリケーションをスケールさせることを目指します。GPU、STORM/STAR アプリケーション、およびオープンソースコミュニティ開発との統合を実証します。
To achieve scalability with today's heterogeneous HPC resources, we need a dramatic shift in our thinking; MPI+X is not enough. Asynchronous Many Task (AMT) runtime systems break down the global barriers imposed by the Bulk Synchronous Programming model. HPX is an open-source, C++ Standards compliant AMT runtime system that is developed by a diverse international community of collaborators called The Ste||ar Group. HPX provides features which allow application developers to naturally use key design patterns, such as overlapping communication and computation, decentralizing of control flow, oversubscribing execution resources and sending work to data instead of data to work. The Ste||ar Group comprises physicists, engineers, and computer scientists; men and women from many different institutions and affiliations, and over a dozen different countries. We are committed to advancing the development of scalable parallel applications by providing a platform for collaborating and exchanging ideas. In this paper, we give a detailed description of the features HPX provides and how they help achieve scalability and programmability, a list of applications of HPX including two large NSF funded collaborations (STORM, for storm surge forecasting; and STAR (OctoTiger) an astro-physics project which runs at 96.8% parallel efficiency on 643,280 cores), and we end with a description of how HPX and the Ste||ar Group fit into the open source community.
研究の動機と目的
- MPI+X から非同期のマルチタスク ランタイムシステムへ paradigms を転換し、ノード内およびヘテロジニアスな HPC リソースを活用する必要性を動機づける。
提案手法
- HPX ランタイムコンポーネントとその役割を説明する(スレッドマネージャ、AGAS、パーセル/アクティブメッセージング、パフォーマンスカウンタ)。
- HPX がフォーエス、チャネル、データフロー、CPS ベースのプログラミングを待機なしの非同期実行のためにどのように実現するかを説明する。
- HPX.Compute と HPXCL を通じた CUDA および SYCL/デバイスプログラミングによるヘテロジニアリティとの統合を提示する。
実験結果
リサーチクエスチョン
- RQ1HPX の AGAS とアクティブメッセージングを備えた AMT モデルは、従来の BSP モデルと比較して異種 HPC システムでのスケーラビリティをどのように向上させるのか。
主な発見
| 属性 | 値 |
|---|---|
| License | Boost Software License, Version 1.0 |
| Version | 1.0 with 15 releases |
| Commits | 18431 from 78 contributors |
| Lines of Code | 465869 (pure C++) and 598093 (all files) |
| Continuous Integration | CircleCI and AppVeyor |
- HPX はフォーエス、チャネル、非同期プリミティブを備えた C++ 標準準拠 API を提供する。
- HPX にはオブジェクトの移動と場所透明性を可能にする Active Global Address Space (AGAS) が含まれる。
- HPX は RPC ラインのリモート呼び出しのためのワンサイトの Parcel (Active Messaging) モデルを使用する。
- HPX には適応性のための複数のスケジューリングポリシーとパフォーマンスカウンタを備えたタスクスケジューラが含まれる。
- LibGeoDecomp、STORM の津波予測、および天体物理学(OctoTiger)といったアプリケーションが、高い並列効率と大規模コアでのスケーリングを示す(例:643,280 コアでの 96.8% の並列効率)。
- HPX はヘテロジニアスなハードウェア(Xeon Phi Knights Corner、Cori Knights Landing)上で高い性能を示し、いくつかのシナリオで MPI を上回ることができる。
より良い研究を、今すぐ始めましょう
論文設計から論文執筆まで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。