@techreport{oai:ipsj.ixsq.nii.ac.jp:00220226,
 author = {津金, 佳祐 and 新井, 正樹 and 前田, 宗則 and 笠置, 明彦},
 issue = {4},
 month = {Sep},
 note = {近年の主流であるメニーコアプロセッサにおいて,多数のコアを効率よく利用するためにタスク並列プログラミングモデルが注目されている.タスクに対してデータ依存を記述することで,従来のスレッド間の全体同期からタスク単位の同期とし,同期オーバヘッドを減らすことでプログラムの高速化が期待される.しかし,タスクに対してデータ依存を全て記述することや適切なタスク粒度を設定することは困難であり,プログラム開発の生産性を低下させることから,我々はタスク並列プログラムへの自動変換に関する研究開発を行っている.HPC183 での報告では,タスク並列プログラミングモデルの OpenMPとOmpSs-2 を用いて既存のデータ並列ベンチマークをタスク並列実装し,A64FX と Xeon プロセッサ上で性能評価を行った.そこで本稿では,凸多面体モデルによるループ最適化を行うトランスパイラである Pluto を基に,逐次やMPI並列プログラムからOpenMPのタスク並列プログラムに自動変換する機能の実装とその性能を示す.実装では,Pluto のデータ依存解析の結果を用いたタスクへのデータ依存の追加,MPI や BLAS/LAPACK 関数の対応,OpenMP の iterator を用いて通信と演算のデータ依存範囲を合わせるなどを行い,自動タスク並列化機能を実現した.A64FX プロセッサ上の性能評価では,既存のデータ並列実装と比較して Laplace Solver で 13%,PolyBenchのfdtd-2d で 7%,ブロックコレスキー分解で 48% の性能向上を確認し,タスク並列プログラミングモデルによる実装の性能の高さを示した.また,タスク並列実装と自動変換されたタスク並列プログラムでほぼ同等の性能となり,提案機能で簡易にタスク並列化を実施できることを示した.},
 title = {自動タスク並列化トランスパイラの実装と評価},
 year = {2022}
}