changeset 10:1519674c30ab

dragon and firefly spec
author Yuhi TOMARI <yuhi@cr.ie.u-ryukyu.ac.jp>
date Sat, 31 Jan 2015 15:58:41 +0900
parents e2b7c59f3d65
children 265c2e89d54b
files paper/abstract.tex paper/chapter4.tex paper/chapter5.tex paper/master_paper.aux paper/master_paper.dvi paper/master_paper.log paper/master_paper.lot paper/master_paper.pdf paper/master_paper.tex paper/master_paper.toc
diffstat 10 files changed, 133 insertions(+), 76 deletions(-) [+]
line wrap: on
line diff
--- a/paper/abstract.tex	Thu Jan 29 16:51:03 2015 +0900
+++ b/paper/abstract.tex	Sat Jan 31 15:58:41 2015 +0900
@@ -1,3 +1,13 @@
 \begin{abstract}
-
+マルチプラットフォーム対応並列プログラミングフレームワークに関する研究を行った。
+本研究室で開発している Cerium に並列プログラミングフレームワークに必要と考えられる機能を追加していった。
+本来 Cerium は Cell Broad band Engine 用のフレームワークであったが、
+更なる並列度のためにマルチコアと GPU における実行を可能にした。マルチコアは SynchronizedQueue による対応、
+ GPU は OpenCL と CUDA を用いた対応を行った。
+また、マルチコアや GPU での並列処理を行ったとしても、I/Oの動作への負担が大きければ、プログラムの処理は高速にならない。
+従来はファイル読み込みを mmap で実装していたが、 Blocked Read による並列処理向けのI/Oの実装を行った。
+プログラムにおいて、小さいサイズの malloc を繰り返し行うとフラグメンテーションにより処理性能が著しく落ちることがある。
+Cerium において適切なメモリ管理ができるように改良を行った。
+これらの改良を WordCount 、FFT 、 Sortを例題に性能向上を測定し、
+マルチプラットフォーム対応並列プログラミングフレームワークに必要な機構や API に関する考察を行う。
 \end{abstract}
--- a/paper/chapter4.tex	Thu Jan 29 16:51:03 2015 +0900
+++ b/paper/chapter4.tex	Sat Jan 31 15:58:41 2015 +0900
@@ -10,17 +10,38 @@
 並列に実行する。
 
 \section{ベンチマーク}
-今回使用する実験環境を\ref{tab:dragonfly_spec}に示す.
+今回使用する実験環境を表:\ref{tab:dragonfly_spec}、表:\ref{tab:firefly_spec}に示す.
+
 \begin{table}[!htbp]
-\label{tab:dragonfly_spec}
-\begin{center}
-\begin{tabular}{|c||c|} \hline
-名前 & 概要 \\ \hline \hline
-CPU & 6-Core Intel Xeon E5@3.5GHz \\ \hline
-Memory & 16GB \\ \hline
-OS & MacOSX 10.10.1 \\ \hline
-Graphics & AMD FirePro D700 6144MB \\ \hline
-\end{tabular}
-\end{center}
-\caption{Ceriumを実行する実験環境}
+  \label{tab:dragonfly_spec}
+  \begin{center}
+    \begin{tabular}{|c||c|} \hline
+      名前 & 概要 \\ \hline \hline
+      Model &  MacPro Late 2013 \\ \hline
+      CPU & 6-Core Intel Xeon E5@3.5GHz \\ \hline
+      Serial-ATA Device & Apple SSD SM0256 \\ \hline
+      Memory & 16GB \\ \hline
+      OS & MacOSX 10.10.1 \\ \hline
+      Graphics & AMD FirePro D700 6144MB \\ \hline
+    \end{tabular}
+  \end{center}
+  \caption{Ceriumを実行する実験環境1}
 \end{table}
