changeset 32:9b7ce931cad9

fix about cerium
author Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
date Sat, 14 Feb 2015 15:50:18 +0900
parents f0060254db3f
children 417431560eed
files paper/chapter2.tex paper/master_paper.aux paper/master_paper.dvi paper/master_paper.lof paper/master_paper.log paper/master_paper.lot paper/master_paper.pdf paper/master_paper.toc
diffstat 8 files changed, 95 insertions(+), 97 deletions(-) [+]
line wrap: on
line diff
--- a/paper/chapter2.tex	Sat Feb 14 14:29:17 2015 +0900
+++ b/paper/chapter2.tex	Sat Feb 14 15:50:18 2015 +0900
@@ -7,61 +7,13 @@
 GPGPU の Data Parallel を含めて同じ形式で記述できる。
 
 CeriumはTaskManager、 SceneGraph、Rendering Engine の3つの要素から構成される。
-本研究では Cerium の TaskManager を汎用計算フレームワークとして改良を行う。
-これによりヘテロジニアス環境に対応したシステムやフレームワークに必要な API や機構について考察していく。
+本研究では Cerium の TaskManager を汎用計算フレームワークとして改良を行った。
+
 \section{Cerium TaskManager}
 Cerium TaskManager では、処理の単位を Task としてプログラムを記述していく。
 関数やサブルーチンを Task として扱い、 Task 間の依存関係を考慮しながら実行される。
-Task を生成する際に、以下のような要素を設定することができる。
 
-\begin{itemize}
-\item input data
-\item output data
-\item parameter
-\item cpu type
-\item dependency
-\end{itemize}
-
-input/output data, parameter は関数で言うところの引数に相当する。
-cpu type は Task が動作する Device を示し、 dependency は他の Task との依存関係を表す。
-
-\section{Cerium における Task}
-図:\ref{fig:taskmanager}は Cerium が Task を生成/実行する場合のクラスの構成図である。
-TaskManager で依存関係が解消され、実行可能になった Task は ActiveTaskList に移される。
-ActiveTaskList に移された Task は依存関係が存在しないのでどのような順番で実行されても良い。
-Task は転送を行いやすい TaskList に変換され、cpu type に対応した Scheduler に転送される。
-なお、転送はSynchronozed Queue である mail を通して行われる。
-
-
-\begin{figure}[htpb]
-  \begin{center}
-    \includegraphics[scale=0.7]{./images/createTask.pdf}
-  \end{center}
-  \caption{Task Manager}
-  \label{fig:taskmanager}
-\end{figure}
-
-\section{Task の Scheduling}
-
-GPU や Cell のような Shared Memory でない環境でのプログラミングを行う場合、
-Task の入出力となるデータを転送し、転送が終わってから Task を起動しなければならない。
-転送処理がボトルネックとなり、並列度が低下してしまう。
-そのため、Cerium はパイプライン実行をサポートしている。
-
-Scheduler に転送された Task はパイプラインで処理される(図:\ref{fig:scheduler})。
-Task が全て終了すると Scheduler から TaskManager に mail を通して通知される。
-通知に従い依存関係を解決した Task が再び TaskManager から Scheduler に転送される。
-
-\begin{figure}[htpb]
-  \begin{center}
-    \includegraphics[scale=0.7]{./images/scheduler.pdf}
-  \end{center}
-  \caption{Scheduler}
-  \label{fig:scheduler}
-\end{figure}
-\newpage
-\section{Task 生成の例}
-ソースコード:\ref{src:createTask}に Task を生成する例題を示す。
+ソースコード:\ref{src:createTask}に Host 側で Task を生成する例題を示す。
 input data を2つ用意し、 input data の各要素同士を乗算し、
 output に格納する multiply という例題である。
 
@@ -92,7 +44,8 @@
 \end{lstlisting}
 
 表:\ref{table:task_create_api}は Task 生成時に用いる API の一覧である。
-create された Task は各種パラメタを設定し、spawn/iterate することで TaskManager に登録される。
+create された Task は Input Data や 依存関係を設定し、
+spawn することで TaskManager に登録される。
 
 \begin{tiny}
   \begin{table}[htpb]
@@ -119,8 +72,7 @@
   \end{table}
 \end{tiny}
 
