annotate yokou.tex @ 14:6d68a4836864

texのwarning除去と、ディレクトリの整理
author "Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
date Sat, 28 Mar 2009 09:17:10 +0900
parents b5756a23102d
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
14
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
1 \documentclass[twocolumn,twoside,9.5pt]{jarticle}
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
2 \usepackage[dvips]{graphicx}
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
3 \usepackage{fancyhdr,picins}
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
4 \pagestyle{fancy}
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
5 \lhead{\parpic{\includegraphics[height=1zw,clip,keepaspectratio]{img/emblem-bitmap.eps}}琉球大学主催 工学部情報工学科 卒業研究発表会}
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
6 \rhead{}
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
7 \cfoot{}
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
8
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
9 \setlength{\topmargin}{-1in \addtolength{\topmargin}{15mm}}
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
10 \setlength{\headheight}{0mm}
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
11 \setlength{\headsep}{5mm}
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
12 \setlength{\oddsidemargin}{-1in \addtolength{\oddsidemargin}{11mm}}
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
13 \setlength{\evensidemargin}{-1in \addtolength{\evensidemargin}{21mm}}
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
14 \setlength{\textwidth}{181mm}
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
15 \setlength{\textheight}{261mm}
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
16 \setlength{\footskip}{0mm}
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
17 \pagestyle{empty}
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
18
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
19 %%% \figref の定義
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
20 \newcommand\figref[1]{図 \ref{fig:#1}}
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
21
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
22 \begin{document}
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
23 \title{分散プログラムにおけるデバッグツールの設計と実装}
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
24 \author{035713J 小野雅俊 {}{} 指導教員 : 河野真治}
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
25 \date{}
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
26 \maketitle
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
27 \thispagestyle{fancy}
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
28
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
29 \section{スケーラビリティをデバッグする}
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
30 分散アプリケーションが多数開発されている近年、
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
31 ノードやネットワークの動的な変化、故障、性能の多様性を考慮した
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
32 フレームワークが必要である。
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
33 分散環境ではスケーラビリティを確保すること重要である。ここでの
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
34 スケーラビリティとはノードの規模の増大にも関わらず、
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
35 アプリケーションの性能を維持できることを指す。
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
36 分散アルゴリズムの作成には、論理的なプログラムの正しさだけでなく、
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
37 スケーラビリティのデバッグを可能にする必要がある。
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
38 つまり、デバッガ自体をスケーラブルに作る必要がある。
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
39 そのため、分散
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
40 フレームワークとして本研究室が提案しているFederated Lindaに、
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
41 スケーラビリティなデバッグを行う為のメタな通信を行うプロトコルエンジン
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
42 を設計し実装した。
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
43
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
44 分散プログラムの
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
45 デバッグを行う際には通信は必須であるが、その通信によって
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
46 本来の通信に影響を及ぼす恐れがある。
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
47 ここでは、スケーラビリティには若干問題があるが、
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
48 本来の通信に影響を与えないように、一つのトークンをリング上に
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
49 流す方法を提案\cite{aa,bb}している。本論文ではPCクラスタ上で実際の通信を行ない、100台程度の
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
50 分散プログラムでの評価を行なった。
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
51
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
52 \section{Federated Linda}
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
53 Federated Lindaとは、複数のタプル空間を相互に
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
54 結ぶプロトコルエンジンによって
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
55 接続する分散プログラミングモデルである。
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
56 Lindaと同じAPIを持つが、
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
57 Lindaが一つのタプル空間を共有するのに対し、
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
58 Federated Lindaは複数のタプル空間を個別に持つ。
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
59 クライアントのアクセス数に対応して、
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
60 タプルスペースの数を増やし処理を分散させる事により、スケーラビリティを保つ。
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
61
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
62 \subsection{Federated Linda Protocol}
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
63 Federated Lindaは以下の様にして通信を行う。
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
64
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
65 \begin{itemize}
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
66 \item public PSXLinda open(String \_host,int \_port)
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
67
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
68 Linda Serverに対し、接続を行う。引数はホスト名とポート番号をとる。返り値はタプルスペースの番号となる。
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
69
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
70 \item public PSXReply in(int id)
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
71
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
72 タプルスペース番号より引数で指定したidのタプルの受け取りを要求する。
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
73 受け取りは、返値のPSXReplyをチェックすることにより非同期に行なう。
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
74 in では待ち合わせは行なわれない。Call back 形式でタプルを受け取る
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
75 ことも出来る。
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
76
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
77 \item public PSXReply out(int id, ByteBuffer data)
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
78
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
79 引数で指定したidでByteBuffer内のデータを送信する。
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
80
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
81 \item public int sync(long mtimeout)
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
82
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
83 接続しているLinda Serverとタプルの送受信のポーリングを行う。
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
84
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
85 \end{itemize}
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
86
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
87
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
88 \section{Protocol Engine}
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
89 Protocol Engineとはタプルスペースを介してデータをやり取りするEngineである。
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
90 二つのサーバー間でやり取りを行う場合、以下のようなプログラムとなる。
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
91 \begin{verbatim}
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
92 FederatedLinda fdl;
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
93 PSXLinda getpsx;
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
94 PSXLinda sendpsx;
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
95 PSXReply in;
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
96 ByteBuffer data = ByteBuffer.allocate(10);
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
97
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
98 //通信を初期化する
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
99 fdl = FederatedLinda.init();
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
100 //データを取ってくるホストと受け渡すホストとの接続開始
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
101 getpsx = fdl.open("cs100",10000);
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
102 sendpsx = fdl.open("cs101",10001);
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
103 //取ってくるホストからinを指定してデータを取得
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
104 in = getpsx.in(10)
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
105 data = in.getData();
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
106 //受け渡すホストに対しデータとidを指定して同期
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
107 sendpsx.out(10,data);
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
108 fdl.sync();
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
109 \end{verbatim}
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
110
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
111 \section{Meta Protocol Engine}
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
112 デバッグ用の通信はLinda Server内部に直接アクセス出来なければ
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
113 ならない。これをLinda Server内のMeta Protocol Engine に
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
114 よって実現する(\figref{mpe})。
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
115 \begin{figure}[htbp]
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
116 \begin{center}
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
117 \includegraphics[scale=0.3]{img/3.eps}
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
118 \caption{Meta Protocol Engine}
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
119 \label{mpe}
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
120 \end{center}
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
121 \end{figure}
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
122
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
123 Meta Engine は、
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
124 通常のFederatedLindaと同様のin/out APIを持つ。
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
125 Meta Engine では、\verb+sync()+が、属するLinda Server
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
126 自体のポーリングを行なう。\verb+sync()+の間は、
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
127 通信は行なわれず タプル空間は変化しない。
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
128 Meta Engine は安全にタプル空間にアクセス出来る。
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
129 Meta Engine のプログラムは、
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
130 Linda Serverのメインループで指定することが出来、
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
131 Server 毎に独自の動作をさせることが可能である。
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
132
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
133 \section{測定}
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
134 本稿では
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
135 分散通信に影響を最低限にするために、Ringで性能を評価する。
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
136 3台のLinda Server間でMeta Engineがデータをやり取りする場合
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
137 のUMLシーケンス図は\figref{ringthree}のようになる。
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
138 \begin{figure}[htbp]
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
139 \begin{center}
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
140 \includegraphics[scale=0.2]{img/meta_ring_three.eps}
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
141 \caption{3台間の通信}
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
142 \label{ringthree}
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
143 \end{center}
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
144 \end{figure}
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
145
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
146 Ring では通信パケットは一つのみであり、デバッグ対象への
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
147 影響が小さい。
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
148 しかし、スナップショットや一時停止などの
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
149 デバッグ操作をするためには、全ノードを周回する必要がある。
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
150 %これはo(n)であり、十分にスケーラビリティがあるとは言えない。
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
151 %しかし、もっとも影響が少ない方法なので、どの程度まで使える
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
152 %かを測定することには意味がある。
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
153
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
154 ここでは、通信パケットの大きさを変えて、
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
155 3〜100までの台数でデータが1周(\figref{metaring})する時間、
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
156 および1000周(\figref{metaring1000})した時に掛かった時間を測定する。
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
157 前者では接続の手間を含む通信時間、後者では通信のみの時間を
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
158 計ることが出来る。
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
159
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
160 実験は、
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
161 琉球大学
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
162 情報工学科のクラスタ上(Core Duo 2GHz,メモリ1GB)で、
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
163 クラスタジョブ管理システム
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
164 Torqueを用いて行なった。
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
165 ネットワークはAlaxalA Gigabit Ethernet Switchで構成されている。
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
166 クラスタ自体は180台あるが、
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
167 安定して動作する100台までを使用して測定を行なった。
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
168
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
169 \begin{figure}[htbp]
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
170 \begin{center}
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
171 \includegraphics[scale=0.3]{img/metaring1.eps}
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
172 \caption{接続を含む一周の時間}
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
173 \label{metaring}
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
174 \end{center}
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
175 \end{figure}
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
176 \begin{figure}[htbp]
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
177 \begin{center}
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
178 \includegraphics[scale=0.3]{img/metaring1.eps}
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
179 \caption{千周の平均周回時間}
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
180 \label{metaring1000}
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
181 \end{center}
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
182 \end{figure}
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
183
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
184 X軸が台数、Y軸がミリ秒、ラインの色が通信するデータサイズを表す。
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
185 両図から見てわかる通り、データの量にはあまり依存する事はなくほぼ同じラインを形作っている。
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
186 データを1周のみした場合は1サイクルあたり約14000ms、一台あたり約140ms掛かっている計算になり、
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
187 それに対し1000周した際に掛かった時間は、1サイクルおよそ60ms、一台につき約0.6msとなっている。
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
188 これより、一度、接続してしまえば、
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
189 Meta Engine での通信は実際に100台程度のデバッグに使用するのに十分な性能を
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
190 持っていることが確認出来た。
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
191
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
192 \section{まとめと課題}
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
193 本稿ではデバッグを行う為に通常通信とは他に、Metaで通信するMeta Protocol Engineを実装し評価した。
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
194 今回は、スナップショットなどの実際のデバッグ機能を実装することは出来なかった。
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
195 通信の実験においても、
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
196 同クラスタ上で別のRing通信や他のMetaLinda通信等があった場合の干渉の程度
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
197 などを測定する必要があると考えられる。
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
198
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
199 \thispagestyle{fancy}
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
200 \begin{thebibliography}{9}
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
201 \bibitem {aa}上里献一, 河野真治 SuciライブラリのスナップショットAPIを利用した並列デバッグツールの設計
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
202 \bibitem {bb}渕田 良彦, 河野 真治 分散プログラミングモデルFederated Lindaと分散デバッグ
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
203 \end{thebibliography}
6d68a4836864 texのwarning除去と、ディレクトリの整理
"Yuta AKAMINE <freddie@cr.ie.u-ryukyu.ac.jp>"
parents: 9
diff changeset
204 \end{document}