研究課題/領域番号 |
16K00174
|
研究機関 | 明治大学 |
研究代表者 |
吉田 明正 明治大学, 総合数理学部, 専任教授 (60277845)
|
研究期間 (年度) |
2016-04-01 – 2019-03-31
|
キーワード | 粗粒度タスク並列処理 / Fork/Join Framework / メニーコア / Android / Java / 並列化コンパイラ / コードコンパクション / ダイナミックスケジューリング |
研究実績の概要 |
本研究では,マルチコアおよびメニーコア上でのJavaプログラムの並列処理基盤として,階層統合型実行制御を用いた粗粒度タスク並列処理を採用し,Java Fork/Join Frameworkを導入したマルチプラットフォーム向け並列Javaコードを開発する。加えて,本研究ではその並列プログラムを自動生成する並列化コンパイラを開発し,x86系サーバ,ARM系Androidタブレット等,異なる命令セットとOSの並列プラットフォーム上においてマルチプラットフォーム向け並列Javaコードの実効性能を検証する。 平成29年度は,マルチプラットフォーム向け並列Javaコードの仕様を確定し,その並列化コンパイラ(プロトタイプ)を作成した。本並列Javaコードは,階層統合型実行制御を用いた粗粒度タスク並列処理を実現するものであり,階層的に定義されたマクロタスク(粗粒度タスク)の並列性が,実行可能条件として管理されている。Fork/Join FrameworkはJVM(Java Virtual Machine)環境あるいはAndroid環境で利用可能な並列処理フレームワークであり,粗粒度タスク並列処理におけるダイナミックスケジューラの役割を果たす。 さらに,平成29年度は,メニーコア上のための高並列プログラムの並列Javaコード長を短縮するコードコンパクション手法も新たに開発した。本手法により並列Javaコード長が大幅に短縮され,並列処理時間が短縮されることが確認されている。 以上のように,平成29年度には,マルチプラットフォーム向け並列Javaコードを自動生成するプロトタイプの並列化コンパイラを開発し,マルチコアおよびメニーコア上で性能評価を行い,マルチプラットフォーム向け並列Javaコードの有効性を確認した。
|
現在までの達成度 (区分) |
現在までの達成度 (区分)
2: おおむね順調に進展している
理由
平成29年度は,マルチプラットフォーム向け並列Javaコードを自動生成する並列化コンパイラの開発に着手した。本並列化コンパイラは,申請者らが開発した階層統合型実行制御を伴う粗粒度タスク並列処理のための並列化コンパイラをベースに,本研究の提案手法を実装した並列化コンパイラを開発している。並列処理の対象となる指示文付Javaプログラムを入力とし,並列化コンパイラは字句解析,構文解析,意味解析を行い,Fork/Join実装のスケジューラを含んだ並列Javaコード(マルチプラットフォーム向け)を自動生成する。 本並列化コンパイラ(プロトタイプ)により生成されたマルチプラットフォーム向け並列Javaコードは,階層統合型実行制御による粗粒度タスク並列処理を,さまざまな並列プラットフォーム上で実現することが可能であり,高い実効性能が期待される。本研究では,階層統合型実行制御のダイナミックスケジューリング処理コードを,Fork/Join Frameworkライブラリにより実現しており,コア数の多い並列プラットフォームにおいても,スケジューリングオーバヘッドを小さく抑えられる。 性能評価では,メニーコア(Intel Xeon Phi Knights Landing),マルチコア(Intel Xeon),ARMコア(Androidスマートフォン)において,提案手法の有効性を示している。さらに,平成29年度は並列Javaコードの性能向上を実現するために,新たなコードコンパクション手法を開発し,メニーコア(Intel Xeon Phi Knights Landing)上でその有効性を確認した。 研究成果の一部は,平成29年度に情報処理学会論文誌(Journal of Information Processing),情報処理学会システムアーキテクチャ研究会,情報科学フォーラムにて発表されている。
|
今後の研究の推進方策 |
平成30年度は,平成29年度に開発したプロトタイプの並列化コンパイラを拡張し,実用的なベンチマークプログラムに対して,マルチプラットフォーム向けの並列Javaコードを自動生成できるような並列化コンパイラを開発する予定である。この並列化コンパイラでは,マクロタスクを定義する指示文を加えたJavaプログラムに対して,Java Fork/Join Frameworkを利用するマルチプラットフォーム向け並列Javaコードを自動生成することが可能である。この並列化コンパイラにより生成された並列Javaコードは,複数階層にまたがった粗粒度タスクを実行開始条件により統一的に扱い,Fork/Join Frameworkのワークスティーリングにより,粗粒度タスクをコアに動的に割り当てる方式ことが可能である。 性能評価に用いるマルチコアプロセッサシステムとして,保有しているx86系サーバ,平成28年度に本予算で購入したPOWER8系サーバを用いて性能評価を行い,異なる命令セットアーキテクチャ上でマルチプラットフォーム向けの並列Javaコードの有効性を検証する予定である。性能評価プログラムとしては,Java Grande Forum Benchmarkに代表されるようなベンチマークを採用し,それらを並列化コンパイラの入力として,マルチプラットフォーム向け並列Javaコードを自動生成して,命令セットの異なる複数の並列プラットフォーム上で性能評価を行う。本研究による並列処理手法が異なる命令セットのマルチプラットフォーム環境下でも高い実効性能が達成できることを示し,その有効性を検証する予定である。 本研究の成果発表は,国内の研究会あるいは国際会議で行い,加えて,情報処理学会の論文誌に投稿を行う予定である。
|