研究概要 |
本研究は,効率的な並列プログラムを逐次的な感覚で作成することを支援する,実用的な「スケルトン並列ライブラリ」の開発を目指したものである.スケルトン並列プログラミングでは,典型的な並列処理パターン,たとえば,すべてのデータに同一の関数を適用するmap,データ間に二項演算子を挟んで計算するreduce, reduceの途中結果も残すscanのような「並列スケルトン」と呼ばれる基本関数を組み合わせてプログラムを作成する.各並列スケルトンは,目的とする並列構造を抽象化しているので,利用者はその内部の詳細を知る必要はない.その結果,並列スケルトンを用いれば,並列アルゴリズムや並列アーキテクチャの深い知識を必要とせず,逐次プログラムを書く感覚で並列プログラムを開発することができる. 本研究を遂行することにより,スケルトン並列ライブラリSkeTo(助っ人)を開発し,一般に公開する(URLはhttp://www.ipl.t.u-tokyo.ac.jp/sketo/)に至った.SkeToは,従来のスケルトンライブラリには見られない以下の特徴を持つ. ・リスト(一次元配列)のみならず,行列(二次元配列),二分木,Rose木(分岐数が一定でない木)といった,多様なデータ型をサポートしている. ・C++をベースとしているが,C++の構文に一切拡張を加えていないため,通常のC++プログラムを書くことができる利用者ならば,障壁なくプログラムを開発できるように設計されている. ・構成的アルゴリズム論という理論的基礎の上に立ち,並列スケルトンの連続した呼び出しをひとつにまとめるという最適化機構を備えている.
|