研究課題
本年度は、研究計画に沿って、バイナリレベル複数スレッド化のためのバイナリコード解析技術の開発を進めた。バイナリ変換による複数スレッド化を行なう上ではスレッド間でのデータ依存の把握が必要となるが、本研究ではその中でも解析が難しいメモリアクセスに伴うデータ依存を解析する「バイナリレベル変数解析手法」を開発している。本手法はメモリ上に配置された変数のアドレス値を計算木により表現し、その正規形同士の同形判定により同一アドレスへのアクセスであるかどうかを判定することを基本とする手法であり、これによりスレッド間依存変数であるかどうかを判定するものである。しかし、本手法により静的に解析できないメモリアクセスが存在することが明らかとなっており、実行時のチェックにより依存の判定を確実に行なう手法が必要であった。本研究では、複数スレッド化の対象であるプログラム中のループにおいて変数の値の変化に着目し、スレッド間依存判定の対象である二変数間のそれぞれについて値が変化する場合と変化しない場合に分けて実行時チェックの処理方法を定義した。これにより、ループ実行前に依存の有無の判定が可能な場合が明らかとなり、高コストである依存判定処理をループ実行前の一度だけ行なうことで、実行時オーバヘッドが格段に削減できるようになる。実際のコードを用いての評価を行なった結果、全ての判定をメモリアクセス毎に行なう従来の方法に比べて、本判定法によりオーバヘッドが大きく削減されたことを示した。なお、この成果は現在論文として投稿中である。また、バイナリレベル複数スレッド化を実行時に支援するシステムの全体設計を行ない成果として公表した。これはバイナリコードの静的変換が困難なレジスタ間接ジャンプ命令への対応や実行時処理を行なう以外に対処できない自己書き換えコードへの対応を実行時に行なうことを基本機能としており、さらに効率的な複数スレッド実行を支援するためのホットループ検出機能と投機的複数スレッド実行を支援するためのホットパス検出機能を備えるものである。本研究で開発している依存変数の実行時チェックについてもこの実行時支援システム上で実装される予定である。
すべて 2006 2005
すべて 雑誌論文 (23件)
情報処理学会論文誌コンピューティングシステム (印刷中)
情報処理学会研究報告(情報処理学会 第159回計算機アーキテクチャ研究会/第105回ハイパフォーマンスコンピューティング研究会合同研究会) Vol.2006, No.20
ページ: 205-210
情報処理学会 第68回全国大会
ページ: 3-451-3-452
ページ: 1-125-1-126
ページ: 1-119-1-120
ページ: 1-105-1-106
ページ: 1-117-1-118
ページ: 1-115-1-116
ページ: 1-103-1-104
情報処理学会論文誌コンピューティングシステム Vol.46, No.SIG16
ページ: 1-13
ページ: 28-42
電子情報通信学会論文誌(D-I) Vol.J88-D-I, No.5
ページ: 985-990
情報処理 Vol.46, No.11
ページ: 1224-1229
Proc.6th International Conference on Parallel and Distributed Computing, Applications and Technologies (PDCAT)
ページ: 46-50
Proc.17th IASTED International Conference on Parallel and Distributed Computing and Systems(PDCS 2005)
ページ: 536-541
Proc.6th International Symposium on High Performance Computing(ISHPC-VI)
電子情報通信学会コンピュータシステム研究会(CPSY),信学技報 Vol.105, No.487
ページ: 13-18
ページ: 25-30
ページ: 31-36
電子情報通信学会コンピュータシステム研究会(CPSY), 信学技報 Vol.107, No.487
ページ: 37-42
電子情報通信学会コンピュータシステム研究会(CPSY), 信学技報 Vol.105, No.453
ページ: 1-6
情報処理学会 研究報告, 計算機アーキテクチャ研究会 Vol.2005, No.120
ページ: 81-86