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の
 実装に不向きであることもわかってきた。
Binary file presen/images/lrds.png has changed
--- 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>