研究概要 |
本研究では,データ並列プログラムにおいて制御の並列性をユーザが明示的に記述することが可能な並列プログラミング言語を設計し,その言語処理系の実装を行なった.また,並列実行環境としてPCクラスタシステムを構築し,構築したPCクラスタ上で設計した言語および言語処理系の性能評価実験を行なった.本年度は,マルチスレッド拡張したデータ並列言語(昨年度設計)の処理系とその性能評価実験を主に行なった. 実験用の言語処理系は,変換系(コンパイラ)と実行系(仮想マシン)で構成される.コンパイラ,実行系とも効率的な実装を行なうためにJava言語での実装を行ない,既存のコンパイラ作成支援ツールを利用した.仮想マシンの実装は,Java言語のマルチスレッド機能を利用した.さらに,PCクラスタでマルチプロセス実行を行なうために,Java言語で利用可能なメッセージ通信を行なうためのクラスライブラリの設計と実装も行なった. 処理系を用いた評価実験は,4台のマルチプロセッサPCを100Mbpsおよび1Gbpsのネットワークスイッチで結合したPCクラスタシステム上で行なった.スレッド間でのデータ依存度が低い場合には,マルチスレッド化による効果が大きいことが分かった.効率が悪いケースについても,処理系におけるコード最適化により解決できるものもあることが分かった. 本研究により,データ並列プログラムにおいて制御の並列性をユーザが明示的に記述する言語とその言語処理系の実装を行ない,データ並列言語をマルチスレッド拡張することの有効性を確認した.また,高効率実行のためにコード最適化手法に関する検討を行なった.
|