Skip to main content
QUICK REVIEW

[論文レビュー] Learning to Parallelize with OpenMP by Augmented Heterogeneous AST Representation

Le Chen, Quazi Ishtiaque Mahmud|arXiv (Cornell University)|May 9, 2023
Software Engineering Research被引用数 5
ひとこと要約

この論文では、OpenMP用のCコードにおけるループレベルの並列化を検出するための、グラフベースの機械学習手法Graph2Parを提案する。非同質の拡張抽象構文木(aug-AST)を用いることで、85%の精度で並列化可能なループを同定し、従来のトークンベースのモデルを上回り、複雑またはネストされたループにおいて48件の以前に発見されなかった並列化機会を同定した。

ABSTRACT

Detecting parallelizable code regions is a challenging task, even for experienced developers. Numerous recent studies have explored the use of machine learning for code analysis and program synthesis, including parallelization, in light of the success of machine learning in natural language processing. However, applying machine learning techniques to parallelism detection presents several challenges, such as the lack of an adequate dataset for training, an effective code representation with rich information, and a suitable machine learning model to learn the latent features of code for diverse analyses. To address these challenges, we propose a novel graph-based learning approach called Graph2Par that utilizes a heterogeneous augmented abstract syntax tree (Augmented-AST) representation for code. The proposed approach primarily focused on loop-level parallelization with OpenMP. Moreover, we create an OMP\_Serial dataset with 18598 parallelizable and 13972 non-parallelizable loops to train the machine learning models. Our results show that our proposed approach achieves the accuracy of parallelizable code region detection with 85\% accuracy and outperforms the state-of-the-art token-based machine learning approach. These results indicate that our approach is competitive with state-of-the-art tools and capable of handling loops with complex structures that other tools may overlook.

研究の動機と目的

  • ループレベルの並列化検出における機械学習モデルの学習に適した高品質でラベル付きのデータセットの不足に対処する。
  • 構造的依存関係を無視するため、並列化解析に不可欠な構造的特徴を欠く、従来のトークンベースのコード表現の限界を克服する。
  • より表現力のあるコード表現を構築し、ループの文法的および構造的特徴を捉えることで、モデルの汎化性能を向上させる。
  • 従来の静的解析ツールが見逃す複雑な並列化パターンを検出できる機械学習パイプラインを設計する。
  • プログラム解析および自動並列化研究への広範な応用を可能にする、再利用可能なデータセットとモデルフレームワークを構築する。

提案手法

  • GitHub、ベンチマーク、および合成生成から得た18,598件の並列化可能なループと13,972件の非並列化可能なループを用いて、OMP_Serialデータセットを構築する。
  • コメントや空白の除去などの前処理を経て、Cコードからループを抽出し、OpenMPプリプロセッサディレクティブの有無に基づいて各ループにラベルを付与する。
  • 各ループのASTを、ノードタイプ、制御/データ依存関係、およびリダクション演算などのループ固有の属性を符号化する非同質の拡張AST(aug-AST)に変換する。
  • ノード型およびエッジ型が複数存在する非同質グラフとしてaug-ASTを表現し、多様な意味的および構造的関係を捉える。
  • aug-AST上で非同質グラフニューラルネットワーク(HGT)を学習させ、ループが並列化可能かどうか、および適用可能なOpenMPプリプロセッサディレクティブを分類する。
  • HGTモデルを用いて、メッセージ伝達を非同質グラフ構造全体にわたって実行し、並列化検出、プリプロセッサディレクティブの推奨、依存関係解析の4つの後続タスクを実行する。
Figure 1: Proposed methodology. Data collection and generation: our dataset contains data from GitHub crawling, benchmark collection, and synthetic data generation. Data pre-processing: we extracted loops from codes with pre-processing steps, e.g., removing comments and blank lines. We also label th
Figure 1: Proposed methodology. Data collection and generation: our dataset contains data from GitHub crawling, benchmark collection, and synthetic data generation. Data pre-processing: we extracted loops from codes with pre-processing steps, e.g., removing comments and blank lines. We also label th

実験結果

リサーチクエスチョン

  • RQ1構造的特徴とテキスト的特徴を統合したグラフベースのコード表現は、トークンベースのモデルと比較して、ループレベルの並列化検出精度を向上させることができるか?
  • RQ2非同質の拡張ASTは、従来のツールが見逃す複雑なループパターン(例:リダクションやループキャリーアウト依存関係のないネストされたループ)をどの程度正確に捉えることができるか?
  • RQ3提案されたHGTベースのモデルは、複雑な制御またはデータ依存関係を持つループにおける並列化機会の検出にどの程度効果的か?
  • RQ4OMP_Serialデータセットは、将来の自動並列化ツールやモデルの学習および評価のための信頼できるベンチマークとして機能できるか?
  • RQ5aug-AST表現の生成に伴う実行オーバーヘッドはどの程度で、実世界の静的解析パイプラインにおいて実用的か?

主な発見

  • Graph2Parモデルは、並列化可能なループの検出において85%の精度を達成し、最先端のトークンベースの機械学習手法を上回った。
  • モデルは、DiscoPoP、PLUTO、autoParの3つの既存ツールが見逃した48件の並列化機会を正常に同定した。
  • aug-AST表現により、ループキャリーアウト依存関係のないネストされたループやリダクション演算を伴うループなど、複雑なケースの並列化検出が可能になった。
  • 2次元配列アクセスと単一インデックス(例:j)におけるリダクションを伴うループが安全に並列化可能であることを正しく同定したが、従来のツールでは失敗していた。
  • aug-ASTの生成オーバーヘッドは非常に小さく、平均6.9行の典型的なループではミリ秒オーダーであり、静的解析において実用的である。
  • OMP_Serialデータセットは、機械学習を用いた自動並列化およびコード解析分野における今後の研究に価値ある大規模ベンチマークを提供する。
Figure 2: Category-wise loops missed by renowned parallelization assistant tools. The results are generated using the OMP_Serial dataset introduced in section 4 .
Figure 2: Category-wise loops missed by renowned parallelization assistant tools. The results are generated using the OMP_Serial dataset introduced in section 4 .

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

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

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

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