Mercurial > hg > Papers > 2012 > sugi-prosym
changeset 31:32b555e8fb6f
minor change
author | e095732 <e095732@ie.u-ryukyu.ac.jp> |
---|---|
date | Fri, 21 Dec 2012 15:32:46 +0900 |
parents | 189d15c2152c |
children | 380120eb0cd7 |
files | Paper/alice.ind presen/images/lrds.png presen/index.html |
diffstat | 3 files changed, 56 insertions(+), 18 deletions(-) [+] |
line wrap: on
line diff
--- a/Paper/alice.ind Fri Dec 21 13:26:05 2012 +0900 +++ b/Paper/alice.ind Fri Dec 21 15:32:46 2012 +0900 @@ -46,7 +46,7 @@ AliceではData Segmentをデータベースとして扱い、Data Segment は必ずキーを持つ。つまり、Data Segment を Key Value Store として考えることができる。 通常のデータベースでは隠れているが、Key 毎のキューがあり、Key 毎に順に実行される。key 毎の追加と取得は、Linda に準じた設計になっている。 -Data Segmentを管理するのがData Segment Managerである。ノード毎に local DS manager と remote DS manager がある。local manager は、ノードに固有の +Data Segmentを管理するのがData Segment Managerである。ノード毎に local DS manager と remote DS manager がある。local DS manager は、ノードに固有の key Value Store と考えることができる。したがって Key はノード内部で unique な文字列である。 remote DS manager は他のノードのlocal DS manager の proxy である。Alice のトポロジーマネージャーが remote DS manager を自動的に構成する。つまり、remote DS manager は複数あって、それぞれ対応するノードが異なる。 @@ -355,7 +355,7 @@ --まとめと今後の課題 今回、Code Segment と Data Segment による並列分散フレームワークの Java による実装を示した。前の設計\cite{kono11g}と異なる部分は、 -実装でしか得られない治験である。 +実装でしか得られない知見である。 Java による実装は、ラピッドプロトタイピングとしては適切であり、例題の記述と基本性能の確認に向いている。一方で、Java が Aliceの 実装に不向きであることもわかってきた。
--- a/presen/index.html Fri Dec 21 13:26:05 2012 +0900 +++ b/presen/index.html Fri Dec 21 15:32:46 2012 +0900 @@ -76,36 +76,73 @@ <ul> </article> - <article> <h3>Cerium</h3> <ul> + <p>Ceriumは当研究室で開発を行なっている並列プログラミングフレームワークである。</p> <p>CeriumではTaskを小さく分割して並列実行し、データ転送はパイプライン実行により隠される。</p> <p>Taskには依存関係がありデータの依存関係がそのままTaskの依存関係になることが多い。</p> - <p>繰り返し使われるデータの管理が重要であり、実行時にわかるデータ構造感間の依存関係がTaskを複雑にしている。</p> + <p>繰り返し使われるデータの管理が重要であり、実行時にわかるデータ構造間の依存関係がTaskを複雑にしている。</p> </ul> </article> <article> - <h3>Data Segment API - put</h3> - <ul><li>データを追加する</li></ul> - <div align="center"> - <img src="images/put.png" width="70%"> - </div> + <h3>Data Segment API</h3> + <ul> + <p>Data Segmentは数値や文字などのデータを構造体的に保持するが、分散プログラムにおいてData Segmentの相互参照が問題になってくる。</p> + <p>AliceではData SegmentにユニークなKeyを持たせ、Key Value Storeとして扱っている。Key毎のキューがあり、Key毎に順に実行される。<br> + Key毎の追加、取得はLindaに準じた設計となっている。</p> + </ul> + </article> + + + <article> + <h3>Data Segment API</h3> <ul> - <p>putを行うとデータがenqueueされる。</p> - <p>putするたびにKeyが持つindexがincrementされる。</p> + <p>Data Segmentを管理するのが、Data Segment Managerである。各ノード毎に、Local DS ManagerとRemote DS Managerが存在する。</p> + <p>Local DS Managerはノード固有のKey Value Storeであり、Remote DS Managerは他のノードのLocal DS Managerのproxyである。 + AliceのTopology Managerが自動的に構成する。</p> + <div align="center"> + <img src="images/lrds.png" width=500> + </div> </ul> </article> + + + <article> + <h3>Data Segment API</h3> + <ul> + 以下が用意されているData Segment APIである。 + <li>void put(String key, Value val)</li> + <li>void update(String key, Value val)</li> + <li>void peek(Receiver receiver, String key)</li> + <li>void take(Receiver receiver, String key)</li> + <p>これらを用いてデータの送受信を行う。</p> + </ul> + </article> + + <article> + <h3>Data Segment API - put</h3> + <ul> + <li>データを追加する</li> + </ul> + <div align="center"> + <img src="images/put.png" width=70%> + </div> + <ul> + <p>putを行うとデータがenqueueされる。</p> + <p>putするたびにKeyが持つindexがincrementされる。</p> + </ul> + </article> <article> <h3>Data Segment API - update</h3> <ul><li>データを置き換える</li></ul> <div align="center"> - <img src="images/update.png" width="70%"> + <img src="images/update.png" width=70%> </div> <ul> - putと異な点は先頭データを削除し、データを追加する。 + putと異なる点は先頭データを削除し、データを追加する。 </ul> </article> @@ -113,7 +150,7 @@ <h3>Data Segment API - peek</h3> <ul><li>データを取得する</li></ul> <div align="center"> - <img src="images/peek.png" width="50%"><br> + <img src="images/peek.png" width=50%><br> </div> <ul> peekはデータを取得しreceiverに渡す。 @@ -123,11 +160,11 @@ <article> <h3>Data Segment API - peek</h3> <div align="center"> - <img src="images/peek1.png" width="60%"><br> + <img src="images/peek1.png" width=60%><br> </div> <ul> <p>要求したデータがない場合にはwaitListに登録する。</p> - データがpeek、updateされた際に要求したデータがあるかどうかを再びチェックする。 + データがput、updateされる際に要求したデータがあるかどうかを再びチェックする。 </ul> </article> @@ -136,7 +173,7 @@ <h3>Data Segment API - take</h3> <ul><li>データを取得して取得されたデータはdequeueされる</li></ul> <div align="center"> - <img src="images/take.png" width="50%"><br> + <img src="images/take.png" width=50%><br> </div> <ul> <p>基本的な動作はpeekと同じである。</p> @@ -164,7 +201,8 @@ <article> <h3>Data Segmentの実装</h3> - <ul><p>Valueオブジェクトは通信に関わる際には、シリアライズ、デシリアライズを行うことができる</p> + <ul> + <p>Valueオブジェクトは通信に関わる際には、シリアライズ、デシリアライズを高速に行うことができる</p> <img src="images/FishPoint.png" width=700><br> ユーザーが一般的なクラスをIDL(Interface Definition Language)のように用いてデータを記述することが可能 </ul>