view paper/benchmark.tex @ 6:515f8d6a972f

add benchmark
author Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
date Sat, 19 Apr 2014 23:40:28 +0900
parents b15b449619b1
children 24384cb335cf
line wrap: on
line source

\section{benchmark} \label{section:benchmark}

例題で紹介した Word Count に Blocked Read を組み込み、1 GB のファイルを読み込み計測を行った。

実験環境
\begin{itemize}
\item Mac OS X 10.9.1
\item 2*2.66 GHz 6-Core Intel Xeon
\item Memory 16GB 1333MHz DDR3
\item HHD 1TB
\item CPU num 12
\end{itemize}

\subsection{結果}

以下の表に読み込み時間を含めた場合の実行結果を示す。

\begin{tiny}
  \begin{table}[ht]
    \begin{center}
      \label{table:result}
      \small
      \begin{tabular}[t]{c|r}
        \hline
        読み込み方法 & 実行速度(s)\\
        \hline
        mmap & 15.875 \\
        \hline
        mmap (CPU num = 1)& 15.294 \\
        \hline
        一括 Read & 12.520 \\
        \hline
        一括 Read (CPU num = 1)& 18.758 \\
        \hline
        Blocked Read \& SPE\_ANY & 14.028 \\
        \hline
        Blocked Read \& IO\_0 & 10.295 \\
        \hline
      \end{tabular}
      \caption{読み込みを含めた実行結果}
    \end{center}
  \end{table}
\end{tiny}

また、キャッシュに入った場合での実行結果を以下に示す。

\begin{tiny}
  \begin{table}[ht]
    \begin{center}
      \label{table:result}
      \small
      \begin{tabular}[t]{c|r}
        \hline
        読み込み方法 & 実行速度(s)\\
        \hline
        mmap & 0.878 \\
        \hline
        一括 Read & 1.469 \\
        \hline
        Blocked Read \& IO\_0 & 0.866 \\
        \hline
      \end{tabular}
      \caption{キャッシュに入った時の実行結果}
    \end{center}
  \end{table}
\end{tiny}

読み込みを含めた場合の実験結果より、Blocked Read \& IO\_0 の実行速度が mmap と比較して 1.55 倍向上した。
また、Blocked Read の CPU Type も SPE\_ANY から IO\_0 に変更することによって 1.36 倍向上した。

キャッシュに入った時は、mmap のほうが一括 Read と比較して 1.67 倍速くなる。そして、mmap と Blocked Read と mmap は、ほとんど同じ実行速度となった。
\subsection{考察}

% mmap より Blocked Read で実装したほうが速くなったが、これは mmap の読み込み方法が問題であると考える。
% 
% I/O を含む例題の場合、シングルコアでの逐次実行であれば、mmap や pread で実装しても、Task は 読み込みを行って文字列検索を行うというシンプルな動作になる。
% しかし、マルチコアの並列実行であれば、mmap で実装してしまうと、Task それぞれで読み込みを行ってしまうので競合が発生してしまう。
% 
% 読み込みの競合が起こらないように Blocked Read にて読み込み部分と文字列検索部分を分けた結果、こちらのほうが速度が向上した。