[論文レビュー] Automated Synthesis of Divide and Conquer Parallelism
本稿では、逐次コードにおける分割統治型並列化を自動的に合成する手法を提示する。この手法は、正しい結合演算子を自動的に生成し、必要に応じて元のコードに補助的蓄積器を追加して並列化を可能にする。アプローチは構文誘導型合成と機械検証済み正当性証明を用い、ランタイムオーバーヘッドなしで多様なベンチマークでほぼ理想に近いスループット向上を達成する。
This paper focuses on automated synthesis of divide-and-conquer parallelism, which is a common parallel programming skeleton supported by many cross-platform multithreaded libraries. The challenges of producing (manually or automatically) a correct divide-and-conquer parallel program from a given sequential code are two-fold: (1) assuming that individual worker threads execute a code identical to the sequential code, the programmer has to provide the extra code for dividing the tasks and combining the computation results, and (2) sometimes, the sequential code may not be usable as is, and may need to be modified by the programmer. We address both challenges in this paper. We present an automated synthesis technique for the case where no modifications to the sequential code are required, and we propose an algorithm for modifying the sequential code to make it suitable for parallelization when some modification is necessary. The paper presents theoretical results for when this {\em modification} is efficiently possible, and experimental evaluation of the technique and the quality of the produced parallel programs.
研究の動機と目的
- 逐次コードにおける分割統治型並列化のための正しい結合演算子の自動合成を実現すること。
- 自然な結合演算子を備えないループを自動的に補助的蓄積器で拡張することで、効率的な分割統治型並列化を可能にすること。
- このような拡張が効率的に可能であり、自動的に発見可能な理論的基盤を提供すること。
- 合成された結合演算子の正当性を、すべての入力に対して機械検証済み証明で保証すること。
- 合成された並列プログラムの性能とスケーラビリティを実世界のベンチマークで評価すること。
提案手法
- 制限されたが表現力のある探索空間内で、正しい結合演算子を探索する構文誘導型合成(SGS)を用いる。
- 逐次ループに補助的蓄積器を自動的に追加して、有効な結合演算子の存在を可能にする形式的フレームワークを定義する。
- 第3のホモモルフィズム定理および関連する代数的原則を活用して、結合関数の合成をガイドする。
- 合成された結合演算子の正当性を、入力ドメイン全体にわたって自動的に検証する証明生成を統合する。
- 正当性、効率性、およびコード拡張のオーバーヘッドのバランスを取るアルゴリズムを設計する。
- 還元や非結合的演算(例:is-sorted や length)を含む多様なベンチマークにこの手法を適用する。
実験結果
リサーチクエスチョン
- RQ1正しい結合演算子が存在する場合、分割統治型並列化のために自動的に合成可能か?
- RQ2非並列化可能なループが、どのような条件下で補助的蓄積器の追加によって効率的な分割統治型並列化が可能になるか?
- RQ3合成された結合演算子の機械検証済み正当性証明を自動的に生成可能か?
- RQ4コード拡張のオーバーヘッドを低く抑えつつ、並列化による性能向上を確保できるか?
- RQ5合成された並列プログラムの性能は、逐次版および手動最適化版と比べてどうか?
主な発見
- 提案手法は、is-sorted や length といった、結合演算子が明確でない複雑なケースを含む、すべてのテストベンチマークに対して正しい結合演算子を効果的に合成した。
- アルゴリズムは、かつて不可能だった並列化を可能にする補助的蓄積器を含むコード拡張を自動生成した。
- 合成されたすべての結合演算子には、入力ドメイン全体にわたる正当性を保証する機械検証済み証明が付随している。
- 平均してほぼ理想に近いスループット向上を達成し、平均スループット向上率が 9.8、標準偏差が 0.04 であった。これは、高い一貫性とスケーラビリティを示している。
- SYMPA や [33] といった先行研究を上回る性能を発揮した。本手法は、左・右への走査を必要とせず、単一の逐次実装のみを入力としている点が利点である。
- 長さや is-sorted のように、通常は結合的でない関数に対しても、自動的に必要な補助情報を推論することで、本手法は有効に機能した。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。