Mercurial > hg > Papers > 2016 > kkb-master
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}