研究概要 |
並列アルゴリズムの理論分野では,並列プログラムを高い抽象度でアーキテクチャ独立に記述することが重要である.さまざまな並列プログラムを高い抽象度で記述することを可能にし,さらにそのプログラムを効率よく実行することを目標として,本研究ではワーク・タイムモデルをサポートした拡張C言語であるデータ並列言語Work-Time Cとその処理系および開発環境を開発した.ワーク・タイムモデルでは,共有メモリパラダイムを用いて,理論的に行いたい命令集合の時系列を記述する.すなわち,通信・同期・使用するプロセッサ数に関する記述を行わず,どこに並列性があるかだけを記述する.さらに,Work-Time C言語は入れ子状データ並列をサポートしているので,並列に動作するサブルーチンを並列に呼び出すことができる.したがって,複雑な並列アルゴリズムを理論的に簡潔に記述可能である.この高水準なWork-Time Cプログラムおよびそれを実行する並列計算機の特性(プロセッサ数,演算速度,通信遅延など)に関する記述から,実行コードを得るためにWork-Time Cコンパイラを用いる.Work-Time Cコンパイラは,並列に実行可能な命令でも通信遅延を考慮して並列に実行しない,命令の実行プロセッサ決定方針を考慮して不必要な同期命令を削除するなど,実行効率のよい実行コードを生成する. 本研究の成果として,EWS用Work-Time Cコンパイラ,ソースレベルデバッガ,アルゴリズムアニメーションを用いた並列アルゴリズム学習支援環境,MPI用Work-Time Cコンパイラのプロトタイプが完成している.現在,MPI用Work-Time Cコンパイラの生成する実行プログラムの性能を上げるために,性能解析などのツールを作成中である.
|