changeset 7:a927f08d51e2

*** empty log message ***
author gongo
date Mon, 14 Jul 2008 20:51:46 +0900
parents 30b41d745225
children 6fb31d97a288
files dev.tex ess2008.tex task_manager.tex
diffstat 3 files changed, 29 insertions(+), 17 deletions(-) [+]
line wrap: on
line diff
--- a/dev.tex	Mon Jul 14 20:37:12 2008 +0900
+++ b/dev.tex	Mon Jul 14 20:51:46 2008 +0900
@@ -1,35 +1,47 @@
-\section{TaskManager を用いた並列プログラムの開発行程} \label{sec:debug}
-TaskManager を用いたプログラムの作成では、
-以下の段階において、それぞれ実装とテストを行う。
+\section{並列プログラムの開発行程} \label{sec:debug}
+並列プログラミングでは、以下の段階において、それぞれ実装とテストを行う
+(\figref{fig:dev-step})。
+
+\begin{figure}[tb]
+  \begin{center}
+    \includegraphics[scale=0.35]{figure/step.pdf}
+    \caption{並列プログラムの開発行程}
+    \label{fig:dev-step}
+  \end{center}
+\end{figure}
 
 \begin{enumerate}
 \item C によるシーケンシャルな実装 \label{list_dev1}
-\item TaskManager を考慮したデータ構造を持つ実装 \label{list_dev2}
-\item コードをタスクに分割し、シーケンシャルに実行する実装 \label{list_dev3}
+\item 並列実行を考慮したデータ構造を持つ実装 \label{list_dev2}
+\item コードを分割し、シーケンシャルに実行する実装 \label{list_dev3}
 \item タスクを並列実行する実装 \label{list_dev4}
 \end{enumerate}
 
 
-段階 (\ref{list_dev1}) の実装は Task Manager を用いず、
+段階 (\ref{list_dev1}) の実装は、
 プログラムのアルゴリズムの信頼性を確認するために用いる。
 
-段階 (\ref{list_dev2}) ではコードをタスクに分割した際、
+段階 (\ref{list_dev2}) ではコードを分割した際、
 そのタスクが使用できるようなデータの変換が必要になり、
 段階 (\ref{list_dev1}) と同じ結果を得られるかどうかを検証する。
 
-段階 (\ref{list_dev3}) の実装からは Task Manager を用いる。
-この段階まではアーキテクチャに依存しないので、
+段階 (\ref{list_dev3}) の実装では、並列実行を意識した
+コードの分割を行う。この段階まではアーキテクチャに依存しないので、
 ターゲットが開発途中の段階でも記述することが可能である。
 また、入力に対して出力が一意に決まる状況であり、テストは容易である。
 シーケンシャルな実装であるため、デバッグも二分法により容易に行うことが出来る。
 
-段階 (\ref{list_dev4}) では、段階 (\ref{list_dev3}) までが動いていれば
+段階 (\ref{list_dev4}) の実装では、段階 (\ref{list_dev3} で分割したコードを
+実際に並列に動かす。段階 (\ref{list_dev3}) までが動いていれば
 問題なく動作すると期待される。
 問題が発生した場合、その原因と思われるタスクを見つけ、
 一度段階 (\ref{list_dev3}) に戻した後、前後のタスクと合わせて
 入出力データのチェックなどのテストしていくことが必要となる。
 
-段階 (\ref{list_dev3}) から 段階 (\ref{list_dev4}) へのプログラムの変換は
-非常に容易である。Task Manager の API である set\_cpu() を用いることにより、
-Task をメインスレッドで実行するか、他 Core で実行するかを
-明示的に書くことが出来るからである。
+%段階 (\ref{list_dev3}) から 段階 (\ref{list_dev4}) へのプログラムの変換は
+%非常に容易である。Task Manager の API である set\_cpu() を用いることにより、
+%Task をメインスレッドで実行するか、他 Core で実行するかを
+%明示的に書くことが出来るからである。
+
+第 \ref{sec:tm} 節から説明する TaskManager は、
+以上の開発行程をサポートしたフレームワークとなる。
--- a/ess2008.tex	Mon Jul 14 20:37:12 2008 +0900
+++ b/ess2008.tex	Mon Jul 14 20:51:46 2008 +0900
@@ -70,8 +70,8 @@
 \input{introduction}  % 研究目的
 \input{cell}          % Cell
 \input{manycore}      % many core system
+\input{dev}           % 開発過程
 \input{task_manager}  % Task Manager
-\input{dev}           % 開発過程
 \input{student}       % 学生の反応
 \input{cerium}        % Cerium
 \input{compare}       % 評価と考察
--- a/task_manager.tex	Mon Jul 14 20:37:12 2008 +0900
+++ b/task_manager.tex	Mon Jul 14 20:51:46 2008 +0900
@@ -207,8 +207,8 @@
 \end{verbatim}
 
 メインスレッド内でもタスクを実行する事が可能なため、これを用いる事により、
-環境依存によるプログラム変換はタスクの部分だけとなり、全体の変換は必要ない。
-(TODO)
+環境依存によるプログラム変換はタスクの部分だけとなる。
+よって、\figref{fig:dev-step} の 段階 (3) と 段階 (4) の相互変換が容易になる。
 
 \subsection{メインスレッドと各 Core 間との同期}
 メインスレッドと各 Core 間では、32 ビットメッセージの