+
+\if0
+\begin{table}[!htbp]
+  \label{tab:firefly_spec}
+  \begin{center}
+    \begin{tabular}{|c||c|} \hline
+      名前 & 概要 \\ \hline \hline
+      Model & MacPro Mid 2010 \\ \hline
+      CPU & 6-Core Intel Xeon @2.66GHz \\ \hline
+      Serial-ATA Device & \\ \hline
+      Memory & 16GB \\ \hline
+      OS & MacOSX 10.10.1 \\ \hline
+      Graphics & NVIDIA Quadro K5000 4096MB \\ \hline
+    \end{tabular}
+  \end{center}
+  \caption{Ceriumを実行する実験環境2}
+\end{table}
+\fi
--- a/paper/chapter5.tex	Thu Jan 29 16:51:03 2015 +0900
+++ b/paper/chapter5.tex	Sat Jan 31 15:58:41 2015 +0900
@@ -1,4 +1,19 @@
 \chapter{GPGPUへの対応}
+Cerium の新たな演算資源として GPU の使用を可能にした。
+現在、GPU のような異なる種類のアーキテクチャを搭載した CPU 、つまりヘテロジニアスな CPU が増えている。
+特定の計算に特化した Task の生成やスケジューリングを行い、 GPGPU により高い並列度を出す研究は様々な分野で行われている。
+本研究では Cerium を特定の計算に限らず、 GPU を用いて汎用計算を行えるフレームワークに改良する。
+\section{OpenCL}
+OpenCL を用いた GPU 対応を行った。
+Scheduler と CpuThreads に対応させる形で GpuScheduler と GpuThreads を実装した。
+GpuScheduler 内で OpenCL の API を用いて GPU の制御を行っている。
+
+受け取った TaskList からメモリバッファを作成し、 
+clEnqueueuWriteBuffer、clEnqueueTask、clEnqueueReadBuffer の順に CommandQueue に Enqueueしていく。
+Task の投入は CommandQueue を2つ用意しパイプライン的に実行を行う。
+
+Task の終了は、clWaitForEvent によって検出し、TaskManager 間の通信を担当する同期キューである mail を使って通知する。
+
 
 \subsection{OpenCL による実装の機構}
 \subsection{ベンチマーク}
--- a/paper/master_paper.aux	Thu Jan 29 16:51:03 2015 +0900
+++ b/paper/master_paper.aux	Sat Jan 31 15:58:41 2015 +0900
@@ -67,40 +67,41 @@
 \@writefile{toc}{\contentsline {section}{\numberline {5.1}マルチコア上での実行の機構}{20}}
 \@writefile{toc}{\contentsline {section}{\numberline {5.2}ベンチマーク}{20}}
 \newlabel{tab:dragonfly_spec}{{5.2}{20}}
-\@writefile{lot}{\contentsline {table}{\numberline {5.1}{\ignorespaces Ceriumを実行する実験環境}}{20}}
+\@writefile{lot}{\contentsline {table}{\numberline {5.1}{\ignorespaces Ceriumを実行する実験環境1}}{20}}
 \@writefile{toc}{\contentsline {chapter}{\numberline {第6章}GPGPUへの対応}{21}}
 \@writefile{lof}{\addvspace {10\p@ }}
 \@writefile{lot}{\addvspace {10\p@ }}
-\@writefile{toc}{\contentsline {subsection}{\numberline {6.0.1}OpenCL による実装の機構}{21}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {6.0.2}ベンチマーク}{21}}
-\@writefile{toc}{\contentsline {section}{\numberline {6.1}CUDA}{21}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {6.1.1}CUDA による実装の機構}{21}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {6.1.2}ベンチマーク}{21}}
-\@writefile{toc}{\contentsline {section}{\numberline {6.2}データ並列}{21}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {6.2.1}データ並列実行の機構}{21}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {6.2.2}iterate API}{21}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {6.2.3}ベンチマーク}{21}}
-\@writefile{toc}{\contentsline {chapter}{\numberline {第7章}並列処理向けI/O}{22}}
+\@writefile{toc}{\contentsline {section}{\numberline {6.1}OpenCL}{21}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {6.1.1}OpenCL による実装の機構}{22}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {6.1.2}ベンチマーク}{22}}
+\@writefile{toc}{\contentsline {section}{\numberline {6.2}CUDA}{22}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {6.2.1}CUDA による実装の機構}{22}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {6.2.2}ベンチマーク}{22}}
+\@writefile{toc}{\contentsline {section}{\numberline {6.3}データ並列}{22}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {6.3.1}データ並列実行の機構}{22}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {6.3.2}iterate API}{22}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {6.3.3}ベンチマーク}{22}}
+\@writefile{toc}{\contentsline {chapter}{\numberline {第7章}並列処理向けI/O}{23}}
 \@writefile{lof}{\addvspace {10\p@ }}
 \@writefile{lot}{\addvspace {10\p@ }}
