@techreport{oai:ipsj.ixsq.nii.ac.jp:00203307, author = {川角, 冬馬 and Tilman, Priesner and 野口, 真聖 and 韓, 吉新 and 見神, 広紀 and 川島, 慧大 and 田中, 啓士郎 and 木村, 啓二 and 笠原, 博徳}, issue = {24}, month = {Feb}, note = {オブジェクト指向の機能や各種データ構造を提供するクラスライブラリを標準でサポートするコンパイラ言語として C++ が広く用いられており,これまで C により多くのプログラムが記述されてきた分野でも C++ による開発が進められるようになってきている.これら C++ で記述されたプログラムの高速化の手段として,プログラムの並列化は依然として有効である.その一方で,実装の詳細が隠蔽されがちな C++ プログラムでプログラム全域に渡る手動並列化は困難であり,自動並列化に対する期待が高い.しかしながら,仮想関数呼び出しやポインタ変数の過度の使用が C++ プログラム自動並列化に必要なプログラム解析の阻害要因となる.本稿では,OSCAR 自動並列化コンパイラの C++ 対応のための拡張について述べる.C++ 対応の最初のステップとして,C++ フロントエンドの開発及び OSCAR コンパイラの中間表現拡張を行った.さらに,コンパイラの解析器に対して仮想関数呼び出しの解析機能の追加を行った.上記拡張を行った OSCAR コンパイラを,SPECCPU 2006 に含まれる 447.dealII の CG ソルバを基にしたテストプログラムで評価を行ったところ,g++ を用いた逐次実行と比較して 6 コア並列実行で 3.27 倍の速度向上が得られた.}, title = {OSCARコンパイラのC++プログラム対応の検討}, year = {2020} }