Skip to main content
QUICK REVIEW

[論文レビュー] A Comparative Study of Asynchronous Many-Tasking Runtimes: Cilk, Charm++, ParalleX and AM++

Abhishek Kulkarni, Andrew Lumsdaine|arXiv (Cornell University)|Apr 1, 2019
Parallel Computing and Optimization Techniques参考文献 19被引用数 5
ひとこと要約

本論文は、Cilk、Charm++、ParalleX、AM++ の4つの非同期多数タスクランタイムについて、包括的な比較分析を提示している。プログラミングモデル、実行モデル、実装を評価し、表現力、拡張性、現代のHPC課題(障害耐性、負荷分散など)への対応において顕著な差異を特定。非同期多数タスク処理がエクサスケールの移植性とパフォーマンスに不可欠であると結論づけている。

ABSTRACT

We evaluate and compare four contemporary and emerging runtimes for high-performance computing(HPC) applications: Cilk, Charm++, ParalleX and AM++. We compare along three bases: programming model, execution model and the implementation on an underlying machine model. The comparison study includes a survey of each runtime system's programming models, their corresponding execution models, their stated features, and performance and productivity goals. We first qualitatively compare these runtimes with programmability in mind. The differences in expressivity and programmability arising from their syntax and semantics are clearly enunciated through examples common to all runtimes. Then, the execution model of each runtime, which acts as a bridge between the programming model and the underlying machine model, is compared and contrasted to that of the others. We also evaluate four mature implementations of these runtimes, namely: Intel Cilk++, Charm++ 6.5.1, AM++ and HPX, that embody the principles dictated by these models. With the emergence of the next generation of supercomputers, it is imperative for parallel programming models to evolve and address the integral challenges introduced by the increasing scale. Rather than picking a winner out of these four models under consideration, we end with a discussion on lessons learned, and how such a study is instructive in the evolution of parallel programming frameworks to address the said challenges.

研究の動機と目的

  • エクサスケールHPCの文脈において、4つの代表的非同期多数タスクランタイム(Cilk、Charm++、ParalleX、AM++)を評価・比較すること。
  • プログラミング性、パフォーマンス、大規模かつ動的ワークロードへの対応という観点から、各ランタイムの長所と短所を特定すること。
  • 実行モデルがプログラミング抽象化と下位のマシンアーキテクチャの間をどのように橋渡しするか、とくに並列性と異種性の増大に伴う影響を分析すること。
  • 実際のパフォーマンスと生産性の目標を踏まえて、成熟した実装(Intel Cilk++、Charm++ 6.5.1、AM++、HPX-3)の評価を行うこと。
  • 生産性、パフォーマンス、大規模スケールにおけるレジリエンスのバランスを取る次世代並列プログラミングフレームワークの設計に役立つ教訓を抽出すること。

提案手法

  • 共通のコード例を用いて、構文、意味論、表現力の差を浮き彫りにするために、プログラミングモデルの定性的比較を実施。
  • タスク表現、スケジューリング戦略(例:ワークスティーリング、SDAG、ワークシェアリング)およびランタイム動作(負荷分散、障害耐性など)に注目した実行モデルの分析。
  • 4つの成熟したシステム(Intel Cilk++、Charm++ 6.5.1、AM++、HPX-3)における実装レベルの特徴を評価し、アクセラレータ対応、I/O、グローバルアドレス空間のサポートを検証。
  • 構造化された比較マトリクスを用いて、細粒度スレーディング、メッセージ駆動型計算、階層的実行、トポロジーアウェアマッピングなどの特徴を評価。
  • 動的挙動(適応的並列性、自動データ再配置、クiescence検出)を各システムで分析。
  • 得られた知見を統合し、次世代ランタイムの設計原則を導出。非同期的で、レイテンシ耐性があり、データ並列とタスク並列の抽象化を統合する点に重点を置く。

実験結果

リサーチクエスチョン

  • RQ1Cilk、Charm++、ParalleX、AM++ のプログラミングモデルは、並列処理の表現力と使用のしやすさにおいて、どのように異なるか?
  • RQ2タスクスケジューリング、同期、動的負荷分散への対応という観点から、実行モデルにおける主な相違点は何か?
  • RQ3成熟した実装(Cilk++、Charm++ 6.5.1、AM++、HPX-3)は、障害耐性、アクセラレータ統合、スケーラブルI/Oといった現代のHPC要件をどの程度満たしているか?
  • RQ4これらのランタイムは、メモリローカリティ、並列粒度、大規模スケールにおけるレジリエンスといった課題をどのように処理しているか?
  • RQ5エクサスケールシステム向けの将来の並列プログラミングフレームワークの進化を導くために、共通する設計パターンや教訓は何か?

主な発見

  • Cilkはワークスティーリングを採用し、AM++はアクティブメッセージ抽象化を採用するなど、両者ともタスク並列処理を強くサポートするが、Cilkのモデルは動的負荷分散および障害耐性において制限がある。
  • Charm++とParalleXは、SDAG、クイescence検出、適応的負荷分散といった高度な機能を備えた、分散型メッセージ駆動実行において優れたサポートを示している。
  • AM++とParalleXは、階層的実行およびグローバルアドレス空間へのネイティブなサポートが強く、よりスケーラブルかつ組み合わせ可能なプログラミングモデルを可能としている。
  • 4つのランタイムすべてが非同期実行をサポートしているが、障害耐性のためのチェックポイントとレジリエントタスクスケジューリングを包括的に提供するのは、Charm++とParalleXに限られている。
  • HPX-3(AM++の実装)とCharm++ 6.5.1は、CilkとParalleXに比べてアクセラレータ統合および細粒度並列処理のサポートが優れている。
  • 本研究は、非同期多数タスク処理モデルがエクサスケールシステムにとって不可欠であることを確認しており、動的で適応的かつレイテンシ耐性のある実行が、パフォーマンスと拡張性の両面で不可欠であると結論づけている。

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

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

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

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