-ソースコード:\ref{src:createTask}は Host 側で Task を生成しているプログラムである。
-Device 側で実行される Task (OpenCL、CUDA でいう kernel) の記述はソースコード:\ref{src:task}のようになる。
+次に、ソースコード:\ref{src:task} に Device 側で実行される Task (OpenCL、CUDA でいう kernel) の記述を示す。
 
 \begin{lstlisting}[frame=lrbt,label=src:task,caption=Task,numbers=left]
 static int
@@ -142,6 +94,7 @@
 \end{lstlisting}
 
 表:\ref{table:task_api}は Task 側で使用する API である。
+Host 側で設定した Input Data やパラメタを取得することができる。
 
 \begin{tiny}
   \begin{table}[htpb]
@@ -161,3 +114,50 @@
     \end{center}
   \end{table}
 \end{tiny}
+
+Task を生成する際に設定できる要素は以下の通りとなる。
+
+\begin{itemize}
+\item Input Data
+\item Output Data
+\item Parameter
+\item CpuType
+\item Dependency
+\end{itemize}
+
+Input/Output Data, Parameter は関数で言うところの引数に相当する。
+CpuType は Task が動作する Device を示し、 Dependency は他の Task との依存関係を表す。
+
+\section{Cerium における Task}
+図:\ref{fig:taskmanager}は Cerium が Task を生成/実行する場合のクラスの構成図である。
+TaskManager で依存関係が解消され、実行可能になった Task は ActiveTaskList に移される。
+ActiveTaskList に移された Task は依存関係が存在しないのでどのような順番で実行されても良い。
+Task は転送を行いやすい TaskList に変換され、CpuType に対応した Scheduler に転送される。
+なお、転送はSynchronozed Queue である mail を通して行われる。
+
+\begin{figure}[htpb]
+  \begin{center}
+    \includegraphics[scale=0.7]{./images/createTask.pdf}
+  \end{center}
+  \caption{Task Manager}
+  \label{fig:taskmanager}
+\end{figure}
+
+\section{Task の Scheduling}
+
+GPU や Cell のような Shared Memory でない環境でのプログラミングを行う場合、
+Task の入出力となるデータを転送し、転送が終わってから Task を起動しなければならない。
+転送処理がボトルネックとなり、並列度が低下してしまう。
+そのため、Cerium はパイプライン実行をサポートしている。
+
+Scheduler に転送された Task はパイプラインで処理される(図:\ref{fig:scheduler})。
+Task が全て終了すると Scheduler から TaskManager に mail を通して通知される。
+通知に従い依存関係を解決した Task が再び TaskManager から Scheduler に転送される。
+
+\begin{figure}[htpb]
+  \begin{center}
+    \includegraphics[scale=0.7]{./images/scheduler.pdf}
+  \end{center}
+  \caption{Scheduler}
+  \label{fig:scheduler}
+\end{figure}
--- a/paper/master_paper.aux	Sat Feb 14 14:29:17 2015 +0900
+++ b/paper/master_paper.aux	Sat Feb 14 15:50:18 2015 +0900
@@ -21,21 +21,20 @@
 \@writefile{lot}{\addvspace {10\p@ }}
 \@writefile{toc}{\contentsline {section}{\numberline {3.1}Cerium の概要}{7}}
 \@writefile{toc}{\contentsline {section}{\numberline {3.2}Cerium TaskManager}{7}}
