Mercurial > hg > Papers > 2015 > yuhi-master
changeset 31:f0060254db3f
fix introduction
author | Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Sat, 14 Feb 2015 14:29:17 +0900 |
parents | 614f3d99fae1 |
children | 9b7ce931cad9 |
files | paper/chapter1.tex paper/chapter2.tex paper/introduciton.tex paper/master_paper.aux paper/master_paper.dvi paper/master_paper.lof paper/master_paper.log paper/master_paper.lot paper/master_paper.pdf paper/master_paper.toc |
diffstat | 10 files changed, 273 insertions(+), 375 deletions(-) [+] |
line wrap: on
line diff
--- a/paper/chapter1.tex Fri Feb 13 15:36:49 2015 +0900 +++ b/paper/chapter1.tex Sat Feb 14 14:29:17 2015 +0900 @@ -3,19 +3,19 @@ マルチプラットフォームにはマルチコア CPU 、 GPU や Cell といったヘテロジニアスマルチコアのような 様々な構成がある。 -\section{Architecture} +\section{GPU の Architecture} +\label{sec:shared_memory} 本研究では、 CPU の他に GPU 上でのプログラミング (GPGPU) にも対応する。 GPU(Graphics Processing Unit) は PC の画像処理を担当するユニットで、 レンダリングに特化したプロセッサが多く集まった構造を持つ。 一つ一つのプロセッサの構造は単純で、その機能は CPU に比べて限定的ではあるが 大量のデータを複数のプロセッサで並列処理することに長けている。 +つまり、データ並列による実行を行った際、特に GPU の性能を充分に発揮できる。 GPGPU (General Purpose computing on Graphics Processing Units) とは、 GPU の高い演算能力を画像処理ではなく汎用計算に使用することである。 -\section{Shared Memory} -\label{sec:shared_memory} 計算機にはメモリ空間が別の計算機と、共有メモリ(Shared Memory)な計算機がある。 GPU のメモリ空間(図:\ref{fig:gpuarch})はマルチコア CPU (図:\ref{fig:cpuarch})と違い、 共有メモリ(shared mermoy)でないので Host と Device 間で Data の共有ができない。 @@ -24,7 +24,6 @@ しかし、異なる Device 間でデータの転送を行うとネックになる。 そのためデータの入出力を行う回数を減らす、入出力の処理をパイプライン処理にするなどの工夫が必要になる。 - \begin{figure}[htpb] \begin{center} \includegraphics[scale=0.4]{./images/gpu_arch.pdf} @@ -74,74 +73,6 @@ OpenCL は host 側で memory buffer を作成してメモリのコピーを行う。 これらの処理や Task は Command Queue に enqueue することで実行される。 -多次元のデータ構造を扱う計算において高い並列度を保つには、 -多次元データを分割して並列に実行する機能が必要である。 -これをデータ並列実行という。 OpenCL はデータ並列実行もサポートしている。 - OpenCL は次元数に対応する index があり、 - OpenCL は一つの記述から異なる index を持つ複数の kernel を自動生成する。 -その添字を global\_id と呼ぶ。この時入力されたデータはワークアイテムという処理単位に分割される。 - -OpenCL はワークアイテムに対してそれぞれを識別する ID ( global\_id )を割り当てる。 -kernel は get\_global\_id API によって ID を取得し、取得した ID に対応するデータに対して処理を行い、 -データ並列を実現する。 -この ID によって取得してきたワークアイテムをグローバルワークアイテムという。 -また、ワークアイテムは3次元までのデータを渡すことができる。 - -データ並列による kernel 実行の場合は clEnqueueNDRangeKernel API を使用するが、 -この関数の引数としてワークアイテムのサイズと次元数を指定することでデータ並列で実行できる。 - -前節でワークアイテムという処理単位について述べたが、 -さらに複数個のグローバルワークアイテムを work\_group という単位にまとめることができる。 -work\_group 内では同期やローカルメモリの共有が可能となる。 - -グローバルワークアイテム(ワークアイテム全体)の個数と、 -ローカルワークアイテム(グループ一つ辺りのアイテム)の個数を指定することでワークアイテムを分割する。 -なお、このときグローバルワークアイテム数はローカルアイテム数の整数倍でなければ -clEnqueueNDRangeKernel API 呼び出しは失敗する。 - -ローカルアイテム数は0を指定することで、コンパイル時に最適化させることができる。 -したがってローカルアイテムのサイズは0を指定するのが一般的である。 - -なお、 work\_group を設定した場合は global\_id の他に work\_group\_id 、local\_id が -それぞれの kernel に割り当てられる(図:\ref{fig:workitem_id})。 - -\begin{figure}[htpb] - \begin{center} - \includegraphics[scale=0.65]{./images/workitem.pdf} - \end{center} - \caption{WorkItem ID} - \label{fig:workitem_id} -\end{figure} - -なお、work\_groupを設定した場合はglobal\_idの他にwork\_group\_id、local\_idが -それぞれのkernelに割り当てられる(図:\ref{fig:workitem_id})。 - -kernel 側からそれぞれ ID に対応した API を使用して、各 ID を取得する。 -取得した ID から自分が担当する index を計算して導く。 -表:\ref{table:kernel_id_api}は kernel 側で使用できる、 ID を取得するための API となる。 -\begin{tiny} - \begin{table}[htpb] - \begin{center} - \small - \begin{tabular}[htpb]{c|l} - \hline - get\_group\_id & work\_group\_id を取得 \\ - \hline - get\_local\_id & local\_id を取得 \\ - \hline - get\_global\_id & global\_id を取得 \\ - \hline - \end{tabular} - \caption{kernel で使用する ID 取得の API} - \label{table:kernel_id_api} - \end{center} - \end{table} -\end{tiny} -なお、 local\_id 、global\_id を取得する API は引数に0、1、2の値を set することができる。 -id は x, y, z 座標があり、それぞれが 0, 1, 2 に対応している。 -例えば get\_global\_id(1) と呼び出した場合は y 座標の、 -get\_global\_id(1) と呼び出した場合は z 座標の global\_id を取得する。 - %------ % CUDA @@ -175,42 +106,6 @@ 引数に Stream を指定しない API は全て host 側をブロックする同期的な処理となる。 複数の Stream を同時に走らせ、 Operation を並列に実行するためには非同期的な処理を行う API を利用する必要がある。 -CUDA では OpenCL の WorkItemに相当する単位を thread として定義している。 -この thread をまとめた単位として block がある。 - -CUDAでデータ並列による kernel 実行を行う場合、cuLaunchKernelAPIを使用する。 -この関数は引数として各座標の block 数、 -各座標の block 1つ辺りの thread 数を指定することによりデータ並列実行を行う。 - -cuLaunchKernel で kernel を実行すると各 thread に対して blockID と threadID が割り当てられる。 -CUDA には OpenCLと異なり、IDを取得するAPIが存在しない。 -それに代わり、 kernel に組み込み変数が準備されている。 -その組み込み変数を参照し、対応するデータに対し処理を行うことでデータ並列実行を実現する。 -組み込み変数は以下の3つである。 - -\begin{itemize} -\item uint3 blockDim -\item uint3 blockIdx -\item uint3 threadIdx -\end{itemize} - -3つの組み込み変数はベクター型で、 blockDim.x とすると x 座標の thread 数を参照することができる。 -同じように blockID 、 threadID の x 座標を参照することができる。 -blockDim.x * blockIdx.x + threadIdx.x とする事で OpenCL における get\_global\_id(0) で -取得できる ID に相当する値を算出する事ができる。 - -例としてある kernel で get\_global\_id(0) の値が 8 の時、 - CUDA では 図\ref{fig:calculateIndex}のように算出する。 - - -\begin{figure}[htpb] - \begin{center} - \includegraphics[scale=0.5]{./images/calculateIndex.pdf} - \end{center} - \caption{Calculate Index example} - \label{fig:calculateIndex} -\end{figure} - \section{StarPU} StarPUはフランス国立情報学自動制御研究所 (INRIA) の StarPU 開発チームの提供する、 ヘテロジニアス環境向けのフレームワークである。 @@ -231,23 +126,3 @@ }; \end{lstlisting} -計算に必要なデータは、 StarPU のデータプールに登録されている必要がある。 -StarPU ではデータを starpu\_data\_handle という型で登録する。 -Task はこの handle を参照することで値を参照することができる。 - -\begin{figure}[htpb] - \begin{center} - \includegraphics[scale=0.5]{./images/starpu_data_parallel.pdf} - \end{center} - \caption{StarPUにおけるデータ分割} - \label{fig:data_partition} -\end{figure} - -図:\ref{fig:data_partition}に StarPU におけるデータ並列実行の流れを示す。 - StarPU では配列の初期化や代入を行った後、 - starpu\_data\_register 関数を使って StarPU のデータプールに登録する。 - - データ並列で実行する場合、更にデータを分割する必要がある。 - starpu\_data\_partition 関数を用いる事で分割を行うことができる。 - 分割数を指定することで、データプールに登録したデータを chunk と呼ばれる単位に分割する。 - starpu\_task\_submit 関数により chunk を CPU や GPU に割り当てることができる。
--- a/paper/chapter2.tex Fri Feb 13 15:36:49 2015 +0900 +++ b/paper/chapter2.tex Sat Feb 14 14:29:17 2015 +0900 @@ -1,4 +1,4 @@ -\chapter{並列プログラミングフレームワーク erium} +\chapter{並列プログラミングフレームワーク Cerium} Cerium は、当初 Cell 用の Fine-Grain TaskManager として当研究室で開発された。 本章では Cerium の実装について説明する。
--- a/paper/introduciton.tex Fri Feb 13 15:36:49 2015 +0900 +++ b/paper/introduciton.tex Sat Feb 14 14:29:17 2015 +0900 @@ -8,11 +8,11 @@ %-ゲームや動画再生といったアプリケーションが高水準(?)になるにつれて %-高水準:高解像度だったり、ぬるぬる動いたり 消費電力・発熱・クロックの限界から、 CPU の性能自体を上げることによる処理性能の向上は難しい。 -その事からプロセッサメーカーはマルチコア CPU や GPU を含むヘテロジニアス構成の路線を打ち出している。 +プロセッサメーカーはマルチコア CPU や GPU を含むヘテロジニアス構成の路線を打ち出している。 クロックの性能を上げるのではなく、コア数を増やすことでパフォーマンスを向上させている。 -マルチコア CPU や GPU といったマルチプラットフォームなアーキテクチャ上でリソースを有効活用するため、 -プログラムを並列化し、それぞれのプラットフォームに対して最適な形で動作させる事は必須と言える。 +マルチコア CPU や GPU といったマルチプラットフォームなアーキテクチャ上でリソースを有効活用するには、 +それぞれのプラットフォームに対して最適な形でプログラムを並列に動作させる必要がある。 ここでいう最適な形とは、実行の順番やどのリソース上で Task を実行するかといった Scheduling を含めたチューニングの事である。 @@ -20,8 +20,25 @@ コーディング時にプログラマが毎回行っていては煩雑さや拡張性の点で問題がある。 そういった問題を解決するためのプログラミングフレームワークが必要となる。 -当研究室では Cerium というプログラミングフレームワークを開発している。 -本研究では Cerium により、マルチプラットフォーム上で高い並列度を維持したプログラミングを可能にする。 +本研究ではマルチコア CPU や GPU といったアーキテクチャ上で動作する並列プログラミングフレームワーク、 +Cerium の開発を行った。 + +Cerium では Task という単位で処理を記述し、それらは並列に実行される。 +プログラマは Task 間の依存関係を設定するだけでパイプラインが構成され、高い並列度を維持した実行が可能となる。 +プログラマが生成した Task は TaskManager に送信され、設定した依存関係の解決を行った後、 Scheduler に送信される。 +Scheduler がパイプラインの機構を持っており、Task はパイプラインに沿って実行されている。 +Scheduler が受信した Task は既に TaskManager が依存関係を解決しているため、実行順序は任意で良い。 +そのため、パイプラインによる実行が可能となっている。 + +計算機において並列処理を行うための設計様式として、1つの命令を同時に複数のデータに適用し、並列に処理する方式がある。 +これをSIMD と呼ぶ。 +GPU や Cell といったヘテロジニアスなアーキテクチャでは、 SIMD 型が主流である。 +Cerium は SIMD 型において高い並列度を維持するため、データ並列実行の機構を備えている。 + +Cerium においてプログラマは Task を記述し、Input データを用意した後はデータ並列用の API で Task を spawn するだけで +データ並列実行することができる。 +TaskManager はプログラマが記述した単一の Task を複数生成し、受け取ったデータ(Input)に対しその Task を割り当てる。 +生成した Task を並列実行する事でデータ並列実行を実現した。 Sort 、Word Count 、FFT の例題を元に、 -追加した機能がマルチプラットフォームにおける並列プログラミングで有効に作用する事を示す。 +Cerium の持つ並列実行機構がマルチプラットフォームにおける並列プログラミングで有効に作用する事を示す。
--- a/paper/master_paper.aux Fri Feb 13 15:36:49 2015 +0900 +++ b/paper/master_paper.aux Sat Feb 14 14:29:17 2015 +0900 @@ -2,134 +2,133 @@ \@writefile{toc}{\contentsline {chapter}{\numberline {第1章}マルチプラットフォームなフレームワークにおける並列プログラミング}{1}} \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} -\@writefile{toc}{\contentsline {chapter}{\numberline {第2章}既存のマルチプラットフォームフレームワーク}{2}} +\@writefile{toc}{\contentsline {chapter}{\numberline {第2章}既存のマルチプラットフォームフレームワーク}{3}} \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} -\@writefile{toc}{\contentsline {section}{\numberline {2.1}Architecture}{2}} -\@writefile{toc}{\contentsline {section}{\numberline {2.2}Shared Memory}{2}} -\newlabel{sec:shared_memory}{{2.2}{2}} -\@writefile{lof}{\contentsline {figure}{\numberline {2.1}{\ignorespaces GPU Architecture}}{3}} -\newlabel{fig:gpuarch}{{2.1}{3}} -\@writefile{lof}{\contentsline {figure}{\numberline {2.2}{\ignorespaces CPU Architecture}}{3}} -\newlabel{fig:cpuarch}{{2.2}{3}} -\@writefile{toc}{\contentsline {section}{\numberline {2.3}OpenCL}{4}} -\@writefile{lof}{\contentsline {figure}{\numberline {2.3}{\ignorespaces WorkItem ID}}{5}} -\newlabel{fig:workitem_id}{{2.3}{5}} -\@writefile{lot}{\contentsline {table}{\numberline {2.1}{\ignorespaces kernel で使用する ID 取得の API}}{5}} -\newlabel{table:kernel_id_api}{{2.1}{5}} -\@writefile{toc}{\contentsline {section}{\numberline {2.4}CUDA}{6}} -\@writefile{lof}{\contentsline {figure}{\numberline {2.4}{\ignorespaces Calculate Index example}}{7}} -\newlabel{fig:calculateIndex}{{2.4}{7}} -\@writefile{toc}{\contentsline {section}{\numberline {2.5}StarPU}{7}} -\newlabel{src:codelet}{{2.1}{7}} -\@writefile{lol}{\contentsline {lstlisting}{\numberline {2.1}codeletの例}{7}} -\@writefile{lof}{\contentsline {figure}{\numberline {2.5}{\ignorespaces StarPUにおけるデータ分割}}{8}} -\newlabel{fig:data_partition}{{2.5}{8}} -\@writefile{toc}{\contentsline {chapter}{\numberline {第3章}並列プログラミングフレームワーク erium}{9}} +\@writefile{toc}{\contentsline {section}{\numberline {2.1}GPU の Architecture}{3}} +\newlabel{sec:shared_memory}{{2.1}{3}} +\@writefile{lof}{\contentsline {figure}{\numberline {2.1}{\ignorespaces GPU Architecture}}{4}} +\newlabel{fig:gpuarch}{{2.1}{4}} +\@writefile{lof}{\contentsline {figure}{\numberline {2.2}{\ignorespaces CPU Architecture}}{4}} +\newlabel{fig:cpuarch}{{2.2}{4}} +\@writefile{toc}{\contentsline {section}{\numberline {2.2}OpenCL}{5}} +\@writefile{toc}{\contentsline {section}{\numberline {2.3}CUDA}{5}} +\@writefile{toc}{\contentsline {section}{\numberline {2.4}StarPU}{6}} +\newlabel{src:codelet}{{2.1}{6}} +\@writefile{lol}{\contentsline {lstlisting}{\numberline {2.1}codeletの例}{6}} +\@writefile{toc}{\contentsline {chapter}{\numberline {第3章}並列プログラミングフレームワーク Cerium}{7}} \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} -\@writefile{toc}{\contentsline {section}{\numberline {3.1}Cerium の概要}{9}} -\@writefile{toc}{\contentsline {section}{\numberline {3.2}Cerium TaskManager}{9}} -\@writefile{toc}{\contentsline {section}{\numberline {3.3}Cerium における Task}{10}} -\@writefile{lof}{\contentsline {figure}{\numberline {3.1}{\ignorespaces Task Manager}}{10}} -\newlabel{fig:taskmanager}{{3.1}{10}} -\@writefile{toc}{\contentsline {section}{\numberline {3.4}Task の Scheduling}{10}} -\@writefile{lof}{\contentsline {figure}{\numberline {3.2}{\ignorespaces Scheduler}}{11}} -\newlabel{fig:scheduler}{{3.2}{11}} -\@writefile{toc}{\contentsline {section}{\numberline {3.5}Task 生成の例}{11}} -\newlabel{src:createTask}{{3.1}{11}} -\@writefile{lol}{\contentsline {lstlisting}{\numberline {3.1}Task の生成}{11}} -\@writefile{lot}{\contentsline {table}{\numberline {3.1}{\ignorespaces Task 生成おける API}}{12}} -\newlabel{table:task_create_api}{{3.1}{12}} -\newlabel{src:task}{{3.2}{12}} -\@writefile{lol}{\contentsline {lstlisting}{\numberline {3.2}Task}{12}} -\@writefile{lot}{\contentsline {table}{\numberline {3.2}{\ignorespaces Task 側で使用する API}}{12}} -\newlabel{table:task_api}{{3.2}{12}} -\@writefile{toc}{\contentsline {chapter}{\numberline {第4章}Ceriumを用いた例題}{13}} +\@writefile{toc}{\contentsline {section}{\numberline {3.1}Cerium の概要}{7}} +\@writefile{toc}{\contentsline {section}{\numberline {3.2}Cerium TaskManager}{7}} +\@writefile{toc}{\contentsline {section}{\numberline {3.3}Cerium における Task}{8}} +\@writefile{lof}{\contentsline {figure}{\numberline {3.1}{\ignorespaces Task Manager}}{8}} +\newlabel{fig:taskmanager}{{3.1}{8}} +\@writefile{toc}{\contentsline {section}{\numberline {3.4}Task の Scheduling}{8}} +\@writefile{lof}{\contentsline {figure}{\numberline {3.2}{\ignorespaces Scheduler}}{9}} +\newlabel{fig:scheduler}{{3.2}{9}} +\@writefile{toc}{\contentsline {section}{\numberline {3.5}Task 生成の例}{9}} +\newlabel{src:createTask}{{3.1}{9}} +\@writefile{lol}{\contentsline {lstlisting}{\numberline {3.1}Task の生成}{9}} +\@writefile{lot}{\contentsline {table}{\numberline {3.1}{\ignorespaces Task 生成おける API}}{10}} +\newlabel{table:task_create_api}{{3.1}{10}} +\newlabel{src:task}{{3.2}{10}} +\@writefile{lol}{\contentsline {lstlisting}{\numberline {3.2}Task}{10}} +\@writefile{lot}{\contentsline {table}{\numberline {3.2}{\ignorespaces Task 側で使用する API}}{10}} +\newlabel{table:task_api}{{3.2}{10}} +\@writefile{toc}{\contentsline {chapter}{\numberline {第4章}Ceriumを用いた例題}{11}} \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} -\@writefile{toc}{\contentsline {section}{\numberline {4.1}Bitonic Sort}{13}} -\@writefile{lof}{\contentsline {figure}{\numberline {4.1}{\ignorespaces Bitonic Sort の例}}{14}} -\newlabel{fig:sort}{{4.1}{14}} -\@writefile{toc}{\contentsline {section}{\numberline {4.2}Word Count}{15}} -\@writefile{lof}{\contentsline {figure}{\numberline {4.2}{\ignorespaces WordCountのフロー}}{16}} -\newlabel{fig:wordcount}{{4.2}{16}} -\@writefile{toc}{\contentsline {section}{\numberline {4.3}FFT}{17}} -\@writefile{toc}{\contentsline {chapter}{\numberline {第5章}マルチコアへの対応}{18}} +\@writefile{toc}{\contentsline {section}{\numberline {4.1}Bitonic Sort}{11}} +\@writefile{lof}{\contentsline {figure}{\numberline {4.1}{\ignorespaces Bitonic Sort の例}}{12}} +\newlabel{fig:sort}{{4.1}{12}} +\@writefile{toc}{\contentsline {section}{\numberline {4.2}Word Count}{13}} +\@writefile{lof}{\contentsline {figure}{\numberline {4.2}{\ignorespaces WordCountのフロー}}{14}} +\newlabel{fig:wordcount}{{4.2}{14}} +\@writefile{toc}{\contentsline {section}{\numberline {4.3}FFT}{15}} +\@writefile{toc}{\contentsline {chapter}{\numberline {第5章}マルチコアへの対応}{16}} +\@writefile{lof}{\addvspace {10\p@ }} +\@writefile{lot}{\addvspace {10\p@ }} +\@writefile{toc}{\contentsline {section}{\numberline {5.1}マルチコア上での実行の機構}{16}} +\@writefile{toc}{\contentsline {section}{\numberline {5.2}DMA}{16}} +\@writefile{toc}{\contentsline {chapter}{\numberline {第6章}GPGPU への対応}{17}} \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} -\@writefile{toc}{\contentsline {section}{\numberline {5.1}マルチコア上での実行の機構}{18}} -\@writefile{toc}{\contentsline {section}{\numberline {5.2}DMA}{18}} -\@writefile{toc}{\contentsline {chapter}{\numberline {第6章}GPGPU への対応}{19}} +\@writefile{toc}{\contentsline {section}{\numberline {6.1}OpenCL および CUDA による実装}{17}} +\@writefile{toc}{\contentsline {section}{\numberline {6.2}データ並列}{18}} +\newlabel{src:multiply_opencl}{{6.1}{18}} +\@writefile{lol}{\contentsline {lstlisting}{\numberline {6.1}Multiply(OpenCL)}{18}} +\newlabel{src:multiply_cuda}{{6.2}{18}} +\@writefile{lol}{\contentsline {lstlisting}{\numberline {6.2}Multiply(CUDA)}{18}} +\newlabel{src:multiply_cpu}{{6.3}{19}} +\@writefile{lol}{\contentsline {lstlisting}{\numberline {6.3}Multiply(CPU)}{19}} +\@writefile{lot}{\contentsline {table}{\numberline {6.1}{\ignorespaces データ並列実行時の index の割り当て}}{19}} +\newlabel{table:dataparallel_index}{{6.1}{19}} +\@writefile{toc}{\contentsline {chapter}{\numberline {第7章}並列処理向けI/O}{21}} \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} -\@writefile{toc}{\contentsline {section}{\numberline {6.1}OpenCL および CUDA による実装}{19}} -\@writefile{toc}{\contentsline {section}{\numberline {6.2}データ並列}{20}} -\newlabel{src:multiply_opencl}{{6.1}{20}} -\@writefile{lol}{\contentsline {lstlisting}{\numberline {6.1}Multiply(OpenCL)}{20}} -\newlabel{src:multiply_cuda}{{6.2}{20}} -\@writefile{lol}{\contentsline {lstlisting}{\numberline {6.2}Multiply(CUDA)}{20}} -\newlabel{src:multiply_cpu}{{6.3}{21}} -\@writefile{lol}{\contentsline {lstlisting}{\numberline {6.3}Multiply(CPU)}{21}} -\@writefile{lot}{\contentsline {table}{\numberline {6.1}{\ignorespaces データ並列実行時の index の割り当て}}{21}} -\newlabel{table:dataparallel_index}{{6.1}{21}} -\@writefile{toc}{\contentsline {chapter}{\numberline {第7章}並列処理向けI/O}{23}} +\@writefile{toc}{\contentsline {section}{\numberline {7.1}mmap}{21}} +\@writefile{lof}{\contentsline {figure}{\numberline {7.1}{\ignorespaces mmap の Model}}{21}} +\newlabel{fig:mmap}{{7.1}{21}} +\@writefile{toc}{\contentsline {section}{\numberline {7.2}Blocked Read による I/O の並列化}{22}} +\@writefile{lof}{\contentsline {figure}{\numberline {7.2}{\ignorespaces BlockedRead による WordCount}}{22}} +\newlabel{fig:blockedread}{{7.2}{22}} +\newlabel{src:blockedread_create}{{7.1}{23}} +\@writefile{lol}{\contentsline {lstlisting}{\numberline {7.1}BlockedRead を行う Task の生成}{23}} +\newlabel{src:blockedread_task}{{7.2}{23}} +\@writefile{lol}{\contentsline {lstlisting}{\numberline {7.2}BlockedRead Task}{23}} +\@writefile{toc}{\contentsline {section}{\numberline {7.3}I/O 専用 Thread の実装}{24}} +\@writefile{lof}{\contentsline {figure}{\numberline {7.3}{\ignorespaces BlockedRead と Task を同じ thread で動かした場合}}{24}} +\newlabel{fig:spe_any_blockedread}{{7.3}{24}} +\@writefile{lof}{\contentsline {figure}{\numberline {7.4}{\ignorespaces IO Thread による BlockedRead}}{24}} +\newlabel{fig:iothread__blockedread}{{7.4}{24}} +\@writefile{toc}{\contentsline {chapter}{\numberline {第8章}ベンチマーク}{25}} \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} -\@writefile{toc}{\contentsline {section}{\numberline {7.1}mmap}{23}} -\@writefile{lof}{\contentsline {figure}{\numberline {7.1}{\ignorespaces mmap の Model}}{23}} -\newlabel{fig:mmap}{{7.1}{23}} -\@writefile{toc}{\contentsline {section}{\numberline {7.2}Blocked Read による I/O の並列化}{24}} -\@writefile{lof}{\contentsline {figure}{\numberline {7.2}{\ignorespaces BlockedRead による WordCount}}{24}} -\newlabel{fig:blockedread}{{7.2}{24}} -\newlabel{src:blockedread_create}{{7.1}{25}} -\@writefile{lol}{\contentsline {lstlisting}{\numberline {7.1}BlockedRead を行う Task の生成}{25}} -\newlabel{src:blockedread_task}{{7.2}{25}} -\@writefile{lol}{\contentsline {lstlisting}{\numberline {7.2}BlockedRead Task}{25}} -\@writefile{toc}{\contentsline {section}{\numberline {7.3}I/O 専用 Thread の実装}{26}} -\@writefile{lof}{\contentsline {figure}{\numberline {7.3}{\ignorespaces BlockedRead と Task を同じ thread で動かした場合}}{26}} -\newlabel{fig:spe_any_blockedread}{{7.3}{26}} -\@writefile{lof}{\contentsline {figure}{\numberline {7.4}{\ignorespaces IO Thread による BlockedRead}}{26}} -\newlabel{fig:iothread__blockedread}{{7.4}{26}} -\@writefile{toc}{\contentsline {chapter}{\numberline {第8章}ベンチマーク}{27}} +\@writefile{toc}{\contentsline {section}{\numberline {8.1}実験環境}{25}} +\@writefile{lot}{\contentsline {table}{\numberline {8.1}{\ignorespaces Ceriumを実行する実験環境1}}{25}} +\newlabel{tab:firefly_spec}{{8.1}{25}} +\@writefile{lot}{\contentsline {table}{\numberline {8.2}{\ignorespaces Ceriumを実行する実験環境2}}{25}} +\newlabel{tab:dragonfly_spec}{{8.2}{25}} +\@writefile{toc}{\contentsline {section}{\numberline {8.2}マルチコア}{26}} +\@writefile{lof}{\contentsline {figure}{\numberline {8.1}{\ignorespaces マルチコア CPU における Sort}}{26}} +\newlabel{fig:sort_on_multicore}{{8.1}{26}} +\@writefile{lof}{\contentsline {figure}{\numberline {8.2}{\ignorespaces マルチコア CPU における WordCount}}{26}} +\newlabel{fig:wordcount_on_multicore}{{8.2}{26}} +\@writefile{toc}{\contentsline {section}{\numberline {8.3}GPGPU}{27}} +\@writefile{lof}{\contentsline {figure}{\numberline {8.3}{\ignorespaces マルチコア CPU、OpenCL、CUDA における FFT}}{27}} +\newlabel{fig:fft_bench}{{8.3}{27}} +\@writefile{lof}{\contentsline {figure}{\numberline {8.4}{\ignorespaces MacPro 2013 Late Model における FFT}}{28}} +\newlabel{fig:fft_bench_dragonfly}{{8.4}{28}} +\@writefile{toc}{\contentsline {section}{\numberline {8.4}並列 I/O}{28}} +\@writefile{toc}{\contentsline {chapter}{\numberline {第9章}既存のプログラミングフレームワークとの比較}{29}} \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} -\@writefile{toc}{\contentsline {section}{\numberline {8.1}実験環境}{27}} -\@writefile{lot}{\contentsline {table}{\numberline {8.1}{\ignorespaces Ceriumを実行する実験環境1}}{27}} -\newlabel{tab:firefly_spec}{{8.1}{27}} -\@writefile{lot}{\contentsline {table}{\numberline {8.2}{\ignorespaces Ceriumを実行する実験環境2}}{27}} -\newlabel{tab:dragonfly_spec}{{8.2}{27}} -\@writefile{toc}{\contentsline {section}{\numberline {8.2}マルチコア}{28}} -\@writefile{lof}{\contentsline {figure}{\numberline {8.1}{\ignorespaces マルチコア CPU における Sort}}{28}} -\newlabel{fig:sort_on_multicore}{{8.1}{28}} -\@writefile{lof}{\contentsline {figure}{\numberline {8.2}{\ignorespaces マルチコア CPU における WordCount}}{28}} -\newlabel{fig:wordcount_on_multicore}{{8.2}{28}} -\@writefile{toc}{\contentsline {section}{\numberline {8.3}GPGPU}{29}} -\@writefile{lof}{\contentsline {figure}{\numberline {8.3}{\ignorespaces マルチコア CPU、OpenCL、CUDA における FFT}}{29}} -\newlabel{fig:fft_bench}{{8.3}{29}} -\@writefile{lof}{\contentsline {figure}{\numberline {8.4}{\ignorespaces MacPro 2013 Late Model における FFT}}{30}} -\newlabel{fig:fft_bench_dragonfly}{{8.4}{30}} -\@writefile{toc}{\contentsline {section}{\numberline {8.4}並列 I/O}{30}} -\@writefile{toc}{\contentsline {chapter}{\numberline {第9章}既存のプログラミングフレームワークとの比較}{31}} +\@writefile{toc}{\contentsline {section}{\numberline {9.1}OpenCL}{29}} +\@writefile{lof}{\contentsline {figure}{\numberline {9.1}{\ignorespaces WorkItem ID}}{30}} +\newlabel{fig:workitem_id}{{9.1}{30}} +\@writefile{lot}{\contentsline {table}{\numberline {9.1}{\ignorespaces kernel で使用する ID 取得の API}}{30}} +\newlabel{table:kernel_id_api}{{9.1}{30}} +\@writefile{toc}{\contentsline {section}{\numberline {9.2}CUDA}{30}} +\@writefile{lof}{\contentsline {figure}{\numberline {9.2}{\ignorespaces Calculate Index example}}{31}} +\newlabel{fig:calculateIndex}{{9.2}{31}} +\@writefile{toc}{\contentsline {section}{\numberline {9.3}StarPU}{31}} +\@writefile{lof}{\contentsline {figure}{\numberline {9.3}{\ignorespaces StarPUにおけるデータ分割}}{32}} +\newlabel{fig:data_partition}{{9.3}{32}} +\@writefile{toc}{\contentsline {chapter}{\numberline {第10章}結論}{33}} \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} -\@writefile{toc}{\contentsline {section}{\numberline {9.1}OpenCL}{31}} -\@writefile{toc}{\contentsline {section}{\numberline {9.2}CUDA}{31}} -\@writefile{toc}{\contentsline {section}{\numberline {9.3}StarPU}{31}} -\@writefile{toc}{\contentsline {chapter}{\numberline {第10章}結論}{32}} -\@writefile{lof}{\addvspace {10\p@ }} -\@writefile{lot}{\addvspace {10\p@ }} -\newlabel{chapter:conclusion}{{10}{32}} -\@writefile{toc}{\contentsline {section}{\numberline {10.1}まとめ}{32}} -\@writefile{toc}{\contentsline {section}{\numberline {10.2}今後の課題}{32}} +\newlabel{chapter:conclusion}{{10}{33}} +\@writefile{toc}{\contentsline {section}{\numberline {10.1}まとめ}{33}} +\@writefile{toc}{\contentsline {section}{\numberline {10.2}今後の課題}{33}} \citation{*} \bibstyle{junsrt} \bibdata{master_paper} -\@writefile{toc}{\contentsline {chapter}{謝辞}{33}} +\@writefile{toc}{\contentsline {chapter}{謝辞}{34}} \bibcite{nobuyasu:2013a}{1} \bibcite{shoshi:2011a}{2} \bibcite{shoshi:2011b}{3} \bibcite{cassandra}{4} \bibcite{bigtable}{5} -\@writefile{toc}{\contentsline {chapter}{参考文献}{34}} -\@writefile{toc}{\contentsline {chapter}{発表文献}{35}} +\@writefile{toc}{\contentsline {chapter}{参考文献}{35}} +\@writefile{toc}{\contentsline {chapter}{発表文献}{36}}
--- a/paper/master_paper.lof Fri Feb 13 15:36:49 2015 +0900 +++ b/paper/master_paper.lof Sat Feb 14 14:29:17 2015 +0900 @@ -1,27 +1,27 @@ \addvspace {10\p@ } \addvspace {10\p@ } -\contentsline {figure}{\numberline {2.1}{\ignorespaces GPU Architecture}}{3} -\contentsline {figure}{\numberline {2.2}{\ignorespaces CPU Architecture}}{3} -\contentsline {figure}{\numberline {2.3}{\ignorespaces WorkItem ID}}{5} -\contentsline {figure}{\numberline {2.4}{\ignorespaces Calculate Index example}}{7} -\contentsline {figure}{\numberline {2.5}{\ignorespaces StarPUにおけるデータ分割}}{8} +\contentsline {figure}{\numberline {2.1}{\ignorespaces GPU Architecture}}{4} +\contentsline {figure}{\numberline {2.2}{\ignorespaces CPU Architecture}}{4} \addvspace {10\p@ } -\contentsline {figure}{\numberline {3.1}{\ignorespaces Task Manager}}{10} -\contentsline {figure}{\numberline {3.2}{\ignorespaces Scheduler}}{11} +\contentsline {figure}{\numberline {3.1}{\ignorespaces Task Manager}}{8} +\contentsline {figure}{\numberline {3.2}{\ignorespaces Scheduler}}{9} \addvspace {10\p@ } -\contentsline {figure}{\numberline {4.1}{\ignorespaces Bitonic Sort の例}}{14} -\contentsline {figure}{\numberline {4.2}{\ignorespaces WordCountのフロー}}{16} +\contentsline {figure}{\numberline {4.1}{\ignorespaces Bitonic Sort の例}}{12} +\contentsline {figure}{\numberline {4.2}{\ignorespaces WordCountのフロー}}{14} \addvspace {10\p@ } \addvspace {10\p@ } \addvspace {10\p@ } -\contentsline {figure}{\numberline {7.1}{\ignorespaces mmap の Model}}{23} -\contentsline {figure}{\numberline {7.2}{\ignorespaces BlockedRead による WordCount}}{24} -\contentsline {figure}{\numberline {7.3}{\ignorespaces BlockedRead と Task を同じ thread で動かした場合}}{26} -\contentsline {figure}{\numberline {7.4}{\ignorespaces IO Thread による BlockedRead}}{26} +\contentsline {figure}{\numberline {7.1}{\ignorespaces mmap の Model}}{21} +\contentsline {figure}{\numberline {7.2}{\ignorespaces BlockedRead による WordCount}}{22} +\contentsline {figure}{\numberline {7.3}{\ignorespaces BlockedRead と Task を同じ thread で動かした場合}}{24} +\contentsline {figure}{\numberline {7.4}{\ignorespaces IO Thread による BlockedRead}}{24} \addvspace {10\p@ } -\contentsline {figure}{\numberline {8.1}{\ignorespaces マルチコア CPU における Sort}}{28} -\contentsline {figure}{\numberline {8.2}{\ignorespaces マルチコア CPU における WordCount}}{28} -\contentsline {figure}{\numberline {8.3}{\ignorespaces マルチコア CPU、OpenCL、CUDA における FFT}}{29} -\contentsline {figure}{\numberline {8.4}{\ignorespaces MacPro 2013 Late Model における FFT}}{30} +\contentsline {figure}{\numberline {8.1}{\ignorespaces マルチコア CPU における Sort}}{26} +\contentsline {figure}{\numberline {8.2}{\ignorespaces マルチコア CPU における WordCount}}{26} +\contentsline {figure}{\numberline {8.3}{\ignorespaces マルチコア CPU、OpenCL、CUDA における FFT}}{27} +\contentsline {figure}{\numberline {8.4}{\ignorespaces MacPro 2013 Late Model における FFT}}{28} \addvspace {10\p@ } +\contentsline {figure}{\numberline {9.1}{\ignorespaces WorkItem ID}}{30} +\contentsline {figure}{\numberline {9.2}{\ignorespaces Calculate Index example}}{31} +\contentsline {figure}{\numberline {9.3}{\ignorespaces StarPUにおけるデータ分割}}{32} \addvspace {10\p@ }
--- a/paper/master_paper.log Fri Feb 13 15:36:49 2015 +0900 +++ b/paper/master_paper.log Sat Feb 14 14:29:17 2015 +0900 @@ -1,4 +1,4 @@ -This is e-pTeX, Version 3.1415926-p3.4-110825-2.6 (utf8.euc) (TeX Live 2013) (format=platex 2013.5.30) 13 FEB 2015 15:22 +This is e-pTeX, Version 3.1415926-p3.4-110825-2.6 (utf8.euc) (TeX Live 2013) (format=platex 2013.5.30) 14 FEB 2015 14:28 entering extended mode \write18 enabled. %&-line parsing enabled. @@ -221,15 +221,15 @@ LaTeX Font Info: External font `cmex10' loaded for size (Font) <6> on input line 3. LaTeX Font Info: Font shape `JT1/mc/bx/n' in size <10> not available -(Font) Font shape `JT1/gt/m/n' tried instead on input line 28. +(Font) Font shape `JT1/gt/m/n' tried instead on input line 29. LaTeX Font Info: Font shape `JY1/mc/bx/n' in size <10> not available -(Font) Font shape `JY1/gt/m/n' tried instead on input line 28. +(Font) Font shape `JY1/gt/m/n' tried instead on input line 29. LaTeX Font Info: Font shape `JT1/mc/bx/n' in size <10.95> not available -(Font) Font shape `JT1/gt/m/n' tried instead on input line 28. +(Font) Font shape `JT1/gt/m/n' tried instead on input line 29. LaTeX Font Info: Font shape `JY1/mc/bx/n' in size <10.95> not available -(Font) Font shape `JY1/gt/m/n' tried instead on input line 28. +(Font) Font shape `JY1/gt/m/n' tried instead on input line 29. LaTeX Font Info: External font `cmex10' loaded for size -(Font) <10.95> on input line 28. +(Font) <10.95> on input line 29. [1 ]) @@ -253,10 +253,18 @@ ] 第 1 章(vページ) -) (./chapter1.tex [1 +[1 -] -第 2 章(2ページ) +]) (./chapter1.tex +File: images/emblem-bitmap.eps Graphic file (type eps) + <images/emblem-bitmap.eps> +Overfull \hbox (86.52322pt too wide) has occurred while \output is active +[] \JY1/gt/m/n/10.95 第 \OT1/cmr/bx/n/10.95 1 \JY1/gt/m/n/10.95 章 マルチプラ +ッ トフ ォ ームなフレ ームワ ークにおける並列プログラミング + [] + +[2] +第 2 章(3ページ) LaTeX Font Info: Font shape `JT1/mc/bx/n' in size <17.28> not available (Font) Font shape `JT1/gt/m/n' tried instead on input line 6. LaTeX Font Info: Font shape `JY1/mc/bx/n' in size <17.28> not available @@ -264,43 +272,29 @@ File: ./images/gpu_arch.pdf Graphic file (type pdf) <./images/gpu_arch.pdf> File: ./images/cpu_arch.pdf Graphic file (type pdf) - <./images/cpu_arch.pdf> [2 + <./images/cpu_arch.pdf> [3 ] File: images/emblem-bitmap.eps Graphic file (type eps) <images/emblem-bitmap.eps> -[3] -LaTeX Font Info: Try loading font information for OMS+cmr on input line 66. +[4] +LaTeX Font Info: Try loading font information for OMS+cmr on input line 65. (/usr/local/share/texlive/2013/texmf-dist/tex/latex/base/omscmr.fd File: omscmr.fd 1999/05/25 v2.5h Standard LaTeX font definitions ) LaTeX Font Info: Font shape `OMS/cmr/m/n' in size <12> not available -(Font) Font shape `OMS/cmsy/m/n' tried instead on input line 66. -File: images/emblem-bitmap.eps Graphic file (type eps) - -<images/emblem-bitmap.eps> [4] -File: ./images/workitem.pdf Graphic file (type pdf) - <./images/workitem.pdf> +(Font) Font shape `OMS/cmsy/m/n' tried instead on input line 65. File: images/emblem-bitmap.eps Graphic file (type eps) <images/emblem-bitmap.eps> [5] -File: images/emblem-bitmap.eps Graphic file (type eps) - <images/emblem-bitmap.eps> [6] -File: ./images/calculateIndex.pdf Graphic file (type pdf) - -<./images/calculateIndex.pdf> LaTeX Font Info: Font shape `OMS/cmr/m/n' in size <10> not available -(Font) Font shape `OMS/cmsy/m/n' tried instead on input line 227. +(Font) Font shape `OMS/cmsy/m/n' tried instead on input line 122. +) (./chapter2.tex File: images/emblem-bitmap.eps Graphic file (type eps) - <images/emblem-bitmap.eps> [7] -File: ./images/starpu_data_parallel.pdf Graphic file (type pdf) - -<./images/starpu_data_parallel.pdf>) (./chapter2.tex -File: images/emblem-bitmap.eps Graphic file (type eps) - -<images/emblem-bitmap.eps> [8] -第 3 章(9ページ) -[9 + <images/emblem-bitmap.eps> +[6] +第 3 章(7ページ) +[7 ] File: ./images/createTask.pdf Graphic file (type pdf) @@ -309,7 +303,7 @@ <./images/scheduler.pdf> File: images/emblem-bitmap.eps Graphic file (type eps) -<images/emblem-bitmap.eps> [10] +<images/emblem-bitmap.eps> [8] LaTeX Font Warning: Font shape `JT1/mc/m/it' undefined (Font) using `JT1/mc/m/n' instead on input line 72. @@ -330,18 +324,18 @@ (Font) Font shape `OML/cmm/m/it' tried instead on input line 73. File: images/emblem-bitmap.eps Graphic file (type eps) -<images/emblem-bitmap.eps> [11]) (./chapter3.tex +<images/emblem-bitmap.eps> [9]) (./chapter3.tex File: images/emblem-bitmap.eps Graphic file (type eps) <images/emblem-bitmap.eps> -[12] -第 4 章(13ページ) -[13 +[10] +第 4 章(11ページ) +[11 ] File: ./images/sort_benchmark.pdf Graphic file (type pdf) <./images/sort_benchmark.pdf> File: images/emblem-bitmap.eps Graphic file (type eps) - <images/emblem-bitmap.eps> [14] + <images/emblem-bitmap.eps> [12] File: ./images/wordcount.pdf Graphic file (type pdf) <./images/wordcount.pdf> @@ -350,41 +344,41 @@ [] File: images/emblem-bitmap.eps Graphic file (type eps) -<images/emblem-bitmap.eps> [15] +<images/emblem-bitmap.eps> [13] File: images/emblem-bitmap.eps Graphic file (type eps) - <images/emblem-bitmap.eps> [16]) + <images/emblem-bitmap.eps> [14]) (./chapter4.tex File: images/emblem-bitmap.eps Graphic file (type eps) - <images/emblem-bitmap.eps> [17 + <images/emblem-bitmap.eps> [15 ] -第 5 章(18ページ) -) (./chapter5.tex [18 +第 5 章(16ページ) +) (./chapter5.tex [16 ] -第 6 章(19ページ) -[19 +第 6 章(17ページ) +[17 ] File: images/emblem-bitmap.eps Graphic file (type eps) - <images/emblem-bitmap.eps> [20]) (./chapter6.tex + <images/emblem-bitmap.eps> [18]) (./chapter6.tex File: images/emblem-bitmap.eps Graphic file (type eps) -<images/emblem-bitmap.eps> [21] +<images/emblem-bitmap.eps> [19] File: images/emblem-bitmap.eps Graphic file (type eps) - <images/emblem-bitmap.eps> [22] -第 7 章(23ページ) + <images/emblem-bitmap.eps> [20] +第 7 章(21ページ) File: ./images/mmap.pdf Graphic file (type pdf) -<./images/mmap.pdf> [23 +<./images/mmap.pdf> [21 ] File: ./images/blockedread.pdf Graphic file (type pdf) <./images/blockedread.pdf> File: images/emblem-bitmap.eps Graphic file (type eps) <images/emblem-bitmap.eps> -[24] +[22] File: images/emblem-bitmap.eps Graphic file (type eps) - <images/emblem-bitmap.eps> [25] + <images/emblem-bitmap.eps> [23] File: ./images/speblockedread.pdf Graphic file (type pdf) <./images/speblockedread.pdf> Overfull \hbox (2.16278pt too wide) in paragraph at lines 118--119 @@ -392,7 +386,7 @@ [] -LaTeX Warning: Reference `fig:iothread_blockedread' on page 26 undefined on inp +LaTeX Warning: Reference `fig:iothread_blockedread' on page 24 undefined on inp ut line 128. File: ./images/iothread.pdf Graphic file (type pdf) @@ -403,41 +397,55 @@ ) (./chapter8.tex File: images/emblem-bitmap.eps Graphic file (type eps) - <images/emblem-bitmap.eps> [26] -第 8 章(27ページ) + <images/emblem-bitmap.eps> [24] +第 8 章(25ページ) File: ./figures/multicore/sort.pdf Graphic file (type pdf) -<./figures/multicore/sort.pdf> [27 +<./figures/multicore/sort.pdf> [25 ] File: ./figures/multicore/word_count.pdf Graphic file (type pdf) <./figures/multicore/word_count.pdf> File: images/emblem-bitmap.eps Graphic file (type eps) -<images/emblem-bitmap.eps> [28] +<images/emblem-bitmap.eps> [26] File: ./figures/GPU/fft_firefly.pdf Graphic file (type pdf) <./figures/GPU/fft_firefly.pdf> File: ./figures/GPU/fft_dragonfly.pdf Graphic file (type pdf) <./figures/GPU/fft_dragonfly.pdf> File: images/emblem-bitmap.eps Graphic file (type eps) - <images/emblem-bitmap.eps> [29]) + <images/emblem-bitmap.eps> [27]) (./chapter9.tex File: images/emblem-bitmap.eps Graphic file (type eps) + <images/emblem-bitmap.eps> [28] +第 9 章(29ページ) +File: ./images/workitem.pdf Graphic file (type pdf) +<./images/workitem.pdf> [29 + +] +File: images/emblem-bitmap.eps Graphic file (type eps) <images/emblem-bitmap.eps> [30] -第 9 章(31ページ) -) (./conclusion.tex [31 +File: ./images/calculateIndex.pdf Graphic file (type pdf) -] -第 10 章(32ページ) -) (./thanx.tex [32 +<./images/calculateIndex.pdf> +File: ./images/starpu_data_parallel.pdf Graphic file (type pdf) + <./images/starpu_data_parallel.pdf>) +(./conclusion.tex +File: images/emblem-bitmap.eps Graphic file (type eps) + <images/emblem-bitmap.eps> [31] +File: images/emblem-bitmap.eps Graphic file (type eps) + <images/emblem-bitmap.eps> +[32] +第 10 章(33ページ) +) (./thanx.tex [33 -]) (./master_paper.bbl [33 +]) (./master_paper.bbl [34 -]) (./appendix.tex [34 +]) (./appendix.tex [35 ]) No file master_paper.ind. -[35 +[36 ] (./master_paper.aux) @@ -454,6 +462,6 @@ 5896 multiletter control sequences out of 15000+600000 18223 words of font info for 71 fonts, out of 8000000 for 9000 745 hyphenation exceptions out of 8191 - 30i,12n,40p,207b,1888s stack positions out of 5000i,500n,10000p,200000b,80000s + 33i,12n,40p,207b,1888s stack positions out of 5000i,500n,10000p,200000b,80000s -Output written on master_paper.dvi (42 pages, 118904 bytes). +Output written on master_paper.dvi (43 pages, 122168 bytes).
--- a/paper/master_paper.lot Fri Feb 13 15:36:49 2015 +0900 +++ b/paper/master_paper.lot Sat Feb 14 14:29:17 2015 +0900 @@ -1,16 +1,16 @@ +\addvspace {10\p@ } \addvspace {10\p@ } \addvspace {10\p@ } -\contentsline {table}{\numberline {2.1}{\ignorespaces kernel で使用する ID 取得の API}}{5} -\addvspace {10\p@ } -\contentsline {table}{\numberline {3.1}{\ignorespaces Task 生成おける API}}{12} -\contentsline {table}{\numberline {3.2}{\ignorespaces Task 側で使用する API}}{12} +\contentsline {table}{\numberline {3.1}{\ignorespaces Task 生成おける API}}{10} +\contentsline {table}{\numberline {3.2}{\ignorespaces Task 側で使用する API}}{10} \addvspace {10\p@ } \addvspace {10\p@ } \addvspace {10\p@ } -\contentsline {table}{\numberline {6.1}{\ignorespaces データ並列実行時の index の割り当て}}{21} +\contentsline {table}{\numberline {6.1}{\ignorespaces データ並列実行時の index の割り当て}}{19} \addvspace {10\p@ } \addvspace {10\p@ } -\contentsline {table}{\numberline {8.1}{\ignorespaces Ceriumを実行する実験環境1}}{27} -\contentsline {table}{\numberline {8.2}{\ignorespaces Ceriumを実行する実験環境2}}{27} +\contentsline {table}{\numberline {8.1}{\ignorespaces Ceriumを実行する実験環境1}}{25} +\contentsline {table}{\numberline {8.2}{\ignorespaces Ceriumを実行する実験環境2}}{25} \addvspace {10\p@ } +\contentsline {table}{\numberline {9.1}{\ignorespaces kernel で使用する ID 取得の API}}{30} \addvspace {10\p@ }
--- a/paper/master_paper.toc Fri Feb 13 15:36:49 2015 +0900 +++ b/paper/master_paper.toc Sat Feb 14 14:29:17 2015 +0900 @@ -1,42 +1,41 @@ \contentsline {chapter}{\numberline {第1章}マルチプラットフォームなフレームワークにおける並列プログラミング}{1} -\contentsline {chapter}{\numberline {第2章}既存のマルチプラットフォームフレームワーク}{2} -\contentsline {section}{\numberline {2.1}Architecture}{2} -\contentsline {section}{\numberline {2.2}Shared Memory}{2} -\contentsline {section}{\numberline {2.3}OpenCL}{4} -\contentsline {section}{\numberline {2.4}CUDA}{6} -\contentsline {section}{\numberline {2.5}StarPU}{7} -\contentsline {chapter}{\numberline {第3章}並列プログラミングフレームワーク erium}{9} -\contentsline {section}{\numberline {3.1}Cerium の概要}{9} -\contentsline {section}{\numberline {3.2}Cerium TaskManager}{9} -\contentsline {section}{\numberline {3.3}Cerium における Task}{10} -\contentsline {section}{\numberline {3.4}Task の Scheduling}{10} -\contentsline {section}{\numberline {3.5}Task 生成の例}{11} -\contentsline {chapter}{\numberline {第4章}Ceriumを用いた例題}{13} -\contentsline {section}{\numberline {4.1}Bitonic Sort}{13} -\contentsline {section}{\numberline {4.2}Word Count}{15} -\contentsline {section}{\numberline {4.3}FFT}{17} -\contentsline {chapter}{\numberline {第5章}マルチコアへの対応}{18} -\contentsline {section}{\numberline {5.1}マルチコア上での実行の機構}{18} -\contentsline {section}{\numberline {5.2}DMA}{18} -\contentsline {chapter}{\numberline {第6章}GPGPU への対応}{19} -\contentsline {section}{\numberline {6.1}OpenCL および CUDA による実装}{19} -\contentsline {section}{\numberline {6.2}データ並列}{20} -\contentsline {chapter}{\numberline {第7章}並列処理向けI/O}{23} -\contentsline {section}{\numberline {7.1}mmap}{23} -\contentsline {section}{\numberline {7.2}Blocked Read による I/O の並列化}{24} -\contentsline {section}{\numberline {7.3}I/O 専用 Thread の実装}{26} -\contentsline {chapter}{\numberline {第8章}ベンチマーク}{27} -\contentsline {section}{\numberline {8.1}実験環境}{27} -\contentsline {section}{\numberline {8.2}マルチコア}{28} -\contentsline {section}{\numberline {8.3}GPGPU}{29} -\contentsline {section}{\numberline {8.4}並列 I/O}{30} -\contentsline {chapter}{\numberline {第9章}既存のプログラミングフレームワークとの比較}{31} -\contentsline {section}{\numberline {9.1}OpenCL}{31} -\contentsline {section}{\numberline {9.2}CUDA}{31} +\contentsline {chapter}{\numberline {第2章}既存のマルチプラットフォームフレームワーク}{3} +\contentsline {section}{\numberline {2.1}GPU の Architecture}{3} +\contentsline {section}{\numberline {2.2}OpenCL}{5} +\contentsline {section}{\numberline {2.3}CUDA}{5} +\contentsline {section}{\numberline {2.4}StarPU}{6} +\contentsline {chapter}{\numberline {第3章}並列プログラミングフレームワーク Cerium}{7} +\contentsline {section}{\numberline {3.1}Cerium の概要}{7} +\contentsline {section}{\numberline {3.2}Cerium TaskManager}{7} +\contentsline {section}{\numberline {3.3}Cerium における Task}{8} +\contentsline {section}{\numberline {3.4}Task の Scheduling}{8} +\contentsline {section}{\numberline {3.5}Task 生成の例}{9} +\contentsline {chapter}{\numberline {第4章}Ceriumを用いた例題}{11} +\contentsline {section}{\numberline {4.1}Bitonic Sort}{11} +\contentsline {section}{\numberline {4.2}Word Count}{13} +\contentsline {section}{\numberline {4.3}FFT}{15} +\contentsline {chapter}{\numberline {第5章}マルチコアへの対応}{16} +\contentsline {section}{\numberline {5.1}マルチコア上での実行の機構}{16} +\contentsline {section}{\numberline {5.2}DMA}{16} +\contentsline {chapter}{\numberline {第6章}GPGPU への対応}{17} +\contentsline {section}{\numberline {6.1}OpenCL および CUDA による実装}{17} +\contentsline {section}{\numberline {6.2}データ並列}{18} +\contentsline {chapter}{\numberline {第7章}並列処理向けI/O}{21} +\contentsline {section}{\numberline {7.1}mmap}{21} +\contentsline {section}{\numberline {7.2}Blocked Read による I/O の並列化}{22} +\contentsline {section}{\numberline {7.3}I/O 専用 Thread の実装}{24} +\contentsline {chapter}{\numberline {第8章}ベンチマーク}{25} +\contentsline {section}{\numberline {8.1}実験環境}{25} +\contentsline {section}{\numberline {8.2}マルチコア}{26} +\contentsline {section}{\numberline {8.3}GPGPU}{27} +\contentsline {section}{\numberline {8.4}並列 I/O}{28} +\contentsline {chapter}{\numberline {第9章}既存のプログラミングフレームワークとの比較}{29} +\contentsline {section}{\numberline {9.1}OpenCL}{29} +\contentsline {section}{\numberline {9.2}CUDA}{30} \contentsline {section}{\numberline {9.3}StarPU}{31} -\contentsline {chapter}{\numberline {第10章}結論}{32} -\contentsline {section}{\numberline {10.1}まとめ}{32} -\contentsline {section}{\numberline {10.2}今後の課題}{32} -\contentsline {chapter}{謝辞}{33} -\contentsline {chapter}{参考文献}{34} -\contentsline {chapter}{発表文献}{35} +\contentsline {chapter}{\numberline {第10章}結論}{33} +\contentsline {section}{\numberline {10.1}まとめ}{33} +\contentsline {section}{\numberline {10.2}今後の課題}{33} +\contentsline {chapter}{謝辞}{34} +\contentsline {chapter}{参考文献}{35} +\contentsline {chapter}{発表文献}{36}