Skip to main content
QUICK REVIEW

[論文レビュー] Parallel Work Inflation, Memory Effects, and their Empirical Analysis

Umut A. Acar, Arthur Charguéraud|arXiv (Cornell University)|Sep 12, 2017
Parallel Computing and Optimization Techniques参考文献 13被引用数 3
ひとこと要約

本論文では、実測されたスループットを3つの要素に分解することにより、並列実行の性能ボトルネックを軽量かつ経験的根拠に基づいて分析する手法を提案する。3つの要素とは、並列処理量、アイドル時間、および作業インflエーション(work inflation)である。作業インフレーションは、メモリ効果や通信オーバーヘッドを捉える。実行時間とアイドル時間のみを測定することで、メモリ関連の非効率性の影響を分離可能となり、プログラマは最小限のインストルメンテーションで並列コードの診断と最適化が可能になる。

ABSTRACT

In this paper, we propose an empirical method for evaluating the performance of parallel code. Our method is based on a simple idea that is surprisingly effective in helping to identify causes of poor performance, such as high parallelization overheads, lack of adequate parallelism, and memory effects. Our method relies on only the measurement of the run time of a baseline sequential program, the run time of the parallel program, the single-processor run time of the parallel program, and the total amount of time processors spend idle, waiting for work. In our proposed approach, we establish an equality between the observed parallel speedups and three terms that we call parallel work, idle time, and work-inflation, where all terms except work inflation can be measured empirically, with precision. We then use the equality to calculate the difficult-to-measure work-inflation term, which includes increased communication costs and memory effects due to parallel execution. By isolating the main factors of poor performance, our method enables the programmer to assign blame to certain properties of the code, such as parallel grain size, amount of parallelism, and memory usage. We present a mathematical model, inspired by the work-span model, that enables us to justify the interpretation of our measurements. We also introduce a method to help the programmer to visualize both the relative impact of the various causes of poor performance and the scaling trends in the causes of poor performance. Our method fits in a sweet spot in between state-of-the-art profiling and visualization tools. We illustrate our method by several empirical studies and we describe a few experiments that emphasize the care that is required to accurately interpret speedup plots.

研究の動機と目的

  • 並列スループットに与えるメモリ効果やその他の性能要因の相対的影響を定量化するツールの不足に対処すること。
  • 生産環境向けの並列コードにおけるスケーラビリティの低さの原因をプログラマが分離・診断できるようにすること。
  • 性能測定を歪めてしまう可能性がある豊富なインストルメンテーションを伴うツールとは対照的に、実用的で低オーバーヘッドの代替手段を提供すること。
  • プロセッサ数の増加に伴い、オーバーヘッド、アイドル、作業インフレーションといった要因がスループットの傾向にどのように影響するかを可視化すること。

提案手法

  • 本手法は、実測された並列スループットを、並列処理量、アイドル時間、作業インフレーションという3つの項に分解する。この分解には、実行時間とアイドル時間の測定のみを用いる。
  • 観測されたスループットとこれらの3つの要因を結ぶ数学的等式を確立する。ここで、並列処理量とアイドル時間は直接測定可能であるが、作業インフレーションは等式を介して間接的に導出される。
  • 作業インフレーションは、フェイクシェアイング、メモリコherエンシー、同期オーバーヘッドなどの隠れたコストを表しており、直接測定できない。
  • 本手法は、ワーストケース理論的境界ではなく、実際の実行データに基づくモデルを採用しており、ワーキングスパンモデルにインspiredされている。
  • 本手法は、各パラメータがプロセッサ数に応じてどのように相対的・トレンド的に寄与しているかを可視化するためのファクタードスループットプロットを導入する。
  • 本手法は最小限のインストルメンテーションを要する。具体的には、直列ベースラインの実行時間、単一プロセッサでの並列実行時間、およびマルチプロセッサ実行時の全アイドル時間の測定のみが必要である。

実験結果

リサーチクエスチョン

  • RQ1並列プログラムにおけるスループット損失の何パーセントが、メモリ効果や通信オーバーヘッドに起因しているか。
  • RQ2直接測定ができない状態でのハードウェアレベルの非効率性(作業インフレーション)を、どのように分離・定量化できるか。
  • RQ3アイドル時間とアルゴリズム的オーバーヘッドは、実世界の並列アプリケーションにおけるスケーラビリティの低さにどの程度寄与しているか。
  • RQ4軽量で経験的根拠に基づく手法は、生産コード向けの既存のプロファイルツールに比べ、より実用的な洞察を提供できるか。

主な発見

  • メモリサブシステムの影響や同期コストを含む作業インフレーションは、並列スケーラビリティの低下の主な要因ではあるが、しばしば隠れた要因である。
  • 本手法は、実行時間とアイドル時間の測定のみで作業インフレーションを成功裏に分離でき、メモリ関連の性能劣化の正確な診断が可能になった。
  • ファクタードスループットプロットの分析から、CilksortおよびMaximal Independent Setベンチマークにおいて、スケーリングの悪化は主に作業インフレーションとアイドル時間に起因しており、アルゴリズム的オーバーヘッドではないことが明らかになった。
  • 本手法により、並列度の増加に伴う性能要因の変化を可視化することで、より多くのコア数でのスケーラビリティトレンドの正確な外挿が可能になった。
  • 本手法は、インストルメンテーションに起因する性能歪みを回避するため、生産コードにおいて従来のプロファイルツールに比べ実用性と正確性に優れている。
  • 経験的分析から、スループット曲線そのものだけでは根本原因の特定が不十分であることが示された。本研究で提案する分解手法により、最適化に向けた実用的で具体的な洞察が得られた。

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

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

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

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