[論文レビュー] Towards Autotuning of OpenMP Applications on Multicore Architectures
本論文では、IBM Power775システム上でハイブリッドMPI+OpenMPワークロードにおける動的スレッド数選択を可能にする自動チューニングツールPdtTaggerを提示する。このツールは、OpenMPソースコードを自動的にインストルメントし、ハードウェアパフォーマンスカウンターや実行時間を測定することで、各並列領域における最適スレッド数の自動選定を可能にする。パフォーマンスカウンターのデータとスレッド拡張性の相関関係を活用することで、アプリケーションに適した自動スレッド最適化を実現する。
In this paper we describe an autotuning tool for optimization of OpenMP applications on highly multicore and multithreaded architectures. Our work was motivated by in-depth performance analysis of scientific applications and synthetic benchmarks on IBM Power 775 architecture. The tool provides an automatic code instrumentation of OpenMP parallel regions. Based on measurement of chosen hardware performance counters the tool decides on the number of parallel threads that should be used for execution of chosen code fragments.
研究の動機と目的
- 高並列アーキテクチャにおけるOpenMPアプリケーションのスレッド数選択が非最適であるという課題に対処すること。
- 特定のコンパイラに依存するなど、制限が多く、ソースレベルでの制御ができない既存のバイナリインストルメントツール(例:hpctInst)の限界を克服すること。
- 実行時パフォーマンスフィードバックに基づき、ハイブリッドMPI+OpenMPアプリケーションにおける個々の領域ごとの自動的かつ最適なスレッド数最適化を可能にすること。
- POWERアーキテクチャ上でハードウェアパフォーマンスカウンターを用いた詳細なパフォーマンス分析を可能にするスケーラブルな自動チューニングフレームワークの開発。
- 自動インストルメンテーションと実行時意思決定を統合することで、科学的HPCワークロードにおける適応的スレッド管理の導入を促進すること。
提案手法
- プログラムデータベースツールキット(PDT)を用いてソースコードを解析し、プログラム構造の構造的表現を構築する。
- 選択されたOpenMP並列領域の開始および終了位置にライブラリ関数呼び出しを挿入することで、領域境界をマークする。
- IBMのlibhpmインタフェースを介して実行時間およびハードウェアパフォーマンスカウンターを測定するカスタムライブラリとリンクする。
- スレッドおよび領域ごとの実行時間とイベントカウント(例:キャッシュミス、命令スループット)を含むパフォーマンスデータを収集する。
- 環境変数(例:HPM_VIZ_OUTPUT)を用いて、後処理および可視化が可能な複数のフォーマット(例:hp、viz)での出力を可能にする。
- pmapiライブラリを介した実行時パフォーマンス監視と統合し、リアルタイムのカウンター解析に基づく動的スレッド数適応意思決定を可能にする。
実験結果
リサーチクエスチョン
- RQ1POWERアーキテクチャ上でのOpenMPアプリケーションにおいて、どのハードウェアパフォーマンスカウンターがスレッド拡張性と最も強く相関しているか。
- RQ2実行時パフォーマンスカウンターに基づき、個々のOpenMP領域に対して最適スレッド数を自動的に推奨するデータ駆動型ヒューリスティック(例:意思決定木)を構築できるか。
- RQ3IBM Power775システム上での異なるSMTモード(SMT2、SMT4)において、科学的および合成ベンチマークのパフォーマンスはどのように変化するか。
- RQ4自動チューニングにおいて、バイナリレベルのインストルメンテーションに比べて、ソースレベルのインストルメンテーションが柔軟性と制御性の面でどれほど優れているか。
- RQ5グローバルなOMP_NUM_THREADS設定と比較して、領域固有のパフォーマンスデータに基づく自動チューニングが、ハイブリッドMPI+OpenMPワークロード全体のパフォーマンス向上にどれほど寄与するか。
主な発見
- SMTモードによるパフォーマンス向上はアプリケーションの種別によって顕著に異なり、スループット指向のワークロードが高SMTレベルで最大の利益を得る。
- メモリ集約的アプリケーションは、SMT4ではメモリ帯域幅の競合やキャッシュの圧迫により、通常はパフォーマンスが低下する。
- PdtTaggerツールはC言語のOpenMP領域を正常にインストルメントし、正確な実行時間およびハードウェアパフォーマンスカウンターのデータ収集を実現した。
- PdtTaggerによるインストルメンテーションにより、個々のOpenMP領域の詳細なプロファイリング(スレッドごとの実行時間、イベントカウントなど)が可能になった。
- ツールはMPIプロセスごとおよびOpenMP領域ごとに個別のパフォーマンスプロファイルを生成することで、ハイブリッドMPI+OpenMPアプリケーションをサポートした。
- フレームワークは拡張可能であり、将来的にpmapiなどの意思決定ライブラリと統合することで、リアルタイムのパフォーマンスフィードバックに基づく実行時スレッド数適応を可能にする。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。