diff paper/chapter2.tex @ 13:db3b8eaba7b0 default tip

add presen
author sugi
date Fri, 22 Feb 2013 16:18:39 +0900
parents 3b3b014765a2
children
line wrap: on
line diff
--- a/paper/chapter2.tex	Wed Feb 20 19:12:20 2013 +0900
+++ b/paper/chapter2.tex	Fri Feb 22 16:18:39 2013 +0900
@@ -2,7 +2,7 @@
 \label{chap:concept}
 
 \section{Alice}
-Aliceは、本研究室で開発を行なっている分散タスク管理フレームワークである。
+Alice\cite{kono11g}は、本研究室で開発を行なっている分散タスク管理フレームワークである。
 Cell 用のOpen CLに似たTask管理フレームワークCerium\cite{kono09b,cerium-sourceforge}と、Linda\cite{linda}を相互接続した分散フレームワークであるFederated Linda\cite{kono05b}の開発を通して得られた知見を生かされている。
 
 Ceriumでは、Taskを小さく分割して並列実行し、データ転送はパイプライン実行により隠される。Taskには依存関係があり、その記述は煩雑になるが、実際にはデータの依存関係がそのままTaskの依存関係になることが多い。繰り返し使われるデータ構造の管理が重要であり、実行時にわかるデータ構造間の依存関係がTaskを複雑にしている。
@@ -18,7 +18,6 @@
 AliceはCode SegmentとData SegmentをJavaとMessage Packで実装したフレームワークである。トポロジーマネージャーを持ち、Blade上での
 分散プログラムの実験を容易に行うことができる。また、SEDA Architecture \cite{SEDA2001}を採用しており、マルチコア上でのスループットの向上を期待している。
 
-本論文では、Code SegmentとData SegmentのAliceのAPIと、その設計方針を示し、それによって実装された水族館プログラムを示す。また、これまでのFederated Lindaとの性能評価も行う。
 
 \section{Data Segment API}
 Data Segmentは、データ細かく分割したものであり、数値や文字列などのデータを構造体的に保持す
@@ -26,7 +25,7 @@
 Data Segmentは必ずキーを持つ。つまり、Key Value Storeとして考えることができる。
 通常のデータベースでは隠されているが、Key毎にキューがあり、key毎に順次実行される。
 
-Aliceのデータベースは通常のKVSと若干異なっている点がある。通常のKVSはプログラミング言語の連想配列やMapと同様に「Key(キー)」と「Value(値)」がペアとなってる。そのためKeyに対して取得できるValueは当然1つである。しかし、Aliceの場合は「Key」と「Value」と「Index」がセットとなっているため、Keyに対して保存できる値が複数ある。そのため取得できるValueも複数存在する。
+Aliceのデータベースは通常のKVSと若干異なっている点がある。通常のKVSはプログラミング言語の連想配列やMapと同様に「Key(キー)」と「Value(値)」がペアとなってる。そのためKeyに対して取得できるValueは当然1つである。しかし、Aliceの場合は「Key」と「Queue」がセットとなっているため、Keyに対して複数回putできる。そのため取得できるValueも複数存在する。
 key毎の追加と取得は、Lindaに準じた設計になっている。
 
 Data SegmentはData Segment Manager(以下DSM)によって管理されている。ノード毎にLocal DSMとRDSMが存在する。Local DSMは、各ノード固有のKey Value Storeとなっている。従って、Keyはノード内部でuniqueなものである。Remote DSMは他のノードのLocal DSMのproxyである。(図 \ref{fig:RemoteDSM}) AliceのトポロジーマネージャーがRemote DSMを自動的に構築する。つまりRemote DSMは複数存在し、それぞれに対応するノードが異なる。
@@ -130,6 +129,14 @@
 \section{Code Segment}
 Code Segmentはタスクのことである。Code Segmentをユーザーが記述するときに、Code Segmentの作成を記述する。Code Segment内で使用するData Segmentの作成を記述する。Code Segmentには、Input Data SegmentとOutput Data Segmentを作るAPIが存在する。
 
+\begin{figure}[htbp]
+\begin{center}
+\includegraphics{fig/dsandcs.pdf}
+\end{center}
+\caption{Code SegmentはInput Data Segment とOut put Data Segmenが存在する}
+\label{fig:dsandcs}
+\end{figure}
+
 Input Data Segmentで作成されたData Segmentは、remoteかlocalか、またkeyを指定する必要がある。Input Data Segmentがすべて揃うまでCode Segmentはactiveにならない。
 
 Out Data Segmentで作成されたData Segmentに対してもremoteかlocalか、keyを指定する必要がある。
@@ -172,12 +179,11 @@
 
 \begin{itemize}
 \item {\ttfamily void setKey(String managerKey, String key)}
-\item {\ttfamily void setKey(String managerKey, String key ,int index)}
 \end{itemize}
 
 setKeyメソッドにより、どこのData Segmentのあるkeyに対してpeekまたはtakeコマンドを実行するかを指定することができる。
 コマンドの結果がレスポンスとして届き次第Code Segmentは実行される。
-また、第3引数にindexを指定することで、指定したindexよりも新しいData Segmentがある場合のみData Segmentを取得するといったことができる。
+
 
 
 Output DSMはCode Segmentのodsというフィールドを用いてアクセスする。Output DSMはputまたは updateを実行することができる。
@@ -203,7 +209,7 @@
 \end{figure}
 
 \subsection{Topology Manager の設定ファイルの記述方法}
-Topology Managerが読み込むトポロジーファイルはDOT Languageと呼ばれる言語で記述する。
+Topology Managerが読み込むトポロジーファイルは Language\cite{graphviz}と呼ばれる言語で記述する。
 DOT Languageはプレーンテキストを用いてデータ構造としてのグラフ構造を表現するデータ記述する言語の一種である。
 このDOT Languageを用いてクライアント間の接続を表現する。