本論文は、「An Efficient Cooperative Framework for Concurrent Objects on Multicomputers(並列計算機における並列オブジェクトの効率的な協調の枠組)」と題し、英語で書かれ8章と付録からなる。並列処理は、重要な課題であるが、従来、プログラミングの難しさと処理系の非効率性のため、十分広く使われる所となっていない。本論文は、そのような問題点を解決するための基本的な枠組について論じたものである。 「1 Introduction」は、本研究の目的について述べるとともに、本論文の研究の特徴をまとめたものである。 「2 Background」は、この研究において用いる並列計算機を分類して述べるとともに、並列プログラミングの問題について議論し、世の中には規則的なデータ並列計算と、不規則的な離散的最適化問題やイベントシミュレーション等のような並列処理応用とがあるが、これらをまとめて記述し処理出来る言語や処理系が無く、また並列計算機も様々で、それらすべてに最適化された処理を実現することが困難であることを述べている。 「3 Community」は、上記問題を解決するために導入したcommunityと呼ぶ枠組について述べたもので、まず、並列プログラミングの基本には、局所性の良さ、メッセージパッシングの並列計算機への適応性の良さ、モジュライティの良さ等から、逐次オブジェクトのコンカレント・オブジェクト指向プログラミングを用いることとし、その上にcommunityと呼ぶソフトウエアの機構を設けることを提案している。コンカレント・オブジェクト指向プログラミングは、並列プログラミングの基本概念としては優れているものの、それをそのまま並列処理の記述に用いると、プロセッサ間通信の量が増え実行効率が上がらない。また、並列性の増加にともなう複雑性を隠蔽することが難しい等の問題点がある。これらに対し、複数オブジェクトの集合を表すcommunityは、複数次元の論理空間の上でオブジェクトを構造化し、community操作を用いてメンバ間で効率的に協調処理させる機能を持ち、異種オブジェクトの動的な追加・削除も可能である等の特徴を持っている。communityにデータを送り付けると、それは全メンバに放送され、それによってデータ並列の実行が開始される。また、communityのメンバにデータを蓄えるさせることによりcommunityを通信媒体として利用することができ、更に、それとメンバそれぞれの状熊とを組み合わせることによって、様々な形態のグローバル通信を実現することができる。 「4 Parallel Object-Oriented Language OCore」は、communityの概念の有効性を実証するために設計・実装した並列オブジェクト指向言語OCoreについて述べたものである。OCoreは、静的タイプ付け、単一継承、プロセスの場所に依存したプログラミングが可能な言語で、community templateとmapperと呼ぶプログラムモジュールを導入することによって、各メンバオブジェクトにおけるメッセージ操作の記述からcommunityの論理空間の記述を独立させ、記述の再利用性を高めている。この章では、communityに対する操作、メンバオブジェクト内の操作、等を詳説している。 「5 Implementation of OCore」は、言語OCoreの実装について述べたものである。OCoreのソースは、C++で書かれたトランスレータによって中間言語であるC++に変換され、それをコンパイルすることによって実行コードが生成されるが、応用の分析によってcommunityを3種類に分類し、それぞれに最適な実装法を工夫することによって効率的な実装を実現している。また、communityの論理空間を分散的に管理することによって、その管理がボトルネックになることを防ぎ、システムのスケーラビリティを確保している。 「6 Evaluation」は、OCoreとして実装されたcommunityの評価をおこなったもので、まず、オブジェクト操作、communityの組織化、community操作等の基本操作にかかる時間を評価し、次に幾つかの具体的な応用を記述して、その処理時間が理想的な線形の並列利得に比べて遜色無いことを示すことによって、OCore言語の高い並列性記述能力を示している。 「7 Discussion」は、OCoreを他の同種の言語と比較しての議論を展開したもので、定性的には、OCoreは、1対多通信機能の抽象化が可能、異種のデータ並列計算が可能、またcommunityオブジェクトの再構成可能という他の言語には見られない特徴を有するとともに、定量的には実行効率が高く、他の代表的な言語Concurrent Aggregateを用いた場合と、並列マシンCM-5上に於ける通信処理時間を比較すると、ローカル通信では20倍程度、リモート通信でも1.5-2.0倍速いことを示している。 「8 Conclusion」は、結論である。 以上、これを要するに本論文は、並列計算機上で複数のオブジェクトを協調させて並列に効率良く動かすための枠組として、communityと呼ぶオブジェクトの集合を提案し、それを採り入れた処理系を実装し応用プログラムを通じて評価することによって、それが多くの応用において記述性と実行効率の上で大変優れた枠組であることを示したもので、情報工学上貢献する所少なくない。 よって、本論文は、博士(工学)の学位請求論文として合格と認められる。 |