diff paper/chapter5.tex @ 17:675939a7f983

change experiment picture
author sugi
date Fri, 23 Jan 2015 16:43:48 +0900
parents 8e0b26d962cc
children 6b470aab9a41
line wrap: on
line diff
--- a/paper/chapter5.tex	Sun Jan 18 00:23:22 2015 +0900
+++ b/paper/chapter5.tex	Fri Jan 23 16:43:48 2015 +0900
@@ -12,11 +12,9 @@
 \begin{center}
 \begin{tabular} {|l|l|}
   \hline
-  {\bf CPU}&Intel(R) Xeon(R) X5650 @2.67GHz\\
+  {\bf CPU}&Intel Xeon E5-1650 v2 @3.50GHz\\
   \hline
-  {\bf 物理コア数}&12\\
-  \hline
-  {\bf 論理コア数}&24\\
+  {\bf 物理コア数}&6\\
   \hline
   {\bf CPU キャッシュ}&12MB\\
   \hline
@@ -26,7 +24,7 @@
 \end{center}
 \end{table}
 \subsection{実験結果}
-100万の要素をもつ配列のSortにかかる時間を計測する。同時に走るCode Segmentが物理コア数と同じになるように、分割数は10個で行った。
+100万の要素をもつ配列のSortにかかる時間を計測する。同時に走るCode Segmentが物理コア数と同じになるように、分割数は4個で行った。
 
 \begin{table}[html]
 \caption{bitonic sortの結果}
@@ -36,7 +34,7 @@
 \hline
  & 改善前 & 改善後 \\ 
  \hline
- 実行時間 (ms)& 232.7 & 131.0 \\ 
+ 実行時間 (ms)& 164.8 & 112.1 \\ 
 \hline
 \end{tabular} 
 \end{center}
@@ -74,7 +72,7 @@
 
 \begin{figure}[htbp]
   \begin{center}
-    \includegraphics[width=110mm]{images/topologyring.pdf}
+    \includegraphics[width=120mm]{images/topologyring.pdf}
   \end{center}
   \caption{100周にかかる時間を計測し、1周あたりの平均時間を求める}
   \label{fig:topologyring}
@@ -131,16 +129,25 @@
 
 \subsection{実験結果}
 \subsubsection{改善効果とFederated Lindaとの比較}
-データのサイズは4KBで実験を行った。
+データのサイズは10Bと100KBで実験を行った。10Bの結果は図\ref{fig:compare_10B}、100KBの結果は図\ref{fig:compare_100KB}である。
 \begin{figure}[htbp]
   \begin{center}
-    \includegraphics[width=140mm]{images/compare.pdf}
+    \includegraphics[width=140mm]{images/compare_10B.pdf}
   \end{center}
-  \caption{4096 bytes のデータを 100 周させたときの 1 周にかかる平均時間}
-  \label{fig:compare}
+  \caption{10 bytes のデータを 100 周させたときの 1 周にかかる平均時間}
+  \label{fig:compare_10B}
+
+  \begin{center}
+    \includegraphics[width=140mm]{images/compare_100KB.pdf}
+  \end{center}
+  \caption{100 Kbytes のデータを 100 周させたときの 1 周にかかる平均時間}
+  \label{fig:compare_100KB}
 \end{figure}
 
-改善によって24\% ほど実行速度を改善することができた。また、改善後とFederated Lindaの比較では45台の場合、0.8ms 程、Aliceが遅い。
+10Bと100KBの両方の結果でAliceに行った改善の効果を確認することができる。
+45台を使用した実験では10Bの小さいパットの場合では17%、100KBの大きいパケットの場合では12%程度高速化することができた。
+Federated Lindaと改善後の比較では、10Bの場合でAliceのほうが20%程遅い。しかし、100KBの場合ほとんど差がないことがわかる。
+\newpage
 \subsubsection{no-tcp-delay有無の比較}
 TCPはデフォルトで、Nagleアルゴリズムを使用している。Nagleアルゴリズムは、小さいパケットを集めてまとめて送信することで、送信するパケット数を減らし効率性をあげるアルゴリズムである。このアルゴリズムにより、実験結果に影響があるか調査した。
 
@@ -155,6 +162,34 @@
 図\ref{fig:TcpNoDelay}からTCP\_NODELAYにおける影響はないことがわかる。
 
 \section{考察}
+今回の結果から、Aliceは先行研究であるFederated Lindaと同等の性能を持つことが確認できた。
+また、並列性能の改善と分散性能の改善の両方に効果があることを確認できた。
+両方に共通して行った改善として、複数のSEDAのステージをまとめて1つのステージにしたことがあげられる。
+SEDAが実行結果に大きく影響を与えていることが分かる。
+
+10Bの実験でFederated Lindaに及ばない理由としてもSEDAが原因と考えられる。
+リングの実験は並列処理を行なう部分がないシーケンシャルな実験であるため、全ての処理は直列的に実行される。SEDAによるThreadの切り替えが発生する分Aliceの実行速度は遅くなる。
+100KBの実験ではData Segmentの送受信にかかる時間に比べ、Threadの切り替えの時間が無視できる程度小さいため、Federated Lindaと同じグラフとなる。
+
+AliceがFederated Lindaに対して優位な点は、マルチコアによる並列実行である。従って、複数のCode Segmentが同時に走る実験では、小さなパケットの場合でもFederated Lindaに勝つことができると予想される。
 
 \section{TreeVNCとのCodeの比較}
+TreeVNCとAliceVNCのソースコードに対してwcを行い、TightVNCからどの程度コードが増加しているかを調べた。(表\ref {tb:diffwordCount})
 
+\begin{table}[htbp]
+\begin{center}
+\begin{tabular} {|l|r|r|}
+  \hline
+   {\bf }&行数&単語数\\
+  \hline
+  {\bf TreeVNC}&5049&14191\\
+  \hline
+  {\bf AliceVNC}&989&2355\\
+  \hline
+\end{tabular}
+\end{center}
+\caption{コードの増加量}
+\label{tb:diffwordCount}
+\end{table}
+
+AliceVNCはTreeVNCの20\%の行数で記述できることがわかる。コード量が少なければ管理する手間が少ないためプログラマー負担を減らすことができる。つまり、Aliceを使うことでプログラマーの負担を20\%減らせる。
\ No newline at end of file