changeset 25:74b746ef4a03

fix
author Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
date Tue, 22 Apr 2014 19:42:50 +0900
parents 84383e5e2e85
children 8aa74d158f4b
files experiment.txt paper/benchmark.tex paper/cerium.tex paper/images/ceriumtaskmanager.pdf paper/images/ceriumtaskmanager.xbb paper/io.tex paper/sigos.pdf paper/sigos.tex
diffstat 8 files changed, 39 insertions(+), 72 deletions(-) [+]
line wrap: on
line diff
--- a/experiment.txt	Tue Apr 22 17:53:33 2014 +0900
+++ b/experiment.txt	Tue Apr 22 19:42:50 2014 +0900
@@ -1,7 +1,6 @@
 [実験結果]
     word count の再計測
 
-
     ファイルサイズ:1GB
     cpu num : 可変
     division size : 128KB
--- a/paper/benchmark.tex	Tue Apr 22 17:53:33 2014 +0900
+++ b/paper/benchmark.tex	Tue Apr 22 19:42:50 2014 +0900
@@ -1,6 +1,6 @@
 \section{Benchmark} \label{section:benchmark}
 
-例題で紹介した Word Count に Blocked Read を組み込み、1 GB のファイルで計測を行った。
+例題で紹介した WordCount に Blocked Read を組み込み、1 GB のファイルで計測を行った。
 
 実験環境
 \begin{itemize}
@@ -16,7 +16,7 @@
 
 \subsection{結果}
 
-CPU 数を変化させたときの結果を以下に示す。
+CPU 数を変化させたときの結果を以下に示す。以下の数値の単位は全て秒である。
 
 \begin{tiny}
   \begin{table}[ht]
@@ -36,45 +36,37 @@
         bread \& IO\_0    & 13.930 & 14.634 & 14.774 & 10.295 \\
         \hline
       \end{tabular}
-      \caption{読み込みを含めた実行結果}
+      \caption{読み込みを含めた実行結果(divide size 128KB)}
     \end{center}
   \end{table}
 \end{tiny}
 
+WordCount 1つの読み込み量だけ変更してみた。 
+16KBに変更して、 CPU 数を変化させたときを計測してみた。
+結果は以下に示す。
 
-\if0
 \begin{tiny}
   \begin{table}[ht]
     \begin{center}
       \label{table:result}
       \small
-      \begin{tabular}[t]{c|c|r}
+      \begin{tabular}[t]{c|c|c|c|c}
         \hline
-        読み込み方法 & CPU & 実行速度(s)\\
-                     & num & \\
+        読み込み方法 & CPU 1 & CPU 4 & CPU 8 & CPU 12\\
         \hline
-        mmap &1 & 15.294 \\
-        \hline
-        mmap &12 & 15.875 \\
+        mmap            & 15.353 & 11.287 & 11.707 & 11.137 \\
         \hline
-        Read &1 & 18.758 \\
-        \hline
-        Read &12 & 12.520 \\
-        \hline
-        Blocked Read \& SPE\_ANY & 1 & 18.531 \\
+        read            & 16.846 & 11.730 & 11.487 & 11.437 \\
         \hline
-        Blocked Read \& SPE\_ANY &12 & 14.028 \\
+        bread \& SPE\_ANY & 13.297 & 11.984 & 10.887 & 11.146 \\
         \hline
-        Blocked Read \& IO\_0 & 1  & 13.950 \\
-        \hline
-        Blocked Read \& IO\_0 &12 & 10.295 \\
+        bread \& IO\_0    & 11.503 & 11.437 & 11.365 & 11.412 \\
         \hline
       \end{tabular}
-      \caption{読み込みを含めた実行結果(divide size 128KB)}
+      \caption{読み込みを含めた実行結果(divide size 16KB)}
     \end{center}
   \end{table}
 \end{tiny}
-\fi
 
 また、キャッシュに入った場合での実行結果を以下に示す。
 
@@ -101,39 +93,16 @@
 
 \newpage
 
