Next: おわりに
Up: 議論
Previous: 情報の共有手法
動的にデータフローを形成して並列実行を行なう分散処理系の
例として、Mentat[4]がある。
MentatではMPLなるC++の拡張言語を用いる。
この言語では特定のクラスのメソッドが自動的に
分散処理の対象になるので、ユーザはこれを用いて分散処理部分を
指定する。
この手法に比較して、現在のNinf の分散実行方式は以下の特徴を持つ。
- 言語を新たに設定せずに、C言語の範囲内でほぼ当価な
計算構造を提供している。ユーザにとっては、言語を新たに
習得する必要がなく連続性がよい。
- C言語の範疇で行なっているため、以下のような問題がある。
- トランザクション内での、ninf call は実際にはその場で実行されない。
したがってトランザクション内で先行するninf call の結果を参照しようとしても
当然ながら、おかしな値しか得られない。
これは、ninf call 以外の通常の計算に関する依存関係を検出する方法が
ないためである。
- 構造データの共有をポインタの一致で検出する。
ほとんどのケースでこれで十分であると思われるが、これでは不十分
な場合も存在する。
これらの問題点を解決するためには、コンパイラ自身に手を入れる必要が
あるが、実行すれば移植性の低下は避けられないと思われる。
Hidemoto Nakada
Tue Feb 20 18:17:47 JST 1996