Mercurial > hg > Papers > 2014 > kkb-sigos
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