-WordCount 1つの読み込み量 16KB の状態で、 CPU 数を変化させたときの結果を以下に示す。
-
-\begin{tiny}
-  \begin{table}[ht]
-    \begin{center}
-      \label{table:result}
-      \small
-      \begin{tabular}[t]{c|c|c|c|c}
-        \hline
-        読み込み方法 & CPU 1 & CPU 4 & CPU 8 & CPU 12\\
-        \hline
-        mmap            & 15.353 & 11.287 & 11.707 & 11.137 \\
-        \hline
-        read            & 16.846 & 11.730 & 11.487 & 11.437 \\
-        \hline
-        bread \& SPE\_ANY & 13.297 & 11.984 & 10.887 & 11.146 \\
-        \hline
-        bread \& IO\_0    & 11.503 & 11.437 & 11.365 & 11.412 \\
-        \hline
-      \end{tabular}
-      \caption{読み込みを含めた実行結果(divide size 16KB)}
-    \end{center}
-  \end{table}
-\end{tiny}
-
-読み込みを含めた場合の実験結果より、Blocked Read \& IO\_0 の実行速度が mmap と比較して 1.55 倍向上した。
-また、Blocked Read の CPU Type も SPE\_ANY から IO\_0 に変更することによって 1.36 倍向上した。
-% mmap だとそれぞれの WordCount の Task が実行されるときに、処理される範囲の読み込みが行われるので、I/O ネックでうまく並列に走ることができずに
+divide size が 128KB のときの読み込みを含めた場合の実験結果より、Blocked Read \& IO\_0 の実行速度が mmap と比較して 1.55 倍向上した。
+また、Blocked Read の CPU Type も \verb+SPE_ANY+ から \verb+IO_0+ に変更することによって 1.36 倍向上した。
 Blocked Read で WordCount Task と Read Task を分離させた。
 Blocked Read Task がファイル読み込みを行っている間も、WordCount Task は読み込んだ範囲に対して並列処理を行うことができた。
 その結果、mmap より速く WordCount 処理を行うことができたと考える。
 
-キャッシュに入った時は、mmap のほうが一括 Read と比較して 1.67 倍速くなる。そして、mmap と Blocked Read と mmap は、ほとんど同じ実行速度となった。
+しかし、divide size が 16 KB のとき、128KB よりも全体的に速い。CPU 12 のときはほとんど同じ結果を示した。また、CPU の数を 4 以上に設定してもほとんど変化が見られなかった。
+
+キャッシュに入った時は、mmap のほうが Read と比較して 1.67 倍速くなる。そして、mmap と Blocked Read と mmap は、ほとんど同じ実行速度となった。
+
 
 
 %\subsection{考察}
--- a/paper/cerium.tex	Tue Apr 22 17:53:33 2014 +0900
+++ b/paper/cerium.tex	Tue Apr 22 19:42:50 2014 +0900
@@ -7,8 +7,9 @@
 Cerium Task Manager は PlayStation 3/Cell、Mac OS X 及び Linux 上で利用することが可能である。
 
 図\ref{fig:cerium} は Cerium が Task を作成・実行する場合のクラスの構成となる。User が createtask を行い、input data や Task の依存関係の設定を行うと、TaskManager で Task が生成される。
-Task 毎に依存関係を表す wait\_i と wait\_me というリストがあり、依存関係が解消されて実行可能になった Task は ActiveTaskList に移される。さらに、Scheduler に転送する際には TaskList に変換を行ってから各 Scheduler に転送される。
-
+Task Manager で依存関係が解消されて、実行可能になった Task は ActiveTaskList に移される。
+ActiveTaskList に移された Task は依存関係が存在しないのでどのような順序で実行されてもよい。
+Task は Scheduler に転送しやすい TaskList に変換してからデバイスに対応する Scheduler に Synchronized Queue である mail を通して転送される。
 \begin{figure}[htbp]
 \begin{center}
 \includegraphics[scale=0.3]{images/ceriumtaskmanager.pdf}
@@ -17,8 +18,6 @@
 \label{fig:cerium}
 \end{figure}
 
-\newpage
-
 \subsection{Cerium Task Manager を使った例題}
 今回計測に使用した例題 WordCount を例にとり、以下に Task の生成部分を以下に示す。
 このプログラムは、WordCount Task と Print Task の2種類の Task から構成される。
@@ -73,11 +72,11 @@
 
 単語数 3 の例文「I'm so happy.」の o 直後に分割される場合を図\ref{fig:dividepoint}に示す。
 
-wc Task 1 は "I'm" "so" の 単語に見えるが、"so" は単語の途中で分割された可能性がある。1 つの単語かどうかわからないので、wc Task 1 の単語数は 1 となる。
+wc Task 1 は ``I'm" ``so" の 単語に見えるが、``so" は単語の途中で分割された可能性がある。1 つの単語かどうかわからないので、wc Task 1 の単語数は 1 となる。
 
-wc Task 2 は "happy." だけなので、単語数は 1 となり、 合計単語数が 2 となってしまう。
+wc Task 2 は ``happy." だけなので、単語数は 1 となり、 合計単語数が 2 となってしまう。
 
-wc Task 1 の "so" を単語として認識させるには、wc Task 2 の先頭が空白か改行である必要がある。
+wc Task 1 の ``so" を単語として認識させるには、wc Task 2 の先頭が空白か改行である必要がある。
 しかし、wc Task 内では隣接した Task の情報がわからないので、各 Task の先頭と末尾の状態を持たせて、最後の集計のときに整合させる必要がある。
 
 このように単語の終わりでファイル分割されたとき、その分割ファイルの末尾が空白か改行以外の文字列であり、そして、隣接した分割ファイルの先頭が空白か改行であれば、単語として認識される。
