# HG changeset patch # User Yuhi TOMARI # Date 1424020542 -32400 # Node ID 7c5bf9ec7eb335f8e6a81d4ece07efc3626085c6 # Parent 8d128c5feb47cc8c6055b0b514641363f9cfe20d conclusion.but should fix. diff -r 8d128c5feb47 -r 7c5bf9ec7eb3 paper/conclusion.tex --- a/paper/conclusion.tex Sun Feb 15 20:13:05 2015 +0900 +++ b/paper/conclusion.tex Mon Feb 16 02:15:42 2015 +0900 @@ -4,13 +4,34 @@ 本研究室で開発している Cerium を用いて、 マルチプラットフォーム対応並列プログラミングフレームワークに関する研究を行った。 -マルチプラットフォームへの対応として、マルチコア CPU と GPU における実行を可能にした。 -マルチコア CPU は SynchronizedQueue 、 GPU は OpenCL と CUDA を用いて対応した。 -更に、 Blocked Read による並列処理向けのI/Oの実装を行った。 -これらの追加した機能を WordCount 、FFT 、 Sort を例題に性能を測定できた。 +マルチコア CPU や GPU といったマルチプラットフォームなアーキテクチャ上でリソースを有効活用するには、 +それぞれのプラットフォームに対して適した形でプログラムが並列に動作できるようチューニングする必要がある。 +しかしこれらのチューニングは非常に複雑になる。 +動作させたいプラットフォームに対応した、適切なチューニングを行えるフレームワークが必要である。 + +Cerium では Scheduler がパイプラインの機構を持っており、Task はパイプラインに沿って実行されている。 +Scheduler が受信した Task は既に TaskManager が依存関係を解決しているため、実行順序は任意で良く、パイプラインによる実行が可能となっている。 +Cerium はプログラムの様々なレベルでパイプライン処理を行っており、 +WordCount のようなシンプルな問題でも並列化することで性能向上が確認できた。 -ベンチマークの結果から、GPU による並列処理を行う場合データ並列による実行が不可欠であることがわかった。 +マルチコア CPU への対応として、 SynchronizedQueue を用いた機構を実装し、並列実行を可能にした。 +WordCount と Sort による測定の結果、高い並列度を維持出来ていることを確認した。 +また、より高い性能を持つ計算機で測定したところ、速度の向上を確認できた。 + +OpenCL と CUDA を用いて GPGPU への対応を行った。 +WordCount による測定を行ったが、データ並列実行をサポートすることで飛躍的な性能を確認できた。 +SIMD 型であることやループ命令を苦手とするといった理由から、 +GPU における演算はデータ並列による実行をサポートしなければ性能が出ない事がわかった。 +Cerium においてプログラマは Task を記述し、 +Input データを用意した後はデータ並列用の API で Task を spawn することでデータ並列用の Task を生成する。 +TaskManager はプログラマが記述した単一の Task を複数生成し、受け取ったデータ(Input)に対しその Task を割り当てる。 +生成した複数の Task を並列実行する事でデータ並列実行を実現した。 また、GPU は SharedMemory でないため、入出力がネックになる場合が多い。 それらのオーバヘッドを吸収するために GPU 制御のコマンドはパイプライン形式で実行していくのが望ましい。 +更に、 Blocked Read による並列処理向けのI/Oの実装を行った。 +I/O 専用の Thread を追加し、Task が割り込みが起きた際のオーバーヘッドを減らすことに成功した。 +一般的なfile open である mmap と read の測定も行い、BlockedRead を含めたそれぞれの読み込みに対して、 +どのような状況でより性能を発揮できるのか考察を行った。 + \section{今後の課題} diff -r 8d128c5feb47 -r 7c5bf9ec7eb3 paper/master_paper.aux --- a/paper/master_paper.aux Sun Feb 15 20:13:05 2015 +0900 +++ b/paper/master_paper.aux Mon Feb 16 02:15:42 2015 +0900 @@ -133,15 +133,15 @@ \@writefile{lot}{\addvspace {10\p@ }} \newlabel{chapter:conclusion}{{10}{39}} \@writefile{toc}{\contentsline {section}{\numberline {10.1}まとめ}{39}} -\@writefile{toc}{\contentsline {section}{\numberline {10.2}今後の課題}{39}} +\@writefile{toc}{\contentsline {section}{\numberline {10.2}今後の課題}{40}} \citation{*} \bibstyle{junsrt} \bibdata{master_paper} -\@writefile{toc}{\contentsline {chapter}{謝辞}{40}} +\@writefile{toc}{\contentsline {chapter}{謝辞}{41}} \bibcite{nobuyasu:2013a}{1} \bibcite{shoshi:2011a}{2} \bibcite{shoshi:2011b}{3} \bibcite{cassandra}{4} \bibcite{bigtable}{5} -\@writefile{toc}{\contentsline {chapter}{参考文献}{41}} -\@writefile{toc}{\contentsline {chapter}{発表文献}{42}} +\@writefile{toc}{\contentsline {chapter}{参考文献}{42}} +\@writefile{toc}{\contentsline {chapter}{発表文献}{43}} diff -r 8d128c5feb47 -r 7c5bf9ec7eb3 paper/master_paper.dvi Binary file paper/master_paper.dvi has changed diff -r 8d128c5feb47 -r 7c5bf9ec7eb3 paper/master_paper.log --- a/paper/master_paper.log Sun Feb 15 20:13:05 2015 +0900 +++ b/paper/master_paper.log Mon Feb 16 02:15:42 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) 15 FEB 2015 20:10 +This is e-pTeX, Version 3.1415926-p3.4-110825-2.6 (utf8.euc) (TeX Live 2013) (format=platex 2013.5.30) 16 FEB 2015 02:10 entering extended mode \write18 enabled. %&-line parsing enabled. @@ -468,15 +468,18 @@ [38] 第 10 章(39ページ) -) (./thanx.tex [39 +[39 -]) (./master_paper.bbl [40 +]) (./thanx.tex +File: images/emblem-bitmap.eps Graphic file (type eps) + [40]) (./master_paper.bbl +[41 -]) (./appendix.tex [41 +]) (./appendix.tex [42 ]) No file master_paper.ind. -[42 +[43 ] (./master_paper.aux) @@ -495,4 +498,4 @@ 745 hyphenation exceptions out of 8191 30i,12n,40p,213b,1954s stack positions out of 5000i,500n,10000p,200000b,80000s -Output written on master_paper.dvi (49 pages, 140856 bytes). +Output written on master_paper.dvi (50 pages, 144408 bytes). diff -r 8d128c5feb47 -r 7c5bf9ec7eb3 paper/master_paper.pdf Binary file paper/master_paper.pdf has changed diff -r 8d128c5feb47 -r 7c5bf9ec7eb3 paper/master_paper.toc --- a/paper/master_paper.toc Sun Feb 15 20:13:05 2015 +0900 +++ b/paper/master_paper.toc Mon Feb 16 02:15:42 2015 +0900 @@ -36,7 +36,7 @@ \contentsline {section}{\numberline {9.3}StarPU}{37} \contentsline {chapter}{\numberline {第10章}結論}{39} \contentsline {section}{\numberline {10.1}まとめ}{39} -\contentsline {section}{\numberline {10.2}今後の課題}{39} -\contentsline {chapter}{謝辞}{40} -\contentsline {chapter}{参考文献}{41} -\contentsline {chapter}{発表文献}{42} +\contentsline {section}{\numberline {10.2}今後の課題}{40} +\contentsline {chapter}{謝辞}{41} +\contentsline {chapter}{参考文献}{42} +\contentsline {chapter}{発表文献}{43}