changeset 3:a011ba777be3

fix
author Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
date Wed, 11 Apr 2012 18:15:32 +0900
parents f8ec7d0a377d
children 2b95648ce2b3
files papers/sigos.tex
diffstat 1 files changed, 12 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/papers/sigos.tex	Wed Apr 11 09:05:15 2012 +0900
+++ b/papers/sigos.tex	Wed Apr 11 18:15:32 2012 +0900
@@ -66,8 +66,7 @@
 マルチコアプロセッサ上では, 並列コンピューティングに対応したプログラミングを行う必要がある。
 また、処理を並列に実行するため、処理全体で高い並列度を保たなければ、処理性能は著しく下がってしまうという問題がある。% アムダール則
 
-本研究室では、並列プログラミングフレームワークである、Cerium Task Manager\cite{gongo:2008a} を開発している。
-Cerium Task Manager は、Cell Broadband Engine\cite{cell} 向けに開発されており、
+本研究室では、Cell Broadband Engine\cite{cell} 向けに, 並列プログラミングフレームワークである、Cerium Task Manager\cite{gongo:2008a} を開発している。
 
 % 後で考える
 
@@ -248,11 +247,17 @@
 の速度向上が見られる。
 Word Count を例にあげると、Busytimeが約93 \%に対し、DataのLoadtimeが、約3.7 \%である。
 
-\section{TaskLog}
+\section{TaskLog 出力機構}
 DMA転送を用いていた部分をポインタ渡しをするようにした際、メモリの管理がシビアになったためバグが発現するようになった。
-バグの検出のために、TaskLog 出力機能を追加した。
-Graphviz を用いて、DOT言語で示されたグラフを描画する。
-グラフとして表示されたログは、バグの発生箇所の検出に利用できる。
+並列プログラミングでは、バグの検出が難しい。
+並列で実行する場合、非決定的に動作するため、同じ環境で実行しても実行結果が異なる場合があり、バグの状態を再現することが難しい。
+そのため、今回新たにバグの検出のために、TaskLog 出力機構を追加した。TaskLog 出力機構では、Taskの作成時間や、依存関係をグラフとして出力できる。
+
+プログラム実行時に、Taskの依存関係や作成時間などの各種情報をリストに保存し、YAMLとして出力する。
+プログラム実行終了後、YAMLをDOT言語に変換し、Graphvizを用いてグラフとして描画する。
+
+実行時のTaskの状態が、グラフとして一覧できるため、依存関係が破壊されるなどのバグに気づきやすい。
+そのため、バグの発生箇所の検出に利用できる。
 
 % 図\ref{}に、例としてグラフを示す。
 % TaskLogの可視化ツール
@@ -266,7 +271,7 @@
 % output bufferが次のinput bufferを破壊するバグ
 
 \section{GPU上での並列実行機構の設計}
-GPUでの並列実行には、OpenCLを用いて設計する。
+GPUでの並列実行には、OpenCLを用いて設計した。
 OpenCLは、CPU や、GPUなど異種の計算資源が混在するプラットフォームで並列処理プログラムを書くためのフレームワークである。
 OpenCLは、作成したカーネルオブジェクトをCommandQueueに、Enqueueすることで、プログラムの実行を行う。
 \subsection{GpuThreads}