Binary file paper/images/ceriumtaskmanager.pdf has changed
--- a/paper/images/ceriumtaskmanager.xbb	Tue Apr 22 17:53:33 2014 +0900
+++ b/paper/images/ceriumtaskmanager.xbb	Tue Apr 22 19:42:50 2014 +0900
@@ -1,8 +1,8 @@
 %%Title: ./images/ceriumtaskmanager.pdf
 %%Creator: extractbb 20130405
-%%BoundingBox: 0 0 675 419
-%%HiResBoundingBox: 0.000000 0.000000 675.000000 419.000000
+%%BoundingBox: 0 0 512 391
+%%HiResBoundingBox: 0.000000 0.000000 512.000000 391.000000
 %%PDFVersion: 1.3
 %%Pages: 1
-%%CreationDate: Tue Apr 22 15:23:37 2014
+%%CreationDate: Tue Apr 22 18:46:36 2014
 
--- a/paper/io.tex	Tue Apr 22 17:53:33 2014 +0900
+++ b/paper/io.tex	Tue Apr 22 19:42:50 2014 +0900
@@ -188,8 +188,8 @@
 % \end{verbatim}
 
 \verb+set_cpu+ にて Read Task を担当するデバイスの設定を行う。
-\verb+set_outData(0)+ にファイルを読み込んだときの格納場所を指定し、\verb+set\_param(0)+ にて読み込むファイルディスクリプタを設定している。
-\verb+set_param(1)+ 、\verb+set\_param(2)+にて Blocked Read Task 単体で読み込むファイルの範囲の先頭と末尾のポジションを設定する。
+\verb+set_outData(0)+ にファイルを読み込んだときの格納場所を指定し、\verb+set_param(0)+ にて読み込むファイルディスクリプタを設定している。
+\verb+set_param(1)+ 、\verb+set_param(2)+にて Blocked Read Task 単体で読み込むファイルの範囲の先頭と末尾のポジションを設定する。
 
 Cerium の Task は、最初に WordCount に必要な Task を全部起動してしまうと、そのTaskを表すデータ構造自体がメモリを消費してしまう。
 そこで、既にある程度の量の Task を起動し、それが終了してから(正確には、終了する前に)次のTaskを生成するようになっている。
@@ -246,7 +246,7 @@
 \verb+IO_0+ は、\verb+SPE_ANY+ とは、別なスレッド動いているスケジューラーで動くので、
 \verb+SPE_ANY+ で動いている WordCount に割り込まれることはない。
 しかし、読み込みが完了した時に、その完了を通知し、次の read を行う時に、他の計算スレッドにスレッドレベルで割り込まれてしまうと、全体の計算が待たされてしまう。
-そこで、 \verb+pthread\_getschedparam()+で\verb+IO_0+ の priority を設定している。
+そこで、 \verb+pthread_getschedparam()+で\verb+IO_0+ の priority を設定している。
 IO thread は計算はほとんどしないので、高い優先順位を割り当てても他の計算を行うスレッドには影響しない。
 IOを含む処理では IOを行うスレッドの優先順位を高くする必要があるということである。
 (図\ref{fig:io0})
Binary file paper/sigos.pdf has changed
--- a/paper/sigos.tex	Tue Apr 22 17:53:33 2014 +0900
+++ b/paper/sigos.tex	Tue Apr 22 19:42:50 2014 +0900
@@ -12,7 +12,7 @@
 % 和文表題
 \title{Cerium による並列処理向け I/O の実装}
 % 英文表題
-% \etitle{}
+\etitle{Implement asynchronous read of Cerium}
 
 % 所属ラベルの定義
 \affilabel{1}{琉球大学理工学研究科情報工学専攻 \\Interdisciplinary Infomation Engineering, Graduate School of Engineering and Science, University of the Ryukyus.}
@@ -25,10 +25,10 @@
 }
 
 % 英文著者名
-% \eauthor{
-%   Yuhi TOMARI\affiref{1}\and
-%   Shinji KONO\affiref{2}
-% }
+\eauthor{
+  Masataka KOHAGURA\affiref{1}\and
+  Shinji KONO\affiref{2}
+}
 
 % 連絡先(投稿時に必要.製版用では無視される.)
 \contact{古波倉 正隆\\
@@ -48,9 +48,9 @@
 \end{abstract}
 % 英文概要
 \begin{eabstract}
-We are developping a Parallel task manager Cerium.
-With I/O, speciall care is necessary to work with parallel processing.
-It is easy to use mmap system call to read from file parallely, but
+We are developing a Parallel task manager Cerium.
+With I/O, special care is necessary to work with parallel processing.
+It is easy to use mmap system call to read from file parallelly, but
 current implementation of mmap sometimes does work well.
 So we implement asynchronous read thread with high priority.
 If the file is in a kernel file system cache, mmap and asynchronous