2013 Fiscal Year Research-status Report
大域的コード再構成に基づいた高性能パスベーススレッド分割手法の研究
Project/Area Number |
24500054
|
Research Institution | Utsunomiya University |
Principal Investigator |
大津 金光 宇都宮大学, 工学(系)研究科(研究院), 准教授 (00292574)
|
Keywords | 計算機システム / 並列処理 / 投機的処理 / マルチコアプロセッサ / プログラムプロファイラ / バイナリ変換 |
Research Abstract |
本年度は研究計画に従い,以下の3課題の解決を図りながら,汎用マルチコアプロセッサ向けのバイナリレベル投機的複数スレッド化手法の研究開発を行った. 課題1:プログラムの論理構造境界を越える大域的パスベーススレッド分割処理方式について,昨年度開発を行なった評価用ソフトウェア環境を用いて,本方式により理論的に達成可能な性能を見積りを行なった.その結果,プログラム実行パスのすべての組み合わせの可能性を考慮し,将来実行されるパスを完全に予測できたと仮定して投機的並列処理を行なった場合と比較し,最も頻度の高い1本のパスだけに投機実行の対象を絞り込んでも十分に高い性能が得られることを明らかにした.これによって本方式の有用性の一部を明らかにできた. 課題2:昨年度開発を行なったプログラムの大域的実行情報を取得可能なプログラムパスプロファイラに対して機能拡張を行ない,プログラムパス間でのデータ依存関係を解析するための情報を収集できるようにした.これによって,プログラム大域的にパス間での依存関係を正確に解析でき,大域的パスベーススレッド分割処理が行えるようになった. 課題3:昨年度に引き続き,大域的パスベース複数スレッド実行を支援する実行環境の開発を行った.昨年度の成果からソフトウェアトランザクショナルメモリをベースとした実装では性能上のボトルネックの解消が必要であることが明らかとなったことから,今年度は商用の最新マルチコアプロセッサにおいて塔載され始めたハードウェアトランザクショナルメモリを活用して投機的並列実行性能を評価を行ない,その性能を明らかとすることで,実行時オーバヘッドを削減する方式を検討する上で必要となる基礎データを得た.
|
Current Status of Research Progress |
Current Status of Research Progress
2: Research has progressed on the whole more than it was originally planned.
Reason
本年度の当初計画と研究実績とを,3課題についてそれぞれ比較する。 課題1については,当初計画では昨年度開発した評価用ソフトウェア環境を用いて,大域的にスレッド分割を行った場合の性能見積もりにより最適なスレッド分割パターンを検討し,さらに,その結果に基づいて大域的パスベーススレッド分割処理アルゴリズムを確立し,ソフトウェアとして実装することを予定していた.これに対して,本年度は昨年度開発した性能見積りのための評価用ソフトウェア環境を用いての評価作業を行なうことができ,ソフトウェアとしての実装に着手する段階まで到達することができた. 課題2については,当初計画では昨年度開発したパスプロファイラの動作検証を行なうと同時に,高頻度パスに沿ってスレッド分割を行った場合の動的な依存関係を解析するための依存プロファイラおよび値プロファイラを開発することを予定していた.これに対して,本年度はプログラムの実行パスに沿って動的な依存関係を解析するためのデータ依存プロファイル機能を追加し,動作検証まで完了した. 課題3については,当初計画では昨年度において開発した,ソフトウェアトランザクショナルメモリをベースとして投機的メモリアクセスを実現するソフトウェアモジュールの性能上のボトルネックを把握してオーバーヘッドの改善を図ることを予定していた.これに対して,本年度はハードウェアトランザクショナルメモリを用いて投機的並列実行の性能評価を行ない,詳細な解析データを得ることができた.これによって,実行時オーバヘッドを削減する改善法の検討を行なう土台ができた. 以上述べた通り,ほぼ当初計画相当の成果を挙げることができたと考える.
|
Strategy for Future Research Activity |
本年度(平成25年度)に得られた成果を基にして,引き続き以下の3課題解決のための研究を行なうとともに,それらを統合して汎用マルチコアプロセッサ上で大域的なパスベーススレッドの投機実行を実現するためのソフトウェアシステムの開発を行う. 課題1:本年度行なった性能見積り結果に基づいて大域的パスベーススレッド分割処理アルゴリズムを確立し,ソフトウェアとして実現する.また,実用プログラムによるベンチマークであるSPEC CPU2006を使用し,各プログラムに対して開発したスレッド分割処理ソフトウェアを適用することで動作検証を行なう.また,スレッド分割後の機械命令列について命令スケジューリング等の最適化方法について検討を行う. 課題2:本年度データ依存関係の情報取得機能を追加したパスプロファイラを用いて,SPEC CPU2006ベンチマークの各プログラムのプロファイル情報を取得する.取得した情報を,課題1により実装を行う大域的パスベーススレッド分割処理ソフトウェアへの入力データとして使用する.これにより,スレッド間での(主にポインタアクセスの類により生じる)曖昧なデータ依存関係によりスレッド分割が阻害される場合に対処し,データ依存の可能性はあるが,実際は依存が起こらないコード区間でもスレッド分割を実現し,並列実行を行えるようにする. 課題3:本年度行なった性能評価により得られた,ハードウェアトランザクショナルメモリの詳細な性能データを基に,投機的メモリアクセスを実現するソフトウェアモジュールの性能上のオーバーヘッドの改善を図る.また,課題1により実装した大域的パスベーススレッド分割処理により生成したスレッドコードを実行し,その性能評価を行う.
|
Research Products
(41 results)