annotate paper/chapter1.tex @ 17:675939a7f983

change experiment picture
author sugi
date Fri, 23 Jan 2015 16:43:48 +0900
parents 930eae4e8aeb
children d2eeb833c75e
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
295b393a7134 first commit
sugi
parents:
diff changeset
1 \chapter{分散フレームワーク Alice の概要} \label{chapter:chapter1}
1
cf3a4335c64a add source code and modify chapters
gi
parents: 0
diff changeset
2
17
675939a7f983 change experiment picture
sugi
parents: 15
diff changeset
3 \section{Aliceの計算モデル}
675939a7f983 change experiment picture
sugi
parents: 15
diff changeset
4 \subsection{Data SegmentとCode Segment}
675939a7f983 change experiment picture
sugi
parents: 15
diff changeset
5 \subsection{computationとmeta computation}
2
33246fe15eb5 edit omnigraffle
sugi
parents: 1
diff changeset
6
17
675939a7f983 change experiment picture
sugi
parents: 15
diff changeset
7
1
cf3a4335c64a add source code and modify chapters
gi
parents: 0
diff changeset
8 \subsection{Data Segment API}
3
cacc83aea539 modify chapter3
sugi
parents: 2
diff changeset
9
1
cf3a4335c64a add source code and modify chapters
gi
parents: 0
diff changeset
10 \subsection{Data Segment の表現}
cf3a4335c64a add source code and modify chapters
gi
parents: 0
diff changeset
11
17
675939a7f983 change experiment picture
sugi
parents: 15
diff changeset
12 \section{Aliceの実装}
675939a7f983 change experiment picture
sugi
parents: 15
diff changeset
13 \subsection{Code Segment}
675939a7f983 change experiment picture
sugi
parents: 15
diff changeset
14 \subsubsection{Code Segmentの実行方法}
675939a7f983 change experiment picture
sugi
parents: 15
diff changeset
15 \subsubsection{Code Segmentの記述方法}
675939a7f983 change experiment picture
sugi
parents: 15
diff changeset
16 \subsection{Meta Data Segment}
675939a7f983 change experiment picture
sugi
parents: 15
diff changeset
17 \subsection{Meta Code Segment}
675939a7f983 change experiment picture
sugi
parents: 15
diff changeset
18 \subsection{Topology Manager}
2
33246fe15eb5 edit omnigraffle
sugi
parents: 1
diff changeset
19 Aliceは複数のノードで構成され、相互に接続される。通信するノードはURLにより直接指定するのではなくTopology Managerで管理する。
3
cacc83aea539 modify chapter3
sugi
parents: 2
diff changeset
20 Topology Managerはトポロジーファイルを読み込み、参加を表明したクライアント(以下、Topology Node)に接続するべきTopology NodeのIPアドレス、ポート番号、接続名を送りトポロジーファイルに記述されたとおりにトポロジーを作成する。(図\ref{fig:topologymanager})
2
33246fe15eb5 edit omnigraffle
sugi
parents: 1
diff changeset
21
33246fe15eb5 edit omnigraffle
sugi
parents: 1
diff changeset
22 \begin{figure}[htbp]
33246fe15eb5 edit omnigraffle
sugi
parents: 1
diff changeset
23 \begin{center}
3
cacc83aea539 modify chapter3
sugi
parents: 2
diff changeset
24 \includegraphics[width=70mm]{images/topologymanager.pdf}
2
33246fe15eb5 edit omnigraffle
sugi
parents: 1
diff changeset
25 \end{center}
33246fe15eb5 edit omnigraffle
sugi
parents: 1
diff changeset
26 \caption{Topology Manager はトポロジーファイルの記述に従ってトポロジーを生成する}
33246fe15eb5 edit omnigraffle
sugi
parents: 1
diff changeset
27 \label{fig:topologymanager}
33246fe15eb5 edit omnigraffle
sugi
parents: 1
diff changeset
28 \end{figure}
33246fe15eb5 edit omnigraffle
sugi
parents: 1
diff changeset
29
33246fe15eb5 edit omnigraffle
sugi
parents: 1
diff changeset
30 Code Segment内部でRemote DSMにアクセスする場合はToplogyManagerによって指定されたノード内部だけで有効なlabel(文字列)を使う。これにより特定のURLがCode Segment内部に記述されることを防いでいる。
33246fe15eb5 edit omnigraffle
sugi
parents: 1
diff changeset
31
15
930eae4e8aeb modify introduction
sugi
parents: 14
diff changeset
32 トポロジーファイルはグラフ構造を表現するデータ記述する言語の一種であるDOT Languageと呼ばれる言語で記述する。また、dotコマンドを用いてトポロジーファイルを可視化することができる。
3
cacc83aea539 modify chapter3
sugi
parents: 2
diff changeset
33
17
675939a7f983 change experiment picture
sugi
parents: 15
diff changeset
34 \subsubsection{Topology Managerの参加表明処理}
3
cacc83aea539 modify chapter3
sugi
parents: 2
diff changeset
35 Topology Managerへの参加表明は、Topology Node起動時にコマンドライン引数からTopology ManagerのIPアドレスとポート番号を指定すればよい。
cacc83aea539 modify chapter3
sugi
parents: 2
diff changeset
36 指定されたTopology Managerに接続を行うと、Topology Manager側のキー"hosts"に、自分自身のIPアドレスとポート番号をputする。
cacc83aea539 modify chapter3
sugi
parents: 2
diff changeset
37
cacc83aea539 modify chapter3
sugi
parents: 2
diff changeset
38 参加表明を受け取ったTopology Managerは、抽象名を参加表明したTopology Nodeのキー"host"にputする。
cacc83aea539 modify chapter3
sugi
parents: 2
diff changeset
39 その後、Topology Manager上のTopology Node名のキーに、接続すべきTopology Nodeの情報(IP アドレス、ポート番号等)を全てputする。Topology Nodeは、その情報を1つずつTakeし接続処理を行う。全ての接続処理が終わるとTopology ManagerからTopology Nodeに対してStart Code Segmentの実行命令が出され、アプリケーションが開始される。
cacc83aea539 modify chapter3
sugi
parents: 2
diff changeset
40
cacc83aea539 modify chapter3
sugi
parents: 2
diff changeset
41 \begin{figure}[htbp]
cacc83aea539 modify chapter3
sugi
parents: 2
diff changeset
42 \begin{center}
cacc83aea539 modify chapter3
sugi
parents: 2
diff changeset
43 \includegraphics[width=120mm]{images/topologymanagerandnode.pdf}
cacc83aea539 modify chapter3
sugi
parents: 2
diff changeset
44 \end{center}
cacc83aea539 modify chapter3
sugi
parents: 2
diff changeset
45 \caption{Topology ManagerとTopology Node間の通信}
cacc83aea539 modify chapter3
sugi
parents: 2
diff changeset
46 \label{fig:topologymanagerandnode}
cacc83aea539 modify chapter3
sugi
parents: 2
diff changeset
47 \end{figure}
4
e59c8e99a5c1 modify chapter4
sugi
parents: 3
diff changeset
48
17
675939a7f983 change experiment picture
sugi
parents: 15
diff changeset
49
675939a7f983 change experiment picture
sugi
parents: 15
diff changeset
50 \subsection{Aliceによるプログラミング手法}
14
b9b3f2241ab4 modify chapter2
sugi
parents: 5
diff changeset
51 AliceはCode SegmentとData Segmentによってプログラミングを行なう。Code Segmentから別にCode SegmentへData Segmentを引き渡す際、コンストラクタは使わない。Code SegmentがLocal / Remote Data Segmentに対してputを行い、別のCode SegmentがLocal / Remote Data Segmentに対してpeekを行うことで引き渡される。つまり、Code Segmentは実行前後にData Segmentへ通信が行われるのである。この通信の順序がCode Segmentの実行順序を決定している。
b9b3f2241ab4 modify chapter2
sugi
parents: 5
diff changeset
52 すなわち、Aliceによるプログラミングとは通信の管理を行うことであり、プロトコルを設計することと捉える事ができる。