\chapter{分散フレームワーク Alice の評価} \label{chapter:chapter5}
この章では、Aliceを用いた実験方法等についてまとめ、第\ref{chapter:chapter4}章で行った効果の測定、先行研究であるFedarated Lindaとの性能比較を行い、評価を行なう。また、TreeVNCとAliceVNCの比較をコードの観点からも評価を行なう。

\section{並列環境の改善効果の測定}
第\ref{section:conçurrent}章 の分散環境における改善効果をbitonic sortによる実験によって測定を行なう。

\subsection{実験環境}
コア数が少ないマシンでは、同時に走るCode Segmentが少ないことから、メニコア環境で実験を行った。
\begin{table}[htbp]
\caption{実行環境の詳細}
\label{tb:MacPro}
\begin{center}
\begin{tabular} {|l|l|}
  \hline
  {\bf CPU}&Intel(R) Xeon(R) X5650 @2.67GHz\\
  \hline
  {\bf 物理コア数}&12\\
  \hline
  {\bf 論理コア数}&24\\
  \hline
  {\bf CPU キャッシュ}&12MB\\
  \hline
  {\bf Memory}&16GB\\
  \hline
\end{tabular}
\end{center}
\end{table}
\subsection{実験結果}
100万の要素をもつ配列のSortにかかる時間を計測する。同時に走るCode Segmentが物理コア数と同じになるように、分割数は10個で行った。

\begin{table}[html]
\caption{bitonic sortの結果}
\label{tb:result3}
\begin{center}
\begin{tabular}{|l|l|l|}
\hline
 & 改善前 & 改善後 \\ 
 \hline
 実行時間 (ms)& 199.38 & 184.64 \\ 
\hline
\end{tabular} 
\end{center}
\end{table}

\section{分散環境の改善効果の測定}
第\ref{section:distribute}章 の分散環境における改善効果をリングトポロジーによる実験によって測定を行なう。
また、先行研究であるFederated Lindaとの比較も行なう。

\subsection{TORQUE Resource Manager を用いた実験方法}
分散環境の実験する際に、学科にある共用のブレードサーバーを用いた。TORQUE Resource Manager (\url{http://www.adaptivecomputing.com/products/torque.php})というジョブスケジューラーによって、他の利用者とのリソースが競合しないように管理されている。

\subsubsection {TORQUE Resource Manager}
TORQUE は、1台のマスターと複数台のスレーブで構成される。(図 \ref{fig:torque})
スレーブは、マスターへ現在の自身のリソースの利用状況を報告する。

\begin{figure}[htbp]
  \begin{center}
    \includegraphics[width=80mm]{images/torque.pdf}
  \end{center}
  \caption{TORQUE の構成}
  \label{fig:torque}
\end{figure}

ユーザーはマスターを用いてTORQUEを利用する。ジョブを記述したシェルスクリプトを用意し、スケジューラーに投入する。投入するタイミングで、利用したいマシン台数、CPUコア数を指定することができる。（ソースコード \ref {src:torque}）

TORQUE は、ジョブに必要なマシンが揃い次第、受け取ったジョブを実行する。

\begin{table}[html]
\lstinputlisting[label=src:torque, caption=10台(1台あたり4コア)で走らせる例]{source/Torque.sh}
\end{table}

\subsection{実験概要}
リングのトポロジーを構成し、メッセージが 100 周する時間を計り、1周あたりの平均時間を求める実験である。(図 \ref{fig:topologyring})

\begin{figure}[htbp]
  \begin{center}
    \includegraphics[width=110mm]{images/topologyring.pdf}
  \end{center}
  \caption{100周にかかる時間を計測し、1周あたりの平均時間を求める}
  \label{fig:topologyring}
\end{figure}

実験では、トポロジーの構築時間は実験に含めてはいない。

\subsection{実験環境}
ブレードサーバー(表 \ref{tb:blade})上の仮想マシン(表 \ref{tb:virtual})による仮想クラスタ環境を用いて実験を行った。

\begin{table}[htbp]
\caption{ブレードサーバーの詳細}
\label{tb:blade}
\begin{center}
\begin{tabular} {|l|l|}
  \hline
  {\bf マシン台数}&8台\\
  \hline
  {\bf CPU}&Intel(R) Xeon(R) X5650 @ 2.67GHz\\
  \hline
  {\bf 物理コア数}&12\\
  \hline
  {\bf 論理コア数}&24\\
  \hline
  {\bf CPU キャッシュ}&12MB\\
  \hline
  {\bf Memory}&132GB\\
  \hline
\end{tabular}
\end{center}
\end{table}

\begin{table}[htbp]
\caption{仮想クラスタの詳細}
\label{tb:virtual}
\begin{center}
\begin{tabular} {|l|l|}
  \hline
  {\bf マシン台数}&48台\\
  \hline
  {\bf CPU}&Intel(R) Xeon(R) X5650 @ 2.67GHz\\
  \hline
  {\bf 物理コア数}&2\\
  \hline
  {\bf 仮想コア数}&4\\
  \hline
  {\bf CPU キャッシュ}&12MB\\
  \hline
  {\bf Memory}&8GB\\
  \hline
\end{tabular}
\end{center}
\end{table}

\subsection{実験結果}
\subsubsection{改善効果とFederated Lindaとの比較}
データのサイズは4KBで実験を行った。
\begin{figure}[htbp]
  \begin{center}
    \includegraphics[width=140mm]{images/compare.pdf}
  \end{center}
  \caption{4096 bytes のデータを 100 周させたときの 1 周にかかる平均時間}
  \label{fig:compare}
\end{figure}

改善によって24\% ほど実行速度を改善することができた。また、改善後とFederated Lindaの比較では45台の場合、0.8ms 程、Aliceが遅い。
\subsubsection{no-tcp-delay有無の比較}
TCPはデフォルトで、Nagleアルゴリズムを使用している。Nagleアルゴリズムは、小さいパケットを集めてまとめて送信することで、送信するパケット数を減らし効率性をあげるアルゴリズムである。このアルゴリズムにより、実験結果に影響があるか調査した。

\begin{figure}[htbp]
  \begin{center}
    \includegraphics[width=140mm]{images/compareTcpDelay.pdf}
  \end{center}
  \caption{TCP\_NODELAYの有無の比較}
  \label{fig:TcpNoDelay}
\end{figure}

図\ref{fig:TcpNoDelay}からTCP\_NODELAYにおける影響はないことがわかる。

\section{考察}

\section{TreeVNCとのCodeの比較}

