本研究は、関数プログラミングの方法論を支援する並列実行システムの構築に関して基礎的な問題の解決法を追究したものである。関数プログラムの実行システムの実現については最近のハ-ドウェア技術の進歩による部分も大きいが、一般の計算機上で実現した関数プログラムの実行系は手続き型のものに比べて効率が悪いことは事実である。また、逐次計算機で関数プログラムを実行する際には本質的な問題があることも知られている。本研究では関数プログラムの並列実行を対象としてこの問題の解決法を探究した。関数プログラミングの方法論を実践する上では(複数個の処理装置による)並列実行システムが重要な役割を果たすものと考えられるからである。研究を進めるにあたっては、関数プログラミングの方法論を確立するための基礎的な研究の過程として、一般的なハ-ドウェアを用いて実験的な処理系を実現し、成果をただちに方法論の研究に活用することを考慮した。 第1段階として、逐次実行における遅延評価の問題点を並列実行によって解決する方法を考察した。この研究成果は関数プログラムの並列実行に関して物理的なプロセッサの割当てやプロセッサの結合方式を抽象したものであるが、共有メモリ型マルチプロセッサシステムに直ちに移行することのできるものである。第2段階として、複数個のプロセッサからなるネットワ-ク分散型のマルチプロセッサによる関数プログラムの並列実行系を設計・作成した。ここでは、遅延評価に基づく関数プログラミングに特徴的なストリ-ムを用いるプロセスネットワ-クのモデルに着目して、これを分散並列実行系で実現する方式を考案し、複数個の処理装置が通信路で結合された粗結合マルチプロセッサシステム上に関数プログラムの分散並列実行システムを構築し、その有効性を確認した。
|