Next: Up: Previous:

概要

応用実証プログラムの研究開発は本プロジェクトの2本目の柱である. 言語設計・処理システムの開発に加えて, 実際の応用実証プログラムの研究開 発を行なった目的は次の通りである.
  1. 並列処理研究

    取り上げた各応用分野の具体的な問題の並列解法ないし 並列オブジェクト指向パラダイムでの解法を探求する.

  2. ABCL/f の評価

    ABCL/f 言語の記述性および処理系の性能を評価・実証する.

  3. 例題プログラムの提供

    ABCL/f 言語の利用者(公開ソフトの利用者)に例題解法/プログラムを提供する.

具体的な応用問題として,

を取り上げた. これらを選んだ最大の理由は 本プロジェクトの参加者の得意とする分野ということだが, それぞれ違った特徴を持っており, 多角的な実験評価ができると考えたためでもある. 例えば, 科学技術計算は高性能計算の伝統的な分野, 遺伝的アルゴリズムは同時多点探索手法, マルチエージェントシステムは 問題の自然な記述(自律オブジェクト/エージェント)が 並列オブジェクト指向にマッチしている分野である.

流体シミュレーション

科学技術分野の連続系の問題として 流体シミュレーション(1次元の圧縮性流れの差分法計算) を取り上げた. 並列度を上げるために各セルをオブジェクトとする方式では 通信コストが性能ボトルネックとなったため, 複数個のセルをまとめて一つのオブジェクトとすることで 計算量当たりの通信コストを下げ, 高い並列速度向上を得た.

マルチエージェントシステム

マルチエージェントシステムとは, 多数存在する仮想的な問題解決装置が協調あるいは競 合し, 特定の一つの問題の解決にあたるか, もしくは何かバランス状態 (ある いは組織化された状態) を構成するシステムである. この分野の研究課題として, エージェントの知的レベルの問題, 交換するメッセージプロトコルの構造, 並列処理の可能性などを検討し, 具体的問題として共通言語の獲得問題と分散診断問題を取り上げた.

共通言語の獲得問題では, 自然言語を話す自律エージェントが自分の意思を相手に伝達 すべく学習をし,結果として双方がそれまでに話していた言語の特徴を合わせ 持った混合言語が発生するようなモデルを提案した.

分散診断問題では, エージェント同士が互いに互いを診断する相互認識ネットワーク, 診断結果を推論に反映させるための非単調推論等を導入し, それらの効果を確認した.

遺伝的アルゴリズム

多目的最適化問題の遺伝的アルゴリズム (GA) による解法の並列化に取り組んだ. 多目的最適化問題には評価関数(適応度)が複数存在し, 単一の最適解でなくパレート解と呼ばれる最適解集合を求めることが目標となる. 遺伝的アルゴリズムは同時多点探索を行なうという点で, 多目的最適化問題の目的に合っている. 個体間の競合を局所的に限定することによって, 並列度を向上させると同時に, 集団の多様性を永続的に維持できる長所を持つ 並列遺伝的アルゴリズムを開発し, 例題を用いて複数の戦略の有効性を比較した. それによると, パレート最適個体保存選択で移住を行なう方法が最も優れており, 並列性能面でも64プロセッサまでほぼ線形の速度向上が得られた.

RNA 2次構造予測

RNA 配列は部分配列同士が引き合うことによって折れ畳まり(2次構造), 全体のエネルギーが低い安定した立体構造に納まろうとする傾向がある. この際, 最安定な2次構造だけでなく, 最安定に近い安定度を持つ幾つかの2次構造を予測することが 必要になることがしばしばある. RNA 2次構造の予測では, 最適な解に近いエネルギーを持つ解を全て求める探索アルゴリズムを作成し, 高い台数効果を実現した.

CKY構文解析

文脈自由文法のCKY構文解析アルゴリズムの ABCL/f による並列化を行なった. 制御/データの依存関係を考察し, 高い並列度を抽出できたため, 従来の類似の試みと比較してかなり良い結果を得ることができた.

応用プログラムは単一プロセッサ上で動作検証を行ない, 複数プロセッサ移行に際して, future プリミティブ, on プリミティブによって並列化・負荷分散を行なった. この移行はスムーズであり, 柔軟な並列言語としての能力が確認された. また, 一旦, オブジェクトをプロセッサに配置した後は, プログラマがオブジェクトの位置や排他制御といった, 並列処理に伴う低レベルの注意を払わずに済み, プログラマの負担が軽減されることも実証された. 一方, 差分法の記述で明らかになったように細粒度並列処理にはやはり 厳然としてオーバヘッドがあり, 高い並列性能の実現のためには, オブジェクト間通信や並列プリミティブの処理コスト. プログラマは常に注意する必要のあることも明らかになった. ただし, これは言語設計上の問題ではなく, むしろこのような問題が未解決であるからこそ, オブジェクト間通信や並列プリミティブの処理コスト. 積極的に意識し, 必要な疎粒度化等をプログラマが行なえる, というのが ABCL/f 言語の設計思想であったといえる.

なお, 予め期待していたことだが, 試作処理システム作成に引き続いて応用プログラムを開発したことにより, 初期ユーザによるバグ出しができ, またユーザ側からの言語機能への要望をフィードバックすることもできた. 幾つもの応用実証プログラムの開発を行なったことにより, 言語・処理システムが研究目的に留まらず, 実際に「使える」システムに近付いたと信じ. (その判断は実際のユーザに委ねる).



Mitsubishi Research Institute,Inc.
Mon Feb 24 16:27:39 JST 1997