view compare.tex @ 3:7482647c66ec

minor change
author sugi
date Mon, 01 Apr 2013 18:44:41 +0900
parents ddd5a624bb7a
children 715578f76084
line wrap: on
line source

\section{実験}

\subsection{実験環境}
今回はSEDAが非力なマシーンでは動作しないことを考慮して、メニコア環境で実験を行った。

\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{実験概要}
今回それぞれの改善案の効果を調査するために以下の3つの実験を行った。
\subsubsection{実験1}
LocalからData Segmentを取得するCode Segmentを10000回実行される時間を計測する。
SEDAを使用した場合と、しない場合の2つの比較を行い、その効果を測定する。

\subsubsection{実験2}
Local にData Segmentを10000回追加するのにかかる時間を計測する。
flipコマンドを使用して追加する場合と、putコマンドを使用して追加する場合の2つの比較を行う。

\subsubsection{実験3}
bitonic sortにより、100万の要素をもつ配列のSortにかかる時間を計測する。分割数は10個で行った。
今回改善を行う前と後を比較し今回のどの程度、速度改善が行われたかを調べる。


\subsection{実験結果}
\begin{table}[htbp]
\caption{実験1の結果}
\label{tb:result1}
\begin{center}
\begin{tabular}{|l|l|l|}
\hline
 SEDA& あり & なし \\ 
 \hline
 実行時間 (ms)& 27.72 & 7.53 \\ 
\hline
\end{tabular} 
\end{center}
\end{table}
SEDAを使わずにコマンドを処理する方が約3.7倍差が見られた。

\begin{table}[htbp]
\caption{実験2の結果}
\label{tb:result1}
\begin{center}
\begin{tabular}{|l|l|l|}
\hline
Command & flip & put \\ 
 \hline
 実行時間 (ms)& 61.12 & 65.24 \\ 
\hline
\end{tabular} 
\end{center}
\end{table}

flipを使う方が若干ではあるが速度改善が見られる。

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

\subsection{考察}
実験の結果より今回の改善により、約10\%程Aliceの速度改善を行うことができた。この差のほとんどがSEDAから来ていると推測される。
LinkedBlockingQueueを使ったSEDAの実装は、コストが高くレスポンスを求めるには不向きであることがわかった。