2005 Fiscal Year Annual Research Report
構成的手法による構造化並列プログラミングとその支援環境
Project/Area Number |
17300005
|
Research Institution | The University of Tokyo |
Principal Investigator |
胡 振江 東京大学, 大学院・情報理工学系研究科, 助教授 (50292769)
|
Co-Investigator(Kenkyū-buntansha) |
武市 正人 東京大学, 大学院・情報理工学系研究科, 教授 (10011165)
筧 一彦 東京大学, 大学院情報理工学系研究科, 特任講師 (90345116)
|
Keywords | 情報通信工学 / ソフトウェア学 / アルゴリズム / ソフトウェア開発効率化・安定化 / 超高速情報処理 |
Research Abstract |
近年、PCハードウェアの高性能化と低価格化が進み、PCクラスタによる並列計算機が身近なものとなった。並列計算機に対する知識をあまり持たない者でさえも、様々な並列計算機を利用して並列計算を行いたい人が増え続けている。本研究は、構成的アルゴリズム論に基づいて、スケルトン並列プログラミング手法をより一般的に定式化するとともに、並列計算におけるデータの分散・プロセッサ間通信・同期制御等を構造化させ、効率の良い並列プログラムを系統的に開発するための構造化並列プログラミング手法を提案する。 平成17年度はスケルトン並列プログラミングの問題点をまとめると同時に、構成的アルゴリズム論に基づく並列計算の構造化を中心に研究を行った。 まず、これまで、多くの研究者によってスケルトン並列プログラミングの理論に関する研究が行われており、このような成果を実用化する並列スケルトンライブラリの構築は重要である。我々は、構成的アルゴリズム論に基づく並列スケルトンライブラリ「助っ人」を提案し実現した。「助っ人」は標準のC++とMPIを用いて実装されており、複数のデータ構造の上での並列スケルトンを、構成的アルゴリズム論に基づく統一的な枠組みの上で提供する。また、これらの並列スケルトンを提供するだけでなく、MPIの記法を隠蔽することにより、並列プログラミングに不慣れな人でも逐次プログラムを作成するようにプログラミングできるようになっている。「助っ人 」では、提供する並列スケルトンに対して構成的アルゴリズム論に基づく融合変換を実装しており、これによってスケルトン並列プログラミングにおいて問題になりやすい効率の問題を改善することが可能となっている。「助っ人」の特長は、大きく次の二点である。(1)リスト(一次元配列)、二次元配列、および、木に対する並列スケルトンを統一的な枠組みの下で提供する。(2)構成的アルゴリズム論における融合変換による自動的な最適化機構を実現した。 そして、構造化並列プログラミング手法の応用例として、我々は、ロケーションパスや位置指定関数によって定義されたXPathクエリを木に対するスケルトンを用いて効率的に並列化する手法を提案した。我々の手法では、まず、効率的に並列に計算するためにXMLを二分木に変換する。変換された二分木において、あるノードの祖先に関する条件についてはdAccスケルトンを、また、子孫に関する条件についてはuAccスケルトンを用いて並列化を行った。並列スケルトンで使用する関数は、XPathを正規表現に変換して対応するオートマトンを作ることで、その状態遷移から求めることができる。並列スケルトンによって低レベルな実装が与えられるため、得られた並列プログラムは台数効果が期待できる。また、本手法によってXPathクエリから並列スケルトンプログラムを自動的に導出するシステムを実装し、その評価実験では導出した並列プログラムは良い台数効果を示した。
|