研究概要 |
超並列計算機のためのプログラムを従来の言語で書く場合,単にプログラミングが困難であるだけでなく,特定のアーキテクチャに合わせて書かれたプログラムの移植性の問題がある.本研究では,ファイルアクセス手続きを隠蔽し,主記憶中のオブジェクトも二次記憶中のオブジェクトも同様に操作できる永続プログラミング言語と超並列プログラミング言語を統合する,超並列永続プログラミング言語の研究を行った。プログラムの目からはディスクが物理的に分散していることが隠蔽され,それらのから検索された多数の永続オブジェクトを多数のCPUで並列に処理する部分に専念することができる. しかし,分散メモリ型並列計算機を活用するためには,並列度の向上のためのCPU負荷の均一化や,通信の軽減が必要である.ディスク上にあるデータを処理の対象とする場合,処理対象の数やトポロジが実行時まで不定あり,さらに、ファイルに対するオブジェクトの挿入,削除,更新などの操作は,負荷の不均一性をさらに増す原因となる.そこで,本研究ではこれらの予測不可能な状況に対する動的負荷分散の方法として,オブジェクトの動的再配置による負荷分散を検討した.その結果,負荷の情報をなるべく小さくコストで実行時に採取しておき,それを用いてオブジェクトの再配置を行う方式として,オブジェクト数による再配置,外部参照頻度による再配置,特殊な参照関係を局所化する再配置,の3つを提案することができた.また,実験によりそれぞれの方式がうまく働くための条件を得ることができた.
|