-\@writefile{toc}{\contentsline {section}{\numberline {3.3}Cerium における Task}{8}}
-\@writefile{lof}{\contentsline {figure}{\numberline {3.1}{\ignorespaces Task Manager}}{8}}
-\newlabel{fig:taskmanager}{{3.1}{8}}
-\@writefile{toc}{\contentsline {section}{\numberline {3.4}Task の Scheduling}{8}}
-\@writefile{lof}{\contentsline {figure}{\numberline {3.2}{\ignorespaces Scheduler}}{9}}
-\newlabel{fig:scheduler}{{3.2}{9}}
-\@writefile{toc}{\contentsline {section}{\numberline {3.5}Task 生成の例}{9}}
-\newlabel{src:createTask}{{3.1}{9}}
-\@writefile{lol}{\contentsline {lstlisting}{\numberline {3.1}Task の生成}{9}}
-\@writefile{lot}{\contentsline {table}{\numberline {3.1}{\ignorespaces Task 生成おける API}}{10}}
-\newlabel{table:task_create_api}{{3.1}{10}}
-\newlabel{src:task}{{3.2}{10}}
-\@writefile{lol}{\contentsline {lstlisting}{\numberline {3.2}Task}{10}}
-\@writefile{lot}{\contentsline {table}{\numberline {3.2}{\ignorespaces Task 側で使用する API}}{10}}
-\newlabel{table:task_api}{{3.2}{10}}
+\newlabel{src:createTask}{{3.1}{7}}
+\@writefile{lol}{\contentsline {lstlisting}{\numberline {3.1}Task の生成}{7}}
+\@writefile{lot}{\contentsline {table}{\numberline {3.1}{\ignorespaces Task 生成おける API}}{8}}
+\newlabel{table:task_create_api}{{3.1}{8}}
+\newlabel{src:task}{{3.2}{8}}
+\@writefile{lol}{\contentsline {lstlisting}{\numberline {3.2}Task}{8}}
+\@writefile{lot}{\contentsline {table}{\numberline {3.2}{\ignorespaces Task 側で使用する API}}{8}}
+\newlabel{table:task_api}{{3.2}{8}}
+\@writefile{toc}{\contentsline {section}{\numberline {3.3}Cerium における Task}{9}}
+\@writefile{lof}{\contentsline {figure}{\numberline {3.1}{\ignorespaces Task Manager}}{9}}
+\newlabel{fig:taskmanager}{{3.1}{9}}
+\@writefile{toc}{\contentsline {section}{\numberline {3.4}Task の Scheduling}{10}}
+\@writefile{lof}{\contentsline {figure}{\numberline {3.2}{\ignorespaces Scheduler}}{10}}
+\newlabel{fig:scheduler}{{3.2}{10}}
 \@writefile{toc}{\contentsline {chapter}{\numberline {第4章}Ceriumを用いた例題}{11}}
 \@writefile{lof}{\addvspace {10\p@ }}
 \@writefile{lot}{\addvspace {10\p@ }}
Binary file paper/master_paper.dvi has changed
--- a/paper/master_paper.lof	Sat Feb 14 14:29:17 2015 +0900
+++ b/paper/master_paper.lof	Sat Feb 14 15:50:18 2015 +0900
@@ -3,8 +3,8 @@
 \contentsline {figure}{\numberline {2.1}{\ignorespaces GPU Architecture}}{4}
 \contentsline {figure}{\numberline {2.2}{\ignorespaces CPU Architecture}}{4}
 \addvspace {10\p@ }
-\contentsline {figure}{\numberline {3.1}{\ignorespaces Task Manager}}{8}
-\contentsline {figure}{\numberline {3.2}{\ignorespaces Scheduler}}{9}
+\contentsline {figure}{\numberline {3.1}{\ignorespaces Task Manager}}{9}
+\contentsline {figure}{\numberline {3.2}{\ignorespaces Scheduler}}{10}
 \addvspace {10\p@ }
 \contentsline {figure}{\numberline {4.1}{\ignorespaces Bitonic Sort の例}}{12}
 \contentsline {figure}{\numberline {4.2}{\ignorespaces WordCountのフロー}}{14}
--- a/paper/master_paper.log	Sat Feb 14 14:29:17 2015 +0900
+++ b/paper/master_paper.log	Sat Feb 14 15:50:18 2015 +0900
@@ -1,4 +1,4 @@
-This is e-pTeX, Version 3.1415926-p3.4-110825-2.6 (utf8.euc) (TeX Live 2013) (format=platex 2013.5.30)  14 FEB 2015 14:28
+This is e-pTeX, Version 3.1415926-p3.4-110825-2.6 (utf8.euc) (TeX Live 2013) (format=platex 2013.5.30)  14 FEB 2015 15:34
 entering extended mode
  \write18 enabled.
  %&-line parsing enabled.
@@ -294,40 +294,40 @@
  <images/emblem-bitmap.eps>
 [6]
 第 3 章(7ページ)
-[7
-
-]
-File: ./images/createTask.pdf Graphic file (type pdf)
- <./images/createTask.pdf>
-File: ./images/scheduler.pdf Graphic file (type pdf)
- <./images/scheduler.pdf>
-File: images/emblem-bitmap.eps Graphic file (type eps)
-
-<images/emblem-bitmap.eps> [8]
 
 LaTeX Font Warning: Font shape `JT1/mc/m/it' undefined
-(Font)              using `JT1/mc/m/n' instead on input line 72.
+(Font)              using `JT1/mc/m/n' instead on input line 24.
 
 
 LaTeX Font Warning: Font shape `JY1/mc/m/it' undefined
