# HG changeset patch # User Shinji KONO # Date 1353906638 -32400 # Node ID 3f4b3f26419a1b8aad5cce15cce405423ed544c3 # Parent 61ac631440659e7770ef8ee3d481a7ce1de30c4b fix diff -r 61ac63144065 -r 3f4b3f26419a Paper/alice.ind --- a/Paper/alice.ind Mon Nov 26 13:01:22 2012 +0900 +++ b/Paper/alice.ind Mon Nov 26 14:10:38 2012 +0900 @@ -34,7 +34,7 @@ Alice は Code Segment と Data Segment を Java と Message Pack で実装したフレームワークである。トポロジーマネージャーを持ち、Bldae 上での 分散プログラムの実験を容易に行うことができる。また、SEDA Architecture \cite{} を採用しており、マルチコア上でのスループットの向上を期待している。 -本論文では、Code Segment と Data Segment の Alice のAPIと、その設計方針を示し、それによって実装された水槽プログラムを示す。また、これまでの Federated +本論文では、Code Segment と Data Segment の Alice のAPIと、その設計方針を示し、それによって実装された水族館プログラムを示す。また、これまでの Federated Linda との性能評価も行う。 % また、他のマシンとの接続トポロジーの構成の機能も有しているのでユーザーはトポロジー構成後の処理を記述するだけでよい。また、AliceはJavaで実装されている。 @@ -266,15 +266,13 @@ \end{figure} ----Topology Managerの使用方法 - -Topology Nodeを起動する際にコマンドライン引数としてTopology ManagerのIPアドレスとポート番号を指定をする。 +Alice の Nodeを起動する際にコマンドライン引数としてTopology ManagerのIPアドレスとポート番号を指定をする。 そしてmain関数内でTopologyNodeをnewを行えば良い。 TopologyNodeの第一引数は Alice デーモンの設定オブジェクト、第二引数はStart Code Segmentである。 ここで指定した、Start Code Segmentがトポロジーが完成した後実行される。 ---ゲームの例題 +--水族館の例題 今回作成した例題は水族館である。複数のクライアントのディスプレイを複数の魚が移動していくものである。魚は画面の端まで移動すると自分の画面上からは消え、別のクライアントの画面の端から魚が出てくる。また、魚のうち一匹はクライアントが直接操作することができる。トポロジーはTopologyManagerによりツリー状に構成してある。 @@ -287,8 +285,31 @@ \item 各clientで2 - 4が実行される。 \end{enumerate} ---評価 +--実験 + +Ring + +水族館 + +--評価と考察 + +今回の実装は、Java により Code Segment と Data Segment に必要な API を洗い出すためのものであった。この実装でもいくつかの問題が明らかになっている。 + +{\bf API } Class を継承したり、Input Datasegment や Output Datasegment の作成に factory object を使うのは Java を使う際の技術的なものであり、Alice のAPI自体は Java に固有である必要はない。むしろ、Java の Object 指向な記述が全体を煩雑にしている部分がある。{\tt update} は、Data Segmentの競合的な更新に使われるべきだと思われる。 +\{bf SEDA } + +Federated Linad に比べて、通信のレスポンスが遅い原因の一つはSEDA architectureのせいだと思われる。SEDA はスループット重視の実装であり、多段のパイプラインのせいでレスポンスは遅れてしまう。レスポンスが要求される部分のスケジューラーを別にするなどの工夫が必要だと思われる。それを記述そのものに入れるのが良いかどうかには議論の余地がある。 + +\{bf MessagePack } + +今回の実装では単純な Message の転送の場合でも MessagePack の decode/encode が必要になる。これは単純に overhead になる。encode/decode 抜きに直接処理できる方が望ましい。また、Data Segment の一部の修正に + +\{bf Key } + +\{bf Java } + +拡張性 --まとめと今後の課題