Mercurial > hg > Papers > 2015 > sugi-master
view paper/chapter1.tex @ 17:675939a7f983
change experiment picture
author | sugi |
---|---|
date | Fri, 23 Jan 2015 16:43:48 +0900 |
parents | 930eae4e8aeb |
children | d2eeb833c75e |
line wrap: on
line source
\chapter{分散フレームワーク Alice の概要} \label{chapter:chapter1} \section{Aliceの計算モデル} \subsection{Data SegmentとCode Segment} \subsection{computationとmeta computation} \subsection{Data Segment API} \subsection{Data Segment の表現} \section{Aliceの実装} \subsection{Code Segment} \subsubsection{Code Segmentの実行方法} \subsubsection{Code Segmentの記述方法} \subsection{Meta Data Segment} \subsection{Meta Code Segment} \subsection{Topology Manager} Aliceは複数のノードで構成され、相互に接続される。通信するノードはURLにより直接指定するのではなくTopology Managerで管理する。 Topology Managerはトポロジーファイルを読み込み、参加を表明したクライアント(以下、Topology Node)に接続するべきTopology NodeのIPアドレス、ポート番号、接続名を送りトポロジーファイルに記述されたとおりにトポロジーを作成する。(図\ref{fig:topologymanager}) \begin{figure}[htbp] \begin{center} \includegraphics[width=70mm]{images/topologymanager.pdf} \end{center} \caption{Topology Manager はトポロジーファイルの記述に従ってトポロジーを生成する} \label{fig:topologymanager} \end{figure} Code Segment内部でRemote DSMにアクセスする場合はToplogyManagerによって指定されたノード内部だけで有効なlabel(文字列)を使う。これにより特定のURLがCode Segment内部に記述されることを防いでいる。 トポロジーファイルはグラフ構造を表現するデータ記述する言語の一種であるDOT Languageと呼ばれる言語で記述する。また、dotコマンドを用いてトポロジーファイルを可視化することができる。 \subsubsection{Topology Managerの参加表明処理} Topology Managerへの参加表明は、Topology Node起動時にコマンドライン引数からTopology ManagerのIPアドレスとポート番号を指定すればよい。 指定されたTopology Managerに接続を行うと、Topology Manager側のキー"hosts"に、自分自身のIPアドレスとポート番号をputする。 参加表明を受け取ったTopology Managerは、抽象名を参加表明したTopology Nodeのキー"host"にputする。 その後、Topology Manager上のTopology Node名のキーに、接続すべきTopology Nodeの情報(IP アドレス、ポート番号等)を全てputする。Topology Nodeは、その情報を1つずつTakeし接続処理を行う。全ての接続処理が終わるとTopology ManagerからTopology Nodeに対してStart Code Segmentの実行命令が出され、アプリケーションが開始される。 \begin{figure}[htbp] \begin{center} \includegraphics[width=120mm]{images/topologymanagerandnode.pdf} \end{center} \caption{Topology ManagerとTopology Node間の通信} \label{fig:topologymanagerandnode} \end{figure} \subsection{Aliceによるプログラミング手法} 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の実行順序を決定している。 すなわち、Aliceによるプログラミングとは通信の管理を行うことであり、プロトコルを設計することと捉える事ができる。