diff cerium.tex @ 2:bff486ef0e8c

commit
author Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
date Mon, 21 Apr 2014 03:30:37 +0900
parents a0fad656a7ea
children 2921110c23aa
line wrap: on
line diff
--- a/cerium.tex	Fri Apr 18 20:55:25 2014 +0900
+++ b/cerium.tex	Mon Apr 21 03:30:37 2014 +0900
@@ -28,11 +28,21 @@
   \label{fig:createTask}
 \end{figure}
 
-依存関係が解消され、実行可能になった Task は ActiveTaskList に移される。
-さらに、Scheduler に転送しやすい TaskList に変換してから cpy type に対応する Scheduler に転送される。
-Task が終了すると Scheduler から TaskManager に通知される。
-その通知に従って依存関係が解消され、再び TaskManager から Scheduler に Task が転送される。
 図:\ref{fig:createTask}は Cerium が Task を生成/実行する場合のクラスの構成である。
+TaskManager で依存関係が解消され、実行可能になった Task は ActiveTaskList に移される。
+ActiveTaskList に移された Task は依存関係が存在しないのでどのような順序で実行されても問題ない。
+Task は Scheduler に転送しやすい TaskList に変換してから cpy type に対応する Scheduler に Synchronized Queue である mail を通して転送される。
+Scheduler ではパイプラインで task が処理される(図:\ref{fig:task_scheduler})。
+Task が終了すると Scheduler から TaskManager に mail を通して通知される。
+その通知に従って依存関係が処理され、再び TaskManager から Scheduler に Task が転送される。
+
+\begin{figure}[!h]
+  \begin{center}
+    \includegraphics[scale=0.4]{./images/scheduler.pdf}
+  \end{center}
+  \caption{Task Scheduler}
+  \label{fig:task_scheduler}
+\end{figure}
 
 以下に Task を生成する例題を示す。
 表:\ref{table:TaskManager_api}は Task を生成に用いる API を示している。
@@ -50,8 +60,8 @@
       set\_param   & Task のパラメータ \\ \hline
       wait\_for    & Task の依存関係 \\ \hline
       set\_cpu     & Task を実行する Device の設定 \\ \hline
-      spawn        & Task を Queue に登録する \\ \hline
-      iterate      & データ並列で実行する Task として Queue に登録する \\ \hline
+      spawn        & Task を登録する \\ \hline
+      iterate      & データ並列で実行する Task として登録する \\ \hline
     \end{tabular}
     \caption{Task 生成に用いる API}
     \label{table:TaskManager_api}
@@ -86,7 +96,7 @@
   \begin{center}
     \small
     \begin{tabular}[t]{c||c|c|c|c} \hline
-      stage&CPU0& CPU1&CPU2&CPU3 \\ \hline
+      &CPU0& CPU1&CPU2&CPU3 \\ \hline
       1&0&1&2&3 \\ \hline
       2&4&5&6&7 \\ \hline
       3&8&9& & \\ \hline