Next: Up: Previous:

並列オブジェクト指向言語としての記述性

まず, オブジェクト指向言語であることにより, 全体集団, サブ集団, 個体の3階層が 極めて自然な形で記述でき, データ+機能のモジュール化がしやすかった. このため, アルゴリズムの検討中に発生した数々のプログラム修正が容易であった.

最初に1プロセッサ版を開発し, 種々のアルゴリズムを実験した後に並列版へ移行したが, 並列 版への修正箇所はわずかに前述の3箇所だけである. Island-GA は元々並列化が容易なア ルゴリズムではあるが, ABCL/f 言語が並列アルゴリズムの記述に適していることを 示す特長を3つ挙げることができる.

次に並列GAのようなエージェント型の並列アルゴリズムを効率良く実装する上でのキー ポイントと, ABCL/f 言語仕様との関係について述べる. キーポイントとして挙げられ るのは, データの排他制御, スレッドの同期/非同期管理, 返り値待ち状態の回避,デッ ドロックの回避, プロセッサ間の負荷バランス制御などであろう. データの排他制御に 関しては並列オブジェクトに内在されており, プログラマが管理する必要はない. 排他 制御に関係するデッドロックの発生は, メソッドが mutable と immutable が明確に区 別されていることにより, プログラマが意識しやすくなっている. また, mutable 関数 のみが排他制御されるので, 返り値待ち状態は最小限に抑えられている. スレッドの同 期/非同期管理に関しては, touch の挿入場所によりプログラマが明確に意識し て指定することができる. 以上のように, 並列アルゴリズムの実装において, プログラ マが注意すべきポイントが自ずから意識され, また効率良い実装が行ないやすい言語仕 様であると言える.



Mitsubishi Research Institute,Inc.
Mon Feb 24 19:32:36 JST 1997