研究課題/領域番号 |
24500054
|
研究種目 |
基盤研究(C)
|
研究機関 | 宇都宮大学 |
研究代表者 |
大津 金光 宇都宮大学, 工学(系)研究科(研究院), 准教授 (00292574)
|
研究期間 (年度) |
2012-04-01 – 2015-03-31
|
キーワード | 計算機システム / 並列処理 / 投機的処理 / マルチコアプロセッサ / プログラム解析 |
研究概要 |
本年度は研究計画に従い,以下の3課題の解決を図りながら,汎用マルチコアプロセッサ向けのバイナリレベル投機的複数スレッド化手法の研究開発を行った. 課題1:プログラムの論理構造境界を越える大域的パスベーススレッド分割処理方式について,理論的に達成可能な性能を見積るための評価用ソフトウェア環境の開発を行った.本ソフトウェア環境は実際のプログラムの実行トレースを入力とし,高頻度パスに沿ってプログラムの機械命令列をトレースしながら,ループおよびサブルーチン境界で実行パスを区切ることなく,コードサイズを拡大した場合にどの程度まで拡大することで最適なスレッド実行ができるか見積るためのものであり,最適なスレッドコードサイズの決定に使用できる. 課題2:プログラムの大域的実行情報を取得可能なプログラムプロファイラの開発を行った.パスベーススレッド分割手法における高頻度パスの選定を行うためにプログラム実行時のパスに関する情報の収集が必要不可欠である.本年度は動的バイナリ変換フレームワークであるValgrindをベースとしてパスプロファイラを実現し,動作検証を行った.本パスプロファイラはプログラムのサブルーチンを単位としてパス情報を管理するため,サブルーチン間の呼び出し関係を組み合わせることで大域的なパス情報を得ることができる. 課題3:大域的パスベース複数スレッド実行を支援する実行環境の開発を行った.アーキテクチャレベルでは投機的複数スレッド処理に対応していない現在の汎用マルチコアプロセッサ上で投機的複数スレッド処理を実現するために必要となる投機的メモリアクセスをハードウェア支援なしのソフトウェアコードのみで実現するため,ソフトウェアトランザクショナルメモリをベースとして実装を行った.
|
現在までの達成度 (区分) |
現在までの達成度 (区分)
2: おおむね順調に進展している
理由
本年度の当初計画と研究実績とを,3課題についてそれぞれ比較する。 課題1については,当初計画ではプログラムの論理構造境界を越える大域的パスベーススレッド分割処理方式を開発することを予定していた.これに対して,本年度はループおよびサブルーチン境界で実行パスを区切ることなくコードサイズを拡大した場合にどの程度まで拡大することで最適なスレッド実行ができるか見積るための評価用ソフトウェア環境の開発を行った.これを使用することで,大域的なパスベーススレッド分割方式の実現に必要な最適なスレッドコードサイズの決定が可能となる. 課題2については,当初計画ではプログラムの大域的実行情報を取得可能なプログラムプロファイラを開発することを予定していた.これに対して,本年度は動的バイナリ変換フレームワークであるValgrindをベースとしてパスプロファイラを実現し,動作検証を行った.これをサブルーチン間の呼び出し関係を示すコールグラフ情報と組み合わせることで,大域的なパス情報を得ることができる. 課題3については,当初計画では大域的パスベース複数スレッド実行を支援する実行環境を開発することを予定していた.これに対して,本年度は,実行環境の一部である投機的メモリアクセス機構をソフトウェアトランザクショナルメモリをベースとして,ハードウェア支援なしのソフトウェアコードのみで実現するソフトウェアモジュールを開発した. 以上述べた通り,ほぼ当初計画相当の成果を挙げることができたと考える.
|
今後の研究の推進方策 |
本年度(平成24年度)に得られた成果を基にして,引き続き以下の3課題解決のための研究を行なうとともに,それらを統合して汎用マルチコアプロセッサ上で大域的なパスベーススレッドの投機実行を実現するためのソフトウェアシステムの開発を行う. 課題1:本年度開発した評価用ソフトウェア環境を用いて,大域的にスレッド分割を行った場合の性能見積もりにより最適なスレッド分割パターンを検討する.さらに,その結果に基づいて大域的パスベーススレッド分割処理アルゴリズムを確立し,ソフトウェアとして実現する.また,実用プログラムによるベンチマークであるSPEC CPU2006を使用し,各プログラムに対して開発したスレッド分割処理ソフトウェアを適用することで動作検証を行なう.また,スレッド分割後の機械命令列について命令スケジューリング等の最適化 方法について検討を行う. 課題2:本年度開発したパスプロファイラの動作検証を行なうと同時に,高頻度パスに沿ってスレッド分割を行った場合の動的な依存関係を解析するための依存プロファイラおよび値プロファイラを開発する.これはスレッド間での(主にポインタアクセスの類により生じる)曖昧なデータ依存関係によりスレッド分割が阻害される場合に対処するためのもので,データ依存の可能性はあるが,実際は依存が起こらないコード区間でもスレッド分割を実現し,並列実行を行えるようにするために使用する. 課題3:本年度において開発した,ソフトウェアトランザクショナルメモリをベースとして投機的メモリアクセスを実現するソフトウェアモジュールの初期評価を行い,性能上のボトルネックを把握してオーバーヘッドの改善を図る.次年度(平成25年度)前半に入手可能となる新型の汎用マルチコアプロセッサに搭載されるハードウェアトランザクショナルメモリを活用して実行時オーバーヘッドを削減する方式を検討し,実装する.
|
次年度の研究費の使用計画 |
本年度(平成24年度)の成果として挙げた大域的パスベース複数スレッド実行を支援するための機能の一部である投機的メモリアクセスを実現するために,ソフトウェアトランザクショナルメモリをベースとして,パスベースの投機的複数スレッド実行におけるスレッド間での親子関係を考慮して投機実行結果の破棄と実行のやり直し処理を適切に行うソフトウェアモジュールの開発を行ったが,大域的パスベース複数スレッド実行で生じると予想される大量の投機的メモリアクセスを処理する上で実行時オーバーヘッドが性能低下の要因として無視できない大きさであることが明らかとなってきている.そこでハードウェア機能支援の導入を検討し,次年度(平成25年度)の第2四半期に発売が予定されている商用プロセッサに搭載されているハードウェアトランザクショナルメモリ機能の活用により実行時オーバーヘッドの削減を図ることを考え,開発用機材としてマルチコアプロセッサ搭載コンピュータの購入に使用する予定であった本年度予算の一部を上記の新型マルチコアプロセッサ搭載コンピュータの購入に充てることとした. 以上の予算使用計画の変更を反映し,次年度の研究費では,最新のマルチコアプロセッサ搭載コンピュータを当初の予定より1台増やして3台を設備備品として購入する.それ以外の消耗品,旅費等については当初の予定通りに使用する.
|