2012年9月18日火曜日

ニュアンスで考えた分散型シミュレータ part1

ホントにニュアンスでシャワー中に考えた分散型のシミュレータのシステム。
CORBAやHADOOPの分散モデルに関してはレポートでまとめたけど、もううろ覚え。。

前提条件
・空気や水などのエレメント、建物や植物、生物などのオブジェクトの変化をシミュレーション
・複数の特定または複数のPCを用いて分散処理する
・シミュレーションは単位時間ごとに計算し毎回結果を出す。
・同じタイミングで実行された変化同士の競合解決方法は未定

1.要素分担型(不明)
すべての各要素(エレメントやオブジェクトの派生クラス)ごとに計算を行う方法。まだ正直実装可能レベルまでイメージできてない

2.エリア分散型
各エリアをPCに割り振り、エリアごとに計算を行う方法。シミュレーションでは隣り合う、もしくは近い要素にしか影響を及ぼさない可能性が高いため、効率が良い

3.エセMap&Reduce型
エリアの情報はすべてのPCが持ち、変化のリストによって状態を変化させる。変化のリストを適当にPCに割り振り、自身の持つエリア情報を基に状態を変化させる。その後すべてのPCから各々更新されたエリア情報を収集し、それらをマージする。この時に変化が競合していた部分は共通の解決策によって問題を修復する。
あれ?ソートとリデュースしてない?wあくまでもニュアンスです。。

Map&Reduceはいつも単語数検索やワード検索の例で勉強してきたから、応用例がわからない。
もっと使うメリットを考えながら勉強しないと。

というわけで3つ思いついたけど、もう一回分散について復習してから真剣に考え直してみる。
3つをうまく組み合わせればいい感じになるかもしれない。

0 件のコメント:

コメントを投稿