配分額 *注記 |
12,300千円 (直接経費: 12,300千円)
2003年度: 4,000千円 (直接経費: 4,000千円)
2002年度: 3,900千円 (直接経費: 3,900千円)
2001年度: 4,400千円 (直接経費: 4,400千円)
|
研究概要 |
本プロジェクトでは、主に自動並列化コンパイラ(以下、コンパイラ)の開発とその実行時環境であるソフトウェア分散共有メモリシステム(以下実行時環境)の開発を行った.本コンパイラはFortran77で書かれたプログラムを入力とし,実行時環境を制御するコードを含んだ並列化されたC言語のプログラムを出力する.本コンパイラを一から開発するために,まず統一的中間表現である階層タスクグラフを設計し,C++言語のクラスとして実装した.C++言語を用いることにより,データとその操作手続きをまとめてクラスとして定義し,データの隠蔽を図るとともに,堅牢性が増す. 依存解析部では,既存の依存解析手法である分離テスト,GCDテスト,Banerjeeテストと新規独自手法であるシンプレックス法と全探索によるテストとを組み合わせた新手法の提案ならびに実装を行った.さらに,同手法と厳密な解析手法の代表であるOmegaテストとの比較を行った.評価結果として,同手法は,Omegaテストと同等の解析精度を持ちつつ,より高速に解析を行うことが可能であることが確認された.最適化部では,一般的に用いられる既存の各種最適化手法の中から,分散メモリ型並列アーキテクチャを対象とする並列化に効果のある手法を選び実装した.これにより,これまで並列化できなかったループが新たに並列化可能となるほか,並列処理速度が向上,副次的効果として各種解析の精度向上が見られた.コード生成部では同時に開発した独自の実行時環境用の制御コードを含む並列化されたC言語のコードの生成に加え,メッセージパッシングインタフェースMPIコードにより並列処理されるC言語のコードの出力をも可能とする試作判も開発した. 上述の各方式,手法はすべて他のコンパイラにも応用可能な汎用性の高いものである.
|