view evaluation.tex @ 13:a6188b7c7278

revision
author Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
date Tue, 16 Feb 2016 18:16:04 +0900
parents
children 205805e6a6d8
line wrap: on
line source

\chapter{Gears OS の評価}
現在の Gears OS には非破壊木構造を Red-Black Tree アルゴリズムに基づいて構築する Persistent Data Tree, CAS を用いてデータの一貫性を保証する TaskQueue, TaskQueue から Task を取得し並列に実行する Worker が実装されている。
つまり、依存関係のない処理ならば並列処理することが可能である。

この章では依存関係のない簡単な例題を用いて Gears OS の評価を行う。

\section{Twice}
Twice は与えられた整数配列を2倍にする例題である。

以下の流れで処理は行われる。

\begin{itemize}
\item 配列サイズを元に index, alignment, 配列へのポインタを持つ Data Gear に分割。
\item Data Gear を Persistent Data Tree に挿入。
\item 実行する Code Gear(Twice) と実行に必要な Data Gear への key を持つ Task を生成。
\item 生成した Task を TaskQueue に挿入。
\item Worker の起動。
\item Worker が TaskQueue から Task を取得。
\item 取得した Task を元に必要な Data Gear を Persistent Data Tree から取得。
\item 並列の処理される Code Gear(Twice) を実行。
\end{itemize}

\newpage

Gears OS 上に Twice を実装し、要素数$2^{17}$*1000 のデータを640個の Task に分割してコア数を変更して測定を行なった。
結果は表:\ref{table:twice}, 図:\ref{fig:twice}の通りである。

%% \begin{table}[!h]
%%   \begin{center}
%%     \small
%%     \begin{tabular}[htpb]{|c||c|c|c|}
%%       \hline
%%       Processor & 64 Tasks(ms) & 640 Tasks(ms) & 6400 Tasks(ms) \\
%%       \hline
%%       \hline
%%       1 CPU & 1245 & 1315 & 1973 \\
%%       \hline
%%       2 CPUs & 629 & 689 & 1118 \\
%%       \hline
%%       4 CPUs & 326 & 366 & 610 \\
%%       \hline
%%       8 CPUs & 165 & 189 & 327 \\
%%       \hline
%%       12 CPUs & 121 & 111 & 114 \\
%%       \hline
%%     \end{tabular}
%%     \caption{要素数$2^{17}$*1000 のデータに対する Twice}
%%     \label{table:twice}
%%   \end{center}
%% \end{table}

\begin{table}[!h]
  \begin{center}
    \small
    \begin{tabular}[htpb]{|c||c|c|c|}
      \hline
      Processor & Time(ms) \\
      \hline
      \hline
      1 CPU & 1315 \\
      \hline
      2 CPUs & 689 \\
      \hline
      4 CPUs & 366 \\
      \hline
      8 CPUs & 189 \\
      \hline
      12 CPUs & 111 \\
      \hline
    \end{tabular}
    \caption{要素数$2^{17}$*1000 のデータに対する Twice}
    \label{table:twice}
  \end{center}
\end{table}

\begin{figure}[!h]
  \begin{center}
    \includegraphics[scale=0.9]{images/twice_640.pdf}
  \end{center}
  \caption{要素数$2^{17}$*1000 のデータに対する Twice}
  \label{fig:twice}
\end{figure}