Skip to main content
QUICK REVIEW

[論文レビュー] MPI Derived Datatypes: Performance Expectations and Status Quo

Alexandra Carpen-Amarie, Sascha Hunold|arXiv (Cornell University)|Jul 1, 2016
Parallel Computing and Optimization Techniques参考文献 15被引用数 3
ひとこと要約

この論文は、MPIデリバリーデータ型の性能が基本的な期待にどのように応えているかを評価し、一般的なMPIライブラリが最適でない型正規化のため、意味的に同一のデータ型に対して同等の性能が得られないという基本的な性能ガイドラインに違反していることを明らかにした。また、MPI型コンストラクタの選択が性能に顕著な影響を与えることが示され、MVAPICH2-2.1のような一部のライブラリでは性能が著しく劣ることを示した。さらに、単純なレイアウトでも、最適な効率を得るためにはMPI_Type_create_structのような完全な型コンストラクタを用いた注意深いデータ型記述が有効であることが示された。

ABSTRACT

We examine natural expectations on communication performance using MPI derived datatypes in comparison to the baseline, "raw" performance of communicating simple, non-contiguous data layouts. We show that common MPI libraries sometimes violate these datatype performance expectations, and discuss reasons why this happens, but also show cases where MPI libraries perform well. Our findings are in many ways surprising and disappointing. First, the performance of derived datatypes is sometimes worse than the semantically equivalent packing and unpacking using the corresponding MPI functionality. Second, the communication performance equivalence stated in the MPI standard between a single contiguous datatype and the repetition of its constituent datatype does not hold universally. Third, the heuristics that are typically employed by MPI libraries at type-commit time are insufficient to enforce natural performance guidelines, and better type normalization heuristics may have a significant performance impact. We show cases where all the MPI type constructors are necessary to achieve the expected performance for certain data layouts. We describe our benchmarking approach to verify the datatype performance guidelines, and present extensive verification results for different MPI libraries.

研究の動機と目的

  • MPIデリバリーデータ型が自然な性能期待を満たしているかどうか、特に直接パック/アンパックと比較しての検証。
  • MPI標準が提示する連続型と繰り返し型の間の性能同等性が、実際の動作においても成り立つかどうかの評価。
  • MPI型コンストラクタ(例:MPI_Type_create_struct、MPI_Type_indexed)の違いが、通信性能に与える影響の評価。
  • MPI_Type_commit時における現在のMPIライブラリの型正規化ヒューリスティクスの欠陥の特定。
  • 多様なMPI実装においてデータ型の性能ガイドラインを検証可能なベンチマークフレームワークの提供。

提案手法

  • 非連続的かつタイル型のデータレイアウト(例:ストライド付きの部分行列)を想定した、パラメータ化された合成ベンチマークを設計し、制御された条件下での性能テストを実施。
  • 先行研究に基づき、意味的同等性、正規化、性能の一貫性に焦点を当てた4つの具体的な性能ガイドライン(GL1–GL4)を策定・検証。
  • NEC MPI、MVAPICH2、Open MPI の複数のMPIライブラリを対象に、ピングポング通信ベンチマークを実装し、異なるデータ型記述におけるレイテンシおよび帯域幅を測定。
  • 同じデータレイアウトを表す3つの異なるデリバリーデータ型表現(完全にインデックス化されたもの、連続型とインデックス型の組み合わせ、構造体ベース)の間で性能を比較。
  • 結果の分析を通じて、期待される性能同等性の違反を検出するとともに、型正規化ヒューリスティクスの有効性を評価。
  • 合成パターンと実世界のレイアウトモチーフの両方を用いることで、実際のHPCアプリケーションに実用的関連性を持つことを確保。

実験結果

リサーチクエスチョン

  • RQ1MPIライブラリは、意味的に同一のデリバリーデータ型に対して一貫して同等の性能を達成しているか、MPI標準が要求するように?
  • RQ2一般的なMPIライブラリが、たとえば単一の連続型とその繰り返し型との間に同等の性能を示すという基本的な性能期待をどの程度違反しているか?
  • RQ3同じデータレイアウトに対して、MPI型コンストラクタの選択(例:MPI_Type_create_struct と MPI_Type_indexed)が通信性能にどのように影響するか?
  • RQ4MPI_Type_commit 時に使用されるヒューリスティクスは、最適な性能を保証するのに十分か、それとも型を効果的に正規化できていないか?
  • RQ5データ型記述の違いに起因する性能差は、アルゴリズム的またはアーキテクチャ的制約ではなく、実装レベルの非効率性に起因するものと特定できるか?

主な発見

  • デリバリーデータ型の性能は、意味的に同等のMPI_PackおよびMPI_Unpackの使用よりも劣ることがあり、これはデータ型が少なくとも同等の効率であるはずという期待に反する。
  • MPI標準が保証する単一連続型とその繰り返し型との間の性能同等性は、すべてのMPIライブラリで普遍的に成り立たない。
  • MVAPICH2-2.1は、同じデータ型記述においても、NEC MPI-1.3.1 や Open MPI-1.10.1 より著しく性能が劣り、特に大きなストライドがある場合に顕著である。
  • MPI_Type_create_struct を使用する RowCol-struct 表現は、常に RowCol-fully-indexed や RowCol-contiguous-and-indexed よりも優れた性能を示し、一部のケースでは最大2倍の高速化を達成した。
  • MPI_Type_commit 時に使用されるヒューリスティクスは、型を最適な内部表現に正規化するのに不十分であり、ユーザーが定義した記述に応じた性能差を生じさせている。
  • 通信呼び出し中に即座に正規化を行うことは、計算コストが高いため効率的ではなく、事前のcommit時の正規化が極めて重要であることを示しており、MPIにおけるより良い照会およびガイダンスメカニズムの必要性を強調している。

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

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

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

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