2011 Fiscal Year Annual Research Report
動的スカラ展開によるオンザフライ並列化に関する研究
Project/Area Number |
22500046
|
Research Institution | Kyoto Institute of Technology |
Principal Investigator |
柴山 潔 京都工芸繊維大学, 工芸科学研究科, 教授 (70127091)
|
Co-Investigator(Kenkyū-buntansha) |
平田 博章 京都工芸科学研究科, 工芸科学研究科, 准教授 (90273549)
布目 淳 京都工芸科学研究科, 工芸科学研究科, 教授 (60335320)
|
Keywords | 並列処理 / スカラ展開 / 並列化コンパイラ / プロセッサ |
Research Abstract |
近年、マルチコアプロセッサが商用のマイクロプロセッサとして市販され普及しており、複数のスレッドを並列に実行するスレッドレベル並列処理が注目されている。しかし、逐次実行を前提として記述されたプログラムから自動的にスレッドレベルの並列性を抽出することは困難な現状にある。スレッドレベルの並列性抽出を妨げる依存関係には、データ自体に関する依存関係であるフロー依存だけでなく、データの格納場所に関する依存関係である逆依存と出力依存がある。 本研究では、スレッド間の逆依存と出力依存の関係を除去する手法として、かつてベクトル化コンパイラで利用されたスカラ展開をスレッドレベル並列処理用に一般化することを試みた。その具体的な方式として提案したのがメモリリネーミングである。このメモリリネーミングでは、並列実行する各スレッドで共有する変数に対して、キャッシュを用いてスレッドごとに格納場所を用意する。これにより、スレッド間の逆依存と出力依存の関係を除去して、スレッドレベルの並列性抽出の可能性を向上させることができる。 今年度は、スレッド間の依存関係の検出機構、キャッシュ上での各変数のバージョン管理機構、キャッシュあふれ対策、などの具体的な実現方式を開発した。また、シミュレーションによる評価の結果、本研究のメモリリネーミングを実施することで、評価した大部分のプログラムにおいて、スレッド間の依存関係によるハザードの半分以上を除去できることを確認した。これはスレッドレベル並列性を抽出する可能性を拡大する点で非常に大きな前進である。
|
Current Status of Research Progress |
Current Status of Research Progress
2: Research has progressed on the whole more than it was originally planned.
Reason
本研究で目的とする動的スカラ展開によるオンザフライ並列化の具体的な方式として、メモリリネーミングを提案した。
|
Strategy for Future Research Activity |
当初の計画ではハードウェア機構とコンパイラでの実現を予定していたが、メモリリネーミング方式を提案するに至って、コンパイラ技術よりもむしろランタイムソフトウェアに比重を置いて検討を進める必要が生じてきた。そのため、計画段階で想定していた通り、コンパイラに関する設計工程をランタイムソフトウェアの設計工程に組み替えて、すでに研究をすすめている。 今後は、メモリリネーミング機構の詳細設計とその有効性の検証を行う。
|