annotate paper/chapter5.tex @ 31:819eedb5189e

add poster
author sugi
date Sat, 21 Feb 2015 00:10:08 +0900
parents 9d3fadcc379d
children
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:chapter5}
30
sugi
parents: 27
diff changeset
2 この章では第\ref{chapter:chapter4}章で行った効果の測定、先行研究であるFedarated Lindaとの性能比較を行い、評価を行う。TreeVNCとAliceVNCの比較をコードの観点からも評価を行う。
sugi
parents: 27
diff changeset
3
sugi
parents: 27
diff changeset
4 \section{機能の確認}
sugi
parents: 27
diff changeset
5 水族館の例題でノードを意図的に切断した結果トポロジーの再構成が行わることを確認した。
sugi
parents: 27
diff changeset
6 そして、切断したノードが再接続を行えることを確認した。
sugi
parents: 27
diff changeset
7 また、再接続の挙動を変更するAPIによりMMORPGにあるような、前回の魚の位置から再開させることに成功した。
sugi
parents: 27
diff changeset
8
12
ddab34e04068 add pdf and modify chapter2
sugi
parents: 11
diff changeset
9 \section{並列環境の改善効果の測定}
25
sugi
parents: 19
diff changeset
10 第\ref{chapter:chapter4}章 の並列環境における改善効果をbitonic sortによる実験によって測定を行なう。
11
0b3e5436fa48 modify chapter5
sugi
parents: 10
diff changeset
11
19
6b470aab9a41 modify chapter1
sugi
parents: 17
diff changeset
12 \subsubsection{実験環境}
12
ddab34e04068 add pdf and modify chapter2
sugi
parents: 11
diff changeset
13 コア数が少ないマシンでは、同時に走るCode Segmentが少ないことから、メニコア環境で実験を行った。
ddab34e04068 add pdf and modify chapter2
sugi
parents: 11
diff changeset
14 \begin{table}[htbp]
ddab34e04068 add pdf and modify chapter2
sugi
parents: 11
diff changeset
15 \caption{実行環境の詳細}
ddab34e04068 add pdf and modify chapter2
sugi
parents: 11
diff changeset
16 \label{tb:MacPro}
ddab34e04068 add pdf and modify chapter2
sugi
parents: 11
diff changeset
17 \begin{center}
ddab34e04068 add pdf and modify chapter2
sugi
parents: 11
diff changeset
18 \begin{tabular} {|l|l|}
ddab34e04068 add pdf and modify chapter2
sugi
parents: 11
diff changeset
19 \hline
17
675939a7f983 change experiment picture
sugi
parents: 16
diff changeset
20 {\bf CPU}&Intel Xeon E5-1650 v2 @3.50GHz\\
12
ddab34e04068 add pdf and modify chapter2
sugi
parents: 11
diff changeset
21 \hline
17
675939a7f983 change experiment picture
sugi
parents: 16
diff changeset
22 {\bf 物理コア数}&6\\
12
ddab34e04068 add pdf and modify chapter2
sugi
parents: 11
diff changeset
23 \hline
ddab34e04068 add pdf and modify chapter2
sugi
parents: 11
diff changeset
24 {\bf CPU キャッシュ}&12MB\\
ddab34e04068 add pdf and modify chapter2
sugi
parents: 11
diff changeset
25 \hline
ddab34e04068 add pdf and modify chapter2
sugi
parents: 11
diff changeset
26 {\bf Memory}&16GB\\
ddab34e04068 add pdf and modify chapter2
sugi
parents: 11
diff changeset
27 \hline
ddab34e04068 add pdf and modify chapter2
sugi
parents: 11
diff changeset
28 \end{tabular}
ddab34e04068 add pdf and modify chapter2
sugi
parents: 11
diff changeset
29 \end{center}
ddab34e04068 add pdf and modify chapter2
sugi
parents: 11
diff changeset
30 \end{table}
19
6b470aab9a41 modify chapter1
sugi
parents: 17
diff changeset
31 \subsubsection{実験結果}
17
675939a7f983 change experiment picture
sugi
parents: 16
diff changeset
32 100万の要素をもつ配列のSortにかかる時間を計測する。同時に走るCode Segmentが物理コア数と同じになるように、分割数は4個で行った。
12
ddab34e04068 add pdf and modify chapter2
sugi
parents: 11
diff changeset
33
ddab34e04068 add pdf and modify chapter2
sugi
parents: 11
diff changeset
34 \begin{table}[html]
ddab34e04068 add pdf and modify chapter2
sugi
parents: 11
diff changeset
35 \caption{bitonic sortの結果}
ddab34e04068 add pdf and modify chapter2
sugi
parents: 11
diff changeset
36 \label{tb:result3}
ddab34e04068 add pdf and modify chapter2
sugi
parents: 11
diff changeset
37 \begin{center}
ddab34e04068 add pdf and modify chapter2
sugi
parents: 11
diff changeset
38 \begin{tabular}{|l|l|l|}
ddab34e04068 add pdf and modify chapter2
sugi
parents: 11
diff changeset
39 \hline
ddab34e04068 add pdf and modify chapter2
sugi
parents: 11
diff changeset
40 & 改善前 & 改善後 \\
ddab34e04068 add pdf and modify chapter2
sugi
parents: 11
diff changeset
41 \hline
17
675939a7f983 change experiment picture
sugi
parents: 16
diff changeset
42 実行時間 (ms)& 164.8 & 112.1 \\
12
ddab34e04068 add pdf and modify chapter2
sugi
parents: 11
diff changeset
43 \hline
ddab34e04068 add pdf and modify chapter2
sugi
parents: 11
diff changeset
44 \end{tabular}
ddab34e04068 add pdf and modify chapter2
sugi
parents: 11
diff changeset
45 \end{center}
ddab34e04068 add pdf and modify chapter2
sugi
parents: 11
diff changeset
46 \end{table}
ddab34e04068 add pdf and modify chapter2
sugi
parents: 11
diff changeset
47
ddab34e04068 add pdf and modify chapter2
sugi
parents: 11
diff changeset
48 \section{分散環境の改善効果の測定}
25
sugi
parents: 19
diff changeset
49 第\ref{chapter:chapter4}章 の分散環境における改善効果をリングトポロジーによる実験によって測定を行なう。
sugi
parents: 19
diff changeset
50 また、先行研究であるFederated Lindaとの比較も行う。
11
0b3e5436fa48 modify chapter5
sugi
parents: 10
diff changeset
51
25
sugi
parents: 19
diff changeset
52 \subsubsection{実験概要}
11
0b3e5436fa48 modify chapter5
sugi
parents: 10
diff changeset
53 リングのトポロジーを構成し、メッセージが 100 周する時間を計り、1周あたりの平均時間を求める実験である。(図 \ref{fig:topologyring})
0b3e5436fa48 modify chapter5
sugi
parents: 10
diff changeset
54
0b3e5436fa48 modify chapter5
sugi
parents: 10
diff changeset
55 \begin{figure}[htbp]
0b3e5436fa48 modify chapter5
sugi
parents: 10
diff changeset
56 \begin{center}
17
675939a7f983 change experiment picture
sugi
parents: 16
diff changeset
57 \includegraphics[width=120mm]{images/topologyring.pdf}
11
0b3e5436fa48 modify chapter5
sugi
parents: 10
diff changeset
58 \end{center}
0b3e5436fa48 modify chapter5
sugi
parents: 10
diff changeset
59 \caption{100周にかかる時間を計測し、1周あたりの平均時間を求める}
0b3e5436fa48 modify chapter5
sugi
parents: 10
diff changeset
60 \label{fig:topologyring}
0b3e5436fa48 modify chapter5
sugi
parents: 10
diff changeset
61 \end{figure}
0b3e5436fa48 modify chapter5
sugi
parents: 10
diff changeset
62
0b3e5436fa48 modify chapter5
sugi
parents: 10
diff changeset
63 実験では、トポロジーの構築時間は実験に含めてはいない。
0b3e5436fa48 modify chapter5
sugi
parents: 10
diff changeset
64
19
6b470aab9a41 modify chapter1
sugi
parents: 17
diff changeset
65 \subsubsection{実験環境}
25
sugi
parents: 19
diff changeset
66 学科にある共用のブレードサーバ上の仮想マシンによる仮想クラスタ環境を用いて実験を行った。他の利用者とリソースが競合しないためにTORQUEジョブスケジューラを利用している。
sugi
parents: 19
diff changeset
67
sugi
parents: 19
diff changeset
68 ブレードサーバーと仮想マシンの性能はそれぞれ表 \ref{tb:blade}、表 \ref{tb:virtual}である。
11
0b3e5436fa48 modify chapter5
sugi
parents: 10
diff changeset
69
10
198cebfd31a3 modify chapter5
sugi
parents: 0
diff changeset
70 \begin{table}[htbp]
11
0b3e5436fa48 modify chapter5
sugi
parents: 10
diff changeset
71 \caption{ブレードサーバーの詳細}
0b3e5436fa48 modify chapter5
sugi
parents: 10
diff changeset
72 \label{tb:blade}
10
198cebfd31a3 modify chapter5
sugi
parents: 0
diff changeset
73 \begin{center}
198cebfd31a3 modify chapter5
sugi
parents: 0
diff changeset
74 \begin{tabular} {|l|l|}
11
0b3e5436fa48 modify chapter5
sugi
parents: 10
diff changeset
75 \hline
10
198cebfd31a3 modify chapter5
sugi
parents: 0
diff changeset
76 {\bf マシン台数}&8台\\
198cebfd31a3 modify chapter5
sugi
parents: 0
diff changeset
77 \hline
198cebfd31a3 modify chapter5
sugi
parents: 0
diff changeset
78 {\bf CPU}&Intel(R) Xeon(R) X5650 @ 2.67GHz\\
198cebfd31a3 modify chapter5
sugi
parents: 0
diff changeset
79 \hline
198cebfd31a3 modify chapter5
sugi
parents: 0
diff changeset
80 {\bf 物理コア数}&12\\
198cebfd31a3 modify chapter5
sugi
parents: 0
diff changeset
81 \hline
198cebfd31a3 modify chapter5
sugi
parents: 0
diff changeset
82 {\bf 論理コア数}&24\\
198cebfd31a3 modify chapter5
sugi
parents: 0
diff changeset
83 \hline
198cebfd31a3 modify chapter5
sugi
parents: 0
diff changeset
84 {\bf CPU キャッシュ}&12MB\\
198cebfd31a3 modify chapter5
sugi
parents: 0
diff changeset
85 \hline
198cebfd31a3 modify chapter5
sugi
parents: 0
diff changeset
86 {\bf Memory}&132GB\\
198cebfd31a3 modify chapter5
sugi
parents: 0
diff changeset
87 \hline
198cebfd31a3 modify chapter5
sugi
parents: 0
diff changeset
88 \end{tabular}
198cebfd31a3 modify chapter5
sugi
parents: 0
diff changeset
89 \end{center}
198cebfd31a3 modify chapter5
sugi
parents: 0
diff changeset
90 \end{table}
198cebfd31a3 modify chapter5
sugi
parents: 0
diff changeset
91
198cebfd31a3 modify chapter5
sugi
parents: 0
diff changeset
92 \begin{table}[htbp]
198cebfd31a3 modify chapter5
sugi
parents: 0
diff changeset
93 \caption{仮想クラスタの詳細}
11
0b3e5436fa48 modify chapter5
sugi
parents: 10
diff changeset
94 \label{tb:virtual}
10
198cebfd31a3 modify chapter5
sugi
parents: 0
diff changeset
95 \begin{center}
198cebfd31a3 modify chapter5
sugi
parents: 0
diff changeset
96 \begin{tabular} {|l|l|}
198cebfd31a3 modify chapter5
sugi
parents: 0
diff changeset
97 \hline
11
0b3e5436fa48 modify chapter5
sugi
parents: 10
diff changeset
98 {\bf マシン台数}&48台\\
10
198cebfd31a3 modify chapter5
sugi
parents: 0
diff changeset
99 \hline
198cebfd31a3 modify chapter5
sugi
parents: 0
diff changeset
100 {\bf CPU}&Intel(R) Xeon(R) X5650 @ 2.67GHz\\
198cebfd31a3 modify chapter5
sugi
parents: 0
diff changeset
101 \hline
198cebfd31a3 modify chapter5
sugi
parents: 0
diff changeset
102 {\bf 物理コア数}&2\\
198cebfd31a3 modify chapter5
sugi
parents: 0
diff changeset
103 \hline
198cebfd31a3 modify chapter5
sugi
parents: 0
diff changeset
104 {\bf 仮想コア数}&4\\
198cebfd31a3 modify chapter5
sugi
parents: 0
diff changeset
105 \hline
198cebfd31a3 modify chapter5
sugi
parents: 0
diff changeset
106 {\bf CPU キャッシュ}&12MB\\
198cebfd31a3 modify chapter5
sugi
parents: 0
diff changeset
107 \hline
198cebfd31a3 modify chapter5
sugi
parents: 0
diff changeset
108 {\bf Memory}&8GB\\
198cebfd31a3 modify chapter5
sugi
parents: 0
diff changeset
109 \hline
198cebfd31a3 modify chapter5
sugi
parents: 0
diff changeset
110 \end{tabular}
198cebfd31a3 modify chapter5
sugi
parents: 0
diff changeset
111 \end{center}
198cebfd31a3 modify chapter5
sugi
parents: 0
diff changeset
112 \end{table}
198cebfd31a3 modify chapter5
sugi
parents: 0
diff changeset
113
25
sugi
parents: 19
diff changeset
114
11
0b3e5436fa48 modify chapter5
sugi
parents: 10
diff changeset
115 \subsubsection{改善効果とFederated Lindaとの比較}
17
675939a7f983 change experiment picture
sugi
parents: 16
diff changeset
116 データのサイズは10Bと100KBで実験を行った。10Bの結果は図\ref{fig:compare_10B}、100KBの結果は図\ref{fig:compare_100KB}である。
11
0b3e5436fa48 modify chapter5
sugi
parents: 10
diff changeset
117 \begin{figure}[htbp]
0b3e5436fa48 modify chapter5
sugi
parents: 10
diff changeset
118 \begin{center}
17
675939a7f983 change experiment picture
sugi
parents: 16
diff changeset
119 \includegraphics[width=140mm]{images/compare_10B.pdf}
11
0b3e5436fa48 modify chapter5
sugi
parents: 10
diff changeset
120 \end{center}
17
675939a7f983 change experiment picture
sugi
parents: 16
diff changeset
121 \caption{10 bytes のデータを 100 周させたときの 1 周にかかる平均時間}
675939a7f983 change experiment picture
sugi
parents: 16
diff changeset
122 \label{fig:compare_10B}
675939a7f983 change experiment picture
sugi
parents: 16
diff changeset
123
675939a7f983 change experiment picture
sugi
parents: 16
diff changeset
124 \begin{center}
675939a7f983 change experiment picture
sugi
parents: 16
diff changeset
125 \includegraphics[width=140mm]{images/compare_100KB.pdf}
675939a7f983 change experiment picture
sugi
parents: 16
diff changeset
126 \end{center}
675939a7f983 change experiment picture
sugi
parents: 16
diff changeset
127 \caption{100 Kbytes のデータを 100 周させたときの 1 周にかかる平均時間}
675939a7f983 change experiment picture
sugi
parents: 16
diff changeset
128 \label{fig:compare_100KB}
11
0b3e5436fa48 modify chapter5
sugi
parents: 10
diff changeset
129 \end{figure}
0b3e5436fa48 modify chapter5
sugi
parents: 10
diff changeset
130
17
675939a7f983 change experiment picture
sugi
parents: 16
diff changeset
131 10Bと100KBの両方の結果でAliceに行った改善の効果を確認することができる。
675939a7f983 change experiment picture
sugi
parents: 16
diff changeset
132 45台を使用した実験では10Bの小さいパットの場合では17%、100KBの大きいパケットの場合では12%程度高速化することができた。
675939a7f983 change experiment picture
sugi
parents: 16
diff changeset
133 Federated Lindaと改善後の比較では、10Bの場合でAliceのほうが20%程遅い。しかし、100KBの場合ほとんど差がないことがわかる。
10
198cebfd31a3 modify chapter5
sugi
parents: 0
diff changeset
134
25
sugi
parents: 19
diff changeset
135 \subsubsection{TCP\_NODELAY有無の比較}
sugi
parents: 19
diff changeset
136 TCPはデフォルトで、Nagleアルゴリズムを使用している。Nagleアルゴリズムは、小さいパケットを集めてまとめて送信することで、送信するパケット数を減らし効率性をあげるアルゴリズムである。このアルゴリズムの有無により実験結果に影響はないことを確認した。
11
0b3e5436fa48 modify chapter5
sugi
parents: 10
diff changeset
137
12
ddab34e04068 add pdf and modify chapter2
sugi
parents: 11
diff changeset
138 \section{考察}
17
675939a7f983 change experiment picture
sugi
parents: 16
diff changeset
139 今回の結果から、Aliceは先行研究であるFederated Lindaと同等の性能を持つことが確認できた。
675939a7f983 change experiment picture
sugi
parents: 16
diff changeset
140 また、並列性能の改善と分散性能の改善の両方に効果があることを確認できた。
675939a7f983 change experiment picture
sugi
parents: 16
diff changeset
141 両方に共通して行った改善として、複数のSEDAのステージをまとめて1つのステージにしたことがあげられる。
675939a7f983 change experiment picture
sugi
parents: 16
diff changeset
142 SEDAが実行結果に大きく影響を与えていることが分かる。
675939a7f983 change experiment picture
sugi
parents: 16
diff changeset
143
675939a7f983 change experiment picture
sugi
parents: 16
diff changeset
144 10Bの実験でFederated Lindaに及ばない理由としてもSEDAが原因と考えられる。
675939a7f983 change experiment picture
sugi
parents: 16
diff changeset
145 リングの実験は並列処理を行なう部分がないシーケンシャルな実験であるため、全ての処理は直列的に実行される。SEDAによるThreadの切り替えが発生する分Aliceの実行速度は遅くなる。
31
819eedb5189e add poster
sugi
parents: 30
diff changeset
146 100KBの実験ではData Segmentの送受信にかかる時間に比べ、Threadの切り替えの時間が無視できる程度小さいため、Federated Lindaと同等の性能になったと考えられる。
17
675939a7f983 change experiment picture
sugi
parents: 16
diff changeset
147
31
819eedb5189e add poster
sugi
parents: 30
diff changeset
148 動的なトポロジーの対応、MMORPGで必要とされる切断時と再接続時の処理のAPIも正しく動作することを確認できた。以上からAliceには実用的なアプリケーションを記述する能力があると考えられる。
12
ddab34e04068 add pdf and modify chapter2
sugi
parents: 11
diff changeset
149
11
0b3e5436fa48 modify chapter5
sugi
parents: 10
diff changeset
150 \section{TreeVNCとのCodeの比較}
27
a27c97e0bb15 add appendix
sugi
parents: 25
diff changeset
151 ここでは授業向け画面共有システムであるTreeVNCとそれをAlice上で実装したAliceVNCをソースコードの面から比較した。
17
675939a7f983 change experiment picture
sugi
parents: 16
diff changeset
152 TreeVNCとAliceVNCのソースコードに対してwcを行い、TightVNCからどの程度コードが増加しているかを調べた。(表\ref {tb:diffwordCount})
11
0b3e5436fa48 modify chapter5
sugi
parents: 10
diff changeset
153
17
675939a7f983 change experiment picture
sugi
parents: 16
diff changeset
154 \begin{table}[htbp]
675939a7f983 change experiment picture
sugi
parents: 16
diff changeset
155 \begin{center}
675939a7f983 change experiment picture
sugi
parents: 16
diff changeset
156 \begin{tabular} {|l|r|r|}
675939a7f983 change experiment picture
sugi
parents: 16
diff changeset
157 \hline
675939a7f983 change experiment picture
sugi
parents: 16
diff changeset
158 {\bf }&行数&単語数\\
675939a7f983 change experiment picture
sugi
parents: 16
diff changeset
159 \hline
675939a7f983 change experiment picture
sugi
parents: 16
diff changeset
160 {\bf TreeVNC}&5049&14191\\
675939a7f983 change experiment picture
sugi
parents: 16
diff changeset
161 \hline
675939a7f983 change experiment picture
sugi
parents: 16
diff changeset
162 {\bf AliceVNC}&989&2355\\
675939a7f983 change experiment picture
sugi
parents: 16
diff changeset
163 \hline
675939a7f983 change experiment picture
sugi
parents: 16
diff changeset
164 \end{tabular}
675939a7f983 change experiment picture
sugi
parents: 16
diff changeset
165 \end{center}
675939a7f983 change experiment picture
sugi
parents: 16
diff changeset
166 \caption{コードの増加量}
675939a7f983 change experiment picture
sugi
parents: 16
diff changeset
167 \label{tb:diffwordCount}
675939a7f983 change experiment picture
sugi
parents: 16
diff changeset
168 \end{table}
675939a7f983 change experiment picture
sugi
parents: 16
diff changeset
169
25
sugi
parents: 19
diff changeset
170 AliceVNCはTreeVNCの20\%の行数で記述できることがわかる。コード量が少なければ管理する手間が少ないためプログラマー負担を減らすことができる。つまり、Aliceを使うことでプログラマーの負担を80\%減らすことができる。