# HG changeset patch # User Shinji KONO # Date 1398086191 -32400 # Node ID 593671347b018730ba8f59dd086017d2d8041723 # Parent 2921110c23aa58c6acce51a872de8a874a85c348 fix diff -r 2921110c23aa -r 593671347b01 cerium.tex --- a/cerium.tex Mon Apr 21 19:55:21 2014 +0900 +++ b/cerium.tex Mon Apr 21 22:16:31 2014 +0900 @@ -1,6 +1,7 @@ \section{Cerium} -Cerium は、Cell 用の Fine-Grain Task Manager として当研究室で開発された。 -TaskManager, SceneGraph, Rendering Engine の3つの要素から構成されており、PS3 および Linux, MacOS X 上で動作する。 +Cerium は、当初 Cell 用の Fine-Grain Task Manager として当研究室で開発された。 +TaskManager, SceneGraph, Rendering Engine の3つの要素から構成されており、今では、PS3 および Linux, MacOS X 上で動作する。 +GPGPU の Data Parallel を含めて、同じ形式で並列プログラムを記述することができる。 \subsection{Cerium TaskManager} TaskManager は、Task と呼ばれる分割されたプログラムを管理する。 diff -r 2921110c23aa -r 593671347b01 conclusion.tex --- a/conclusion.tex Mon Apr 21 19:55:21 2014 +0900 +++ b/conclusion.tex Mon Apr 21 22:16:31 2014 +0900 @@ -4,3 +4,5 @@ WordCount, FFT を例題に用い、Scheduler の測定も行なった。 OpenCL と CUDA で異なる結果が出たことからそれぞれで最適なチューニングの方法が違うことがわかる。 どちらもチューニングを行えば同等な結果が出ると考えられるのでプロファイラなどを用いて、実装を見直すことが今後の課題となる。 + +%% 同時実行の話も入れて diff -r 2921110c23aa -r 593671347b01 introduction.tex --- a/introduction.tex Mon Apr 21 19:55:21 2014 +0900 +++ b/introduction.tex Mon Apr 21 22:16:31 2014 +0900 @@ -7,6 +7,7 @@ 当研究室で開発・改良が行われている並列プログラミングフレームワーク Cerium は様々なプロセッサを統合して扱えるフレームワークを目指している。 様々なプロセッサを統合して扱えるフレームワークとしてフランス国立情報学自動制御研究所(INRIA)が開発している StarPU がある。 StarPU は Cerium と同じタスクベースの非同期フレームワークである。 +%% ちゃんと論文を引用する タスクという単位で記述することで処理とデータを分離し、より効率的に処理を行うことができる。 StarPU にはパイプラインでの実行機構は入ってなく、パイプライン処理を行いたい場合は自分で実装するしかない。 しかし、パイプライン処理を書くことは非常に煩雑で難しい。 diff -r 2921110c23aa -r 593671347b01 sigos.tex --- a/sigos.tex Mon Apr 21 19:55:21 2014 +0900 +++ b/sigos.tex Mon Apr 21 22:16:31 2014 +0900 @@ -33,7 +33,7 @@ % 和文表題 \title{並列プログラミングフレームワーク Cerium の\\ OpenCL, CUDA 対応} % 英文表題 -\etitle{Support OpenCL, CUDA of parallel programming framework Cerium} +\etitle{Supporting OpenCL, CUDA in Parallel programming framework Cerium} % 所属ラベルの定義 \affilabel{1}{琉球大学大学院理工学研究科情報工学専攻 \\Interdisciplinary Infomation Engineering, Graduate School of Engineering and Science, University of the Ryukyus.} @@ -64,7 +64,7 @@ MacOS X 上で GPGPU を行うには、OpenCL または CUDA を用いる方法が考えられる。 OpenCL, CUDA の API に対応した API を Cerium に用意することでデータ並列に対応した。 タスク並列で実行する場合、データ転送がオーバーヘッドになる。 - この問題を解決するためには、kernel の実行中にデータ転送を行うことでデータ転送をオーバーラップする必要がある。 + このオーバヘッドを解決するためには、kernel の実行中にデータ転送を行うことでデータ転送をオーバーラップする必要がある。 OpenCL では CommandQueue、CUDA では Stream を複数用いることでデータ転送や kernel の実行を並列に行うことができる。 複数の CommandQueue, Stream を用いて、自動で並列実行を行うスケジューラーを実装した。 実装したスケジューラーを WordCount、FFT を例題に測定し、考察を行う。 @@ -72,14 +72,13 @@ % 英文概要 \begin{eabstract} - In our labaratory, proposal parallel programming framework Cerium that is running on the PS3, Linux and Mac OS X. - In order to GPGPU on Mac OS X, it is thought that use OpenCL or CUDA. - Supported Data Parallel prepare API on Cerium that correspond OpenCL and CUDA API. - In case execute Task Parallel, data transfer causes overhead. - To resolve this problem, need to overlaped data transfer. - OpenCL and CUDA are possible parallel execution use of multiple CommandQueue and Stream. - We implement scheduler to automatically parallel execution, be use multiple CommandQueue and Stream. - We evaluate scheduler, be use WordCount and FFT. + We are develpping parallel programming framework Cerium, that is running on the PS3, Linux, Mac OS X and GPGPU. + As GPGPU support on Mac OS X, OpenCL or CUDA can be used in an API set. + Data Parallel on GPUGPU is also working on CPUs. + In Task Parallel, data transfer causes overhead. + To resolve this, pipeline data transfer is used both on GPGPU and Many Cores. + OpenCL and CUDA have slightly different behaviour on Data Parallel and out of order task execution. + In WordCount and FFT examples, we show the different and its analysis. \end{eabstract} % 表題などの出力