-\@writefile{toc}{\contentsline {section}{\numberline {7.1}新たに実装したI/Oの機構}{22}}
-\@writefile{toc}{\contentsline {section}{\numberline {7.2}ベンチマーク}{22}}
-\@writefile{toc}{\contentsline {chapter}{\numberline {第8章}Memory Allocator}{23}}
+\@writefile{toc}{\contentsline {section}{\numberline {7.1}新たに実装したI/Oの機構}{23}}
+\@writefile{toc}{\contentsline {section}{\numberline {7.2}ベンチマーク}{23}}
+\@writefile{toc}{\contentsline {chapter}{\numberline {第8章}Memory Allocator}{24}}
 \@writefile{lof}{\addvspace {10\p@ }}
 \@writefile{lot}{\addvspace {10\p@ }}
-\@writefile{toc}{\contentsline {section}{\numberline {8.1}現状のMemory Allocator}{23}}
-\@writefile{toc}{\contentsline {section}{\numberline {8.2}新しいMemory Allocator}{23}}
-\@writefile{toc}{\contentsline {section}{\numberline {8.3}ベンチマーク}{23}}
-\@writefile{toc}{\contentsline {chapter}{\numberline {第9章}結論}{24}}
+\@writefile{toc}{\contentsline {section}{\numberline {8.1}現状のMemory Allocator}{24}}
+\@writefile{toc}{\contentsline {section}{\numberline {8.2}新しいMemory Allocator}{24}}
+\@writefile{toc}{\contentsline {section}{\numberline {8.3}ベンチマーク}{24}}
+\@writefile{toc}{\contentsline {chapter}{\numberline {第9章}結論}{25}}
 \@writefile{lof}{\addvspace {10\p@ }}
 \@writefile{lot}{\addvspace {10\p@ }}
-\newlabel{chapter:conclusion}{{9}{24}}
-\@writefile{toc}{\contentsline {section}{\numberline {9.1}まとめ}{24}}
-\@writefile{toc}{\contentsline {section}{\numberline {9.2}今後の課題}{24}}
+\newlabel{chapter:conclusion}{{9}{25}}
+\@writefile{toc}{\contentsline {section}{\numberline {9.1}まとめ}{25}}
+\@writefile{toc}{\contentsline {section}{\numberline {9.2}今後の課題}{25}}
 \citation{*}
 \bibstyle{junsrt}
 \bibdata{master_paper}
-\@writefile{toc}{\contentsline {chapter}{謝辞}{25}}
+\@writefile{toc}{\contentsline {chapter}{謝辞}{26}}
 \bibcite{msgpack:2013}{1}
 \bibcite{nobuyasu:2013a}{2}
 \bibcite{shoshi:2011a}{3}
@@ -111,5 +112,5 @@
 \bibcite{dynamo}{8}
 \bibcite{deos2013}{9}
 \bibcite{d_add2013}{10}
-\@writefile{toc}{\contentsline {chapter}{参考文献}{26}}
-\@writefile{toc}{\contentsline {chapter}{発表文献}{27}}
+\@writefile{toc}{\contentsline {chapter}{参考文献}{27}}
+\@writefile{toc}{\contentsline {chapter}{発表文献}{28}}
Binary file paper/master_paper.dvi has changed
--- a/paper/master_paper.log	Thu Jan 29 16:51:03 2015 +0900
+++ b/paper/master_paper.log	Sat Jan 31 15:58:41 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)  29 JAN 2015 16:50
+This is e-pTeX, Version 3.1415926-p3.4-110825-2.6 (utf8.euc) (TeX Live 2013) (format=platex 2013.5.30)  31 JAN 2015 07:03
 entering extended mode
  \write18 enabled.
  %&-line parsing enabled.
