研究課題/領域番号 |
16K00174
|
研究機関 | 明治大学 |
研究代表者 |
吉田 明正 明治大学, 総合数理学部, 専任教授 (60277845)
|
研究期間 (年度) |
2016-04-01 – 2019-03-31
|
キーワード | 粗粒度タスク並列処理 / Fork/Join Framework / マルチコア / Android / Java / 並列化コンパイラ / コード生成 / ダイナミックスケジューリング |
研究実績の概要 |
本研究では,マルチコア上でのJavaプログラムの並列処理基盤として,階層統合型実行制御を用いた粗粒度タスク並列処理を採用し,新たにJava Fork/Join Frameworkを導入したマルチプラットフォーム向け並列Javaコードを開発する。加えて,本研究ではその並列プログラムを自動生成する並列化コンパイラを開発し,x86系サーバ,ARM系Androidタブレット等,異なる命令セットとOSの並列プラットフォーム上においてマルチプラットフォーム向け並列Javaコードの実効性能を検証する。 初年度にあたる平成28年度は,マルチプラットフォーム向け並列Javaコードの仕様を作成した。本並列Javaコードは,階層統合型実行制御を用いた粗粒度タスク並列処理を実現するものであり,階層的に定義されたマクロタスク(粗粒度タスク)の並列性が,実行可能条件として表現している。また,本並列Javaコードには,Fork/Join Frameworkを伴うダイナミックスケジューリングのためのマクロタスク実行管理コードも含まれている。 Fork/Join Frameworkは,Java SE 7や Android API Level 21で導入された並列処理フレームワークであり,粗粒度タスク並列処理におけるダイナミックスケジューラの役割を果たす。Fork/Join Frameworkによる並列プログラムでは,各ワーカースレッドが独自のワーカーキューを持ち,Forkされたタスクを実行することにより並列処理が行われる。 以上のように,平成28年度には,マルチプラットフォーム向け並列Javaコードの仕様を確定し,マルチコアプロセッサシステム上で予備評価を行い,マルチプラットフォーム向け並列Javaコードの有効性を確認した。
|
現在までの達成度 (区分) |
現在までの達成度 (区分)
2: おおむね順調に進展している
理由
平成28年度は,マルチプラットフォーム向け並列Javaコードの仕様を作成する計画であり,おおむね計画通りに並列Javaコードの仕様を決定した。本仕様に基づく並列Javaコードでは,階層統合型実行制御を用いた粗粒度タスク並列処理が実現されており,マクロタスク(粗粒度タスク)は階層的に定義される。その後,ダイナミックスケジューラが実行可能条件を満たしたすべての階層のマクロタスクを統一的にコアに割り当てて実行する。 平成28年度の予備評価では,マルチプラットフォーム環境として,Androidプラットフォーム(ARM系プロセッサを搭載したNVIDIA Shield Tablet,Samsung Galaxy S6を使用),Linuxプラットフォーム(x86系プロセッサを搭載したDell PowerEdge R730)を採用し,性能評価を行った。平成29年度以降には,LinuxプラットフォームにおいてPOWER8を搭載したIBM S812L)を加えて性能評価を行う予定である。 本予備評価では,平成28年度に作成した並列Javaコードの仕様に基づいて,Java Grande Forum Benchmarkの複数プログラムに対して,並列Javaコードを生成した。生成された並列Javaコードでは,実行可能条件を用いて粗粒度タスクの実行管理とエンキューが行われており,粗粒度タスクのデキューはFork/Join Frameworkのスケジューラが行う。AndroidプラットフォームとLinuxプラットフォーム上で予備評価を行ったところ,提案手法の有効性が確認された。 研究成果の一部は,平成28年度に情報処理学会論文誌に1件採録決定(2017年5月掲載),情報処理学会情報科学フォーラムにて2件発表を行った。
|
今後の研究の推進方策 |
平成29年度は,平成28年度に仕様を決定したマルチプラットフォーム向け並列Javaコードを自動生成する並列化コンパイラの開発に着手する。応募者は現在までに,階層統合型実行制御を伴う粗粒度タスク並列処理の並列化コンパイラを開発しており,その並列化コンパイラをベースに本研究の並列化コンパイラを開発する予定である。平成29年度に開発する並列化コンパイラは,制約を伴う入力プログラムに対応したプロトタイプの並列化コンパイラとして開発する。このプロタイプの並列化コンパイラにより生成されたマルチプラットフォーム向け並列Javaコードは,階層統合型実行制御による粗粒度タスク並列処理を,さまざまな並列プラットフォーム上で実現することが可能であり,高い実効性能が期待される。 平成30年度は,平成29年度に仕様を改善した並列Javaコードを自動的に生成する並列化コンパイラの開発を行う。具体的には,平成29年度に開発したプロトタイプの並列化コンパイラを拡張し,実用的なベンチマークプログラムに対して,マルチプラットフォーム向けの並列Javaコードを自動生成できるような並列化コンパイラを開発する予定である。この並列化コンパイラにより生成された並列Javaコードは,各階層の粗粒度タスクを実行可能条件の形で統一的に管理し,Fork/Join Frameworkのスケジューラを用いて,粗粒度タスクをコアに動的に割り当てる方式である。 性能評価のマルチコアシステムとしては,保有しているx86系サーバ,本研究予算で購入したPOWER8系サーバを用いて性能評価を行い,異なる命令セットアーキテクチャ上でマルチプラットフォーム向けの並列Javaコードの有効性を検証する予定である。 本研究の成果発表は,国内の研究会および国際会議で行い,加えて,情報処理学会の論文誌に投稿を行う予定である。
|
次年度使用額が生じた理由 |
平成28年度に購入したPOWER8並列サーバの価格が,当初の見積りより安くなったため,224円の残額が生じた。
|
次年度使用額の使用計画 |
平成28年度の残額224円は,平成29年度予算のその他の品目に合算して使用する。
|