-(Font)              using `JY1/mc/m/n' instead on input line 72.
+(Font)              using `JY1/mc/m/n' instead on input line 24.
 
 LaTeX Font Info:    External font `cmex10' loaded for size
-(Font)              <7> on input line 73.
+(Font)              <7> on input line 25.
 LaTeX Font Info:    External font `cmex10' loaded for size
-(Font)              <5> on input line 73.
-LaTeX Font Info:    Try loading font information for OML+cmr on input line 73.
+(Font)              <5> on input line 25.
+LaTeX Font Info:    Try loading font information for OML+cmr on input line 25.
 (/usr/local/share/texlive/2013/texmf-dist/tex/latex/base/omlcmr.fd
 File: omlcmr.fd 1999/05/25 v2.5h Standard LaTeX font definitions
 )
 LaTeX Font Info:    Font shape `OML/cmr/m/n' in size <10> not available
-(Font)              Font shape `OML/cmm/m/it' tried instead on input line 73.
+(Font)              Font shape `OML/cmm/m/it' tried instead on input line 25.
+ [7
+
+]
 File: images/emblem-bitmap.eps Graphic file (type eps)
 
-<images/emblem-bitmap.eps> [9]) (./chapter3.tex
+<images/emblem-bitmap.eps> [8]
+File: ./images/createTask.pdf Graphic file (type pdf)
+ <./images/createTask.pdf>
 File: images/emblem-bitmap.eps Graphic file (type eps)
- <images/emblem-bitmap.eps>
-[10]
+
+<images/emblem-bitmap.eps> [9]
+File: ./images/scheduler.pdf Graphic file (type pdf)
+ <./images/scheduler.pdf>) (./chapter3.tex
+File: images/emblem-bitmap.eps Graphic file (type eps)
+
+<images/emblem-bitmap.eps> [10]
 第 4 章(11ページ)
 [11
 
@@ -464,4 +464,4 @@
  745 hyphenation exceptions out of 8191
  33i,12n,40p,207b,1888s stack positions out of 5000i,500n,10000p,200000b,80000s
 
-Output written on master_paper.dvi (43 pages, 122168 bytes).
+Output written on master_paper.dvi (43 pages, 121412 bytes).
--- a/paper/master_paper.lot	Sat Feb 14 14:29:17 2015 +0900
+++ b/paper/master_paper.lot	Sat Feb 14 15:50:18 2015 +0900
@@ -1,8 +1,8 @@
 \addvspace {10\p@ }
 \addvspace {10\p@ }
 \addvspace {10\p@ }
-\contentsline {table}{\numberline {3.1}{\ignorespaces Task 生成おける API}}{10}
-\contentsline {table}{\numberline {3.2}{\ignorespaces Task 側で使用する API}}{10}
+\contentsline {table}{\numberline {3.1}{\ignorespaces Task 生成おける API}}{8}
+\contentsline {table}{\numberline {3.2}{\ignorespaces Task 側で使用する API}}{8}
 \addvspace {10\p@ }
 \addvspace {10\p@ }
 \addvspace {10\p@ }
Binary file paper/master_paper.pdf has changed
--- a/paper/master_paper.toc	Sat Feb 14 14:29:17 2015 +0900
+++ b/paper/master_paper.toc	Sat Feb 14 15:50:18 2015 +0900
@@ -7,9 +7,8 @@
 \contentsline {chapter}{\numberline {第3章}並列プログラミングフレームワーク Cerium}{7}
 \contentsline {section}{\numberline {3.1}Cerium の概要}{7}
 \contentsline {section}{\numberline {3.2}Cerium TaskManager}{7}
-\contentsline {section}{\numberline {3.3}Cerium における Task}{8}
-\contentsline {section}{\numberline {3.4}Task の Scheduling}{8}
-\contentsline {section}{\numberline {3.5}Task 生成の例}{9}
+\contentsline {section}{\numberline {3.3}Cerium における Task}{9}
+\contentsline {section}{\numberline {3.4}Task の Scheduling}{10}
 \contentsline {chapter}{\numberline {第4章}Ceriumを用いた例題}{11}
 \contentsline {section}{\numberline {4.1}Bitonic Sort}{11}
 \contentsline {section}{\numberline {4.2}Word Count}{13}