@@ -368,6 +368,10 @@
 
 ]
 第 5 章(20ページ)
+
+LaTeX Warning: Reference `tab:firefly_spec' on page 20 undefined on input line 
+13.
+
 ) (./chapter5.tex [20
 
 ]
@@ -375,18 +379,20 @@
 ) (./chapter6.tex [21
 
 ]
-第 7 章(22ページ)
-) (./chapter7.tex [22
+File: images/emblem-bitmap.eps Graphic file (type eps)
+ <images/emblem-bitmap.eps> [22]
+第 7 章(23ページ)
+) (./chapter7.tex [23
 
 ]
-第 8 章(23ページ)
-) (./conclusion.tex [23
+第 8 章(24ページ)
+) (./conclusion.tex [24
 
 ]
-第 9 章(24ページ)
-) (./thanx.tex [24
+第 9 章(25ページ)
+) (./thanx.tex [25
 
-]) (./master_paper.bbl [25
+]) (./master_paper.bbl [26
 
 ]
 
@@ -397,24 +403,27 @@
 LaTeX Font Warning: Font shape `JY1/gt/m/it' undefined
 (Font)              using `JY1/gt/m/n' instead on input line 25.
 
-) (./appendix.tex [26
+) (./appendix.tex [27
 
 ])
 No file master_paper.ind.
-[27
+[28
 
 ] (./master_paper.aux)
 
 LaTeX Font Warning: Some font shapes were not available, defaults substituted.
 
+
+LaTeX Warning: There were undefined references.
+
  ) 
 Here is how much of TeX's memory you used:
- 2473 strings out of 494008
- 34791 string characters out of 6154472
- 177728 words of memory out of 5000000
- 5855 multiletter control sequences out of 15000+600000
+ 2474 strings out of 494008
+ 34809 string characters out of 6154472
+ 177731 words of memory out of 5000000
+ 5856 multiletter control sequences out of 15000+600000
  20103 words of font info for 78 fonts, out of 8000000 for 9000
  745 hyphenation exceptions out of 8191
  33i,12n,40p,301b,1252s stack positions out of 5000i,500n,10000p,200000b,80000s
 
-Output written on master_paper.dvi (34 pages, 74132 bytes).
+Output written on master_paper.dvi (35 pages, 79084 bytes).
--- a/paper/master_paper.lot	Thu Jan 29 16:51:03 2015 +0900
+++ b/paper/master_paper.lot	Sat Jan 31 15:58:41 2015 +0900
@@ -6,7 +6,7 @@
 \contentsline {table}{\numberline {3.2}{\ignorespaces Task 側で使用する API}}{14}
 \addvspace {10\p@ }
 \addvspace {10\p@ }
-\contentsline {table}{\numberline {5.1}{\ignorespaces Ceriumを実行する実験環境}}{20}
+\contentsline {table}{\numberline {5.1}{\ignorespaces Ceriumを実行する実験環境1}}{20}
 \addvspace {10\p@ }
 \addvspace {10\p@ }
 \addvspace {10\p@ }
Binary file paper/master_paper.pdf has changed
--- a/paper/master_paper.tex	Thu Jan 29 16:51:03 2015 +0900
+++ b/paper/master_paper.tex	Sat Jan 31 15:58:41 2015 +0900
@@ -9,7 +9,7 @@
 
 \jtitle{マルチプラットフォーム対応\\並列プログラミングフレームワーク}
 \etitle{}
-\year{平成26年度}
+\year{平成26年度 3月}
 \affiliation{\center%
   \includegraphics[clip,keepaspectratio,width=.15\textwidth]
                   {images/u-ryukyu-Mark.eps}\\
--- a/paper/master_paper.toc	Thu Jan 29 16:51:03 2015 +0900
+++ b/paper/master_paper.toc	Sat Jan 31 15:58:41 2015 +0900
@@ -26,25 +26,26 @@
 \contentsline {section}{\numberline {5.1}マルチコア上での実行の機構}{20}
 \contentsline {section}{\numberline {5.2}ベンチマーク}{20}
 \contentsline {chapter}{\numberline {第6章}GPGPUへの対応}{21}
-\contentsline {subsection}{\numberline {6.0.1}OpenCL による実装の機構}{21}
-\contentsline {subsection}{\numberline {6.0.2}ベンチマーク}{21}
-\contentsline {section}{\numberline {6.1}CUDA}{21}
-\contentsline {subsection}{\numberline {6.1.1}CUDA による実装の機構}{21}
-\contentsline {subsection}{\numberline {6.1.2}ベンチマーク}{21}
-\contentsline {section}{\numberline {6.2}データ並列}{21}
-\contentsline {subsection}{\numberline {6.2.1}データ並列実行の機構}{21}
-\contentsline {subsection}{\numberline {6.2.2}iterate API}{21}
-\contentsline {subsection}{\numberline {6.2.3}ベンチマーク}{21}
-\contentsline {chapter}{\numberline {第7章}並列処理向けI/O}{22}
-\contentsline {section}{\numberline {7.1}新たに実装したI/Oの機構}{22}
-\contentsline {section}{\numberline {7.2}ベンチマーク}{22}
-\contentsline {chapter}{\numberline {第8章}Memory Allocator}{23}
-\contentsline {section}{\numberline {8.1}現状のMemory Allocator}{23}
-\contentsline {section}{\numberline {8.2}新しいMemory Allocator}{23}
-\contentsline {section}{\numberline {8.3}ベンチマーク}{23}
-\contentsline {chapter}{\numberline {第9章}結論}{24}
-\contentsline {section}{\numberline {9.1}まとめ}{24}
-\contentsline {section}{\numberline {9.2}今後の課題}{24}
-\contentsline {chapter}{謝辞}{25}
-\contentsline {chapter}{参考文献}{26}
-\contentsline {chapter}{発表文献}{27}
+\contentsline {section}{\numberline {6.1}OpenCL}{21}
+\contentsline {subsection}{\numberline {6.1.1}OpenCL による実装の機構}{22}
+\contentsline {subsection}{\numberline {6.1.2}ベンチマーク}{22}
+\contentsline {section}{\numberline {6.2}CUDA}{22}
+\contentsline {subsection}{\numberline {6.2.1}CUDA による実装の機構}{22}
+\contentsline {subsection}{\numberline {6.2.2}ベンチマーク}{22}
+\contentsline {section}{\numberline {6.3}データ並列}{22}
+\contentsline {subsection}{\numberline {6.3.1}データ並列実行の機構}{22}
+\contentsline {subsection}{\numberline {6.3.2}iterate API}{22}
+\contentsline {subsection}{\numberline {6.3.3}ベンチマーク}{22}
+\contentsline {chapter}{\numberline {第7章}並列処理向けI/O}{23}
+\contentsline {section}{\numberline {7.1}新たに実装したI/Oの機構}{23}
+\contentsline {section}{\numberline {7.2}ベンチマーク}{23}
+\contentsline {chapter}{\numberline {第8章}Memory Allocator}{24}
+\contentsline {section}{\numberline {8.1}現状のMemory Allocator}{24}
+\contentsline {section}{\numberline {8.2}新しいMemory Allocator}{24}
+\contentsline {section}{\numberline {8.3}ベンチマーク}{24}
+\contentsline {chapter}{\numberline {第9章}結論}{25}
+\contentsline {section}{\numberline {9.1}まとめ}{25}
+\contentsline {section}{\numberline {9.2}今後の課題}{25}
+\contentsline {chapter}{謝辞}{26}
+\contentsline {chapter}{参考文献}{27}
+\contentsline {chapter}{発表文献}{28}