Mercurial > hg > Papers > 2012 > toma-sigos
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}