Mercurial > hg > Papers > 2015 > yuhi-master
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}}
--- 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@ }
--- 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}