# HG changeset patch # User Tatsuki IHA # Date 1517750429 -32400 # Node ID ccc2059189ea58283b13fa407f68a17b564ed0fa # Parent c270df8d069147488571aab0eaf9ea611099954c Add WorkerRun.graffle diff -r c270df8d0691 -r ccc2059189ea paper/fig/WorkerRun.xbb --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/paper/fig/WorkerRun.xbb Sun Feb 04 22:20:29 2018 +0900 @@ -0,0 +1,8 @@ +%%Title: fig/workerRun.pdf +%%Creator: extractbb 20170318 +%%BoundingBox: 0 0 824 309 +%%HiResBoundingBox: 0.000000 0.000000 824.000000 309.000000 +%%PDFVersion: 1.3 +%%Pages: 1 +%%CreationDate: Sun Feb 4 22:16:26 2018 + diff -r c270df8d0691 -r ccc2059189ea paper/fig/gotoInterface.xbb --- a/paper/fig/gotoInterface.xbb Sun Feb 04 20:50:16 2018 +0900 +++ b/paper/fig/gotoInterface.xbb Sun Feb 04 22:20:29 2018 +0900 @@ -4,5 +4,5 @@ %%HiResBoundingBox: 0.000000 0.000000 793.000000 724.000000 %%PDFVersion: 1.3 %%Pages: 1 -%%CreationDate: Tue Jan 30 06:48:02 2018 +%%CreationDate: Sun Feb 4 21:45:54 2018 diff -r c270df8d0691 -r ccc2059189ea paper/fig/taskRun.graffle Binary file paper/fig/taskRun.graffle has changed diff -r c270df8d0691 -r ccc2059189ea paper/fig/workerRun.graffle Binary file paper/fig/workerRun.graffle has changed diff -r c270df8d0691 -r ccc2059189ea paper/fig/workerRun.pdf Binary file paper/fig/workerRun.pdf has changed diff -r c270df8d0691 -r ccc2059189ea paper/master_paper.pdf Binary file paper/master_paper.pdf has changed diff -r c270df8d0691 -r ccc2059189ea paper/parallelism_gears.tex --- a/paper/parallelism_gears.tex Sun Feb 04 20:50:16 2018 +0900 +++ b/paper/parallelism_gears.tex Sun Feb 04 22:20:29 2018 +0900 @@ -77,14 +77,23 @@ Context の生成後は Queue から Task を取得する Code Gear へ継続する。 Task は Context なので、Worker は Context を入れ替えて Task の実行を行う。 -CPUWorker での Task の実行を\coderef{workerRun} に示す。 +CPUWorker での Task の実行を\coderef{workerRun}、 \figref{workerRun} に示す。 \coderef{workerRun} は Context の入れ替えを行うため、Meta Code Gear として記述されており、getTaskCPUWorker(\coderef{workerRun} 1-9行目)の引数に Context を記述している。 -CPUWorker は中身が NULL の task を取得すると Worker の終了処理を行う(\coderef{workerRun} 2-4 行目)。 +Worker は中身が NULL の task を取得すると Worker の終了処理を行う(\coderef{workerRun} 2-4 行目)。 Task が取得できた場合 Task の実行後に継続する Code Gear を格納し(\coderef{workerRun} 7行目)、Task を Context としてCode Gear に継続する(\coderef{workerRun} 8行目)。 Task の実行後に継続する Code Gear は Data Gear の書き出しと依存関係の解決を行う。 +Data Gear 書き出し後は Task の Context を Worker の Context に入れ替え、再び Task を取得する Code Gear に継続する。 \lstinputlisting[caption=CPUWorker でのTaskの実行, label=code:workerRun]{./src/workerRun.cbc} +\begin{figure}[htbp] + \begin{center} + \includegraphics[scale=0.6]{./fig/workerRun.pdf} + \end{center} + \caption{Workerでの Task 実行} + \label{fig:workerRun} +\end{figure} + \section{SynchronizedQueue} SynchronizedQueue は Worker の Queue として使用される。 Worker の Queue は TaskManager を経由して Task を送信するスレッドと Task を取得する Worker 自身のスレッドで扱われる。