changeset 4:6cf0f731cbde draft

fix
author Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
date Wed, 08 Feb 2012 21:49:40 +0900
parents 8f30309c4096
children b8d790bccfe7
files paper/chapter2.tex paper/chapter3.tex paper/conclusion.tex paper/master_paper.pdf paper/master_paper.tex
diffstat 5 files changed, 31 insertions(+), 9 deletions(-) [+]
line wrap: on
line diff
--- a/paper/chapter2.tex	Tue Feb 07 17:42:08 2012 +0900
+++ b/paper/chapter2.tex	Wed Feb 08 21:49:40 2012 +0900
@@ -558,7 +558,7 @@
 \item バリア同期が完了し、PPE 側で次の Task が作られる時間
 \end{itemize}
 
-この二つの時間の間SPEの処理が止まり、処理性能の低下につながる。この待ち時間を回避するためには、Taskの粒度を下げる、他の SPE の処理完了を待っている SPE に、別の Task を割り当てる、等の方法がある。別の Task を割り当てるには Task の実行をパイプライン化する方法がある。そこで、特に3つの Task の中でも処理の重い DrawSpanTask と、CreatePolygonTask, CreateSpanTask の Task でパイプライン化を行っている。(\figref{rend-dep}) 速度比較の対象として、SuperDnady と呼ばれる、学生実験で制作されたシューティングゲームを用いた。FPSは一秒あたりの RednderingEngine 全体の処理回数(Frame per Scecond)であり、busy ration はSPEの稼働率である。(\tabref{pipeline_superdandy})
+この二つの時間の間SPEの処理が止まり、処理性能の低下につながる。この待ち時間を回避するためには、Taskの粒度を下げる、他の SPE の処理完了を待っている SPE に、別の Task を割り当てる、等の方法がある。別の Task を割り当てるには Task の実行をパイプライン化する方法がある。そこで、特に3つの Task の中でも処理の重い DrawSpanTask と、CreatePolygonTask, CreateSpanTask の Task でパイプライン化を行っている。(\figref{rend-dep}) 速度比較の対象として、ball bound を用いる。FPSは一秒あたりの RednderingEngine 全体の処理回数(Frame per Scecond)であり、busy ration はSPEの稼働率である。(\tabref{pipeline_ballbound})
 
 \begin{figure}[htb]
   \begin{center}
--- a/paper/chapter3.tex	Tue Feb 07 17:42:08 2012 +0900
+++ b/paper/chapter3.tex	Wed Feb 08 21:49:40 2012 +0900
@@ -19,6 +19,23 @@
   \label{fig:wc-graf}
 \end{figure}
 
+サイズを 100MB, 200MB としたテキストファイルを対象に、速度の測定を行った。Linux wc は PS3上の Linux のが提供するwcコマンドを用いた結果で PPE 1基を利用したものである。Cerium wc は SPE 6基 を用い今回実装した word count の計測結果である。(\tabref{wc_speed}) 
+
+\begin{table}[!htb]
+  \begin{center}
+    \caption{speed of WordCount} \label{tab:wc_speed}
+    \hbox to\hsize{\hfil
+      \begin{tabular}{|c|c|c|c|} \hline
+           wc     & file size(MB) & time(sec) \\ \hline
+         Linux    &  100         & 30.9      \\ \hline
+         Linux    &  200         & 62.8      \\ \hline
+         Cerium   &  100         & 2.2       \\ \hline
+         Cerium   &  200         & 12.8       \\ \hline
+      \end{tabular}\hfil}
+  \end{center}
+\end{table}
+
+100MBのテキストを扱う場合には、Linux と比べ15倍ほどの差が見られた。200MB の場合は約5倍ほどであるのは、PPE のメモリ容量が256MBとなっており、200MBのファイルを扱う場合には、頻繁にスワップなどが起きているため、ファイルのIOの部分でのオーバヘッドが高いと考えられる。通常のwcコマンドよりも Cerium を用いた wc が高い性能を示した。
 
 \section{Sort}
 
--- a/paper/conclusion.tex	Tue Feb 07 17:42:08 2012 +0900
+++ b/paper/conclusion.tex	Wed Feb 08 21:49:40 2012 +0900
@@ -1,12 +1,11 @@
 \chapter{結論} \label{chapter:conclusion}
 \section{まとめ}
 本研究では並列プログラミングフレームワーク Cerium の改良を行った。Cerium は並列プログラミングをサポートする TaskManager、ソフトウェアレンダリングを行う RenderinEngine, ゲームのシーンを記述していく、SceneGraph から構成されている。学生実験で行うCell上でのゲーム作成を考慮にいれた並列プログラミングフレームワークである。Ceirum 開発後に学生実験での使用や、例題を実装していく上で、仕様通りの稼働率がでないことや、アーキテクチャ依存の記述が避けづらいことなど、フレームワークとしての信頼性が十分でないことが明らかになった。
-特に Cell上での実行の場合には、SPE との通信の待ち時間が約70\%と、処理性能に関わっている。そこで SPE と PPE の通信部分である Mail について、TaskArrayの実装と使用、ソフトウェアMailQueueの実装をし改良を行った。その結果 FPS の向上、Mail 待ち時間の減少に効果が見られた。
-また、Task 内でのアーキテクチャ依存の記述を MemorySegment によって、避けることに成功した。また MemorySegment を用いることでメモリ管理を抽象化することができる。その他の先行研究の改良として、Task のパイプライン化、Texutre のキャッシュなどがある。これらの改良によっても、FPSの向上や、DMA転送の待ち時間が改善された。Cerium の改良を重ね、結果として約17FPSの向上に成功した。また Mail の待ち時間は約18\%削減できた。
+特に Cell上での実行の場合には、SPE との通信の待ち時間が約70\%と、処理性能に関わっている。そこで SPE と PPE の通信部分である Mail について、TaskArray の実装と使用、ソフトウェア MailQueue の実装をし改良を行った。その結果 FPS の向上、Mail 待ち時間の減少に効果が見られた。
+また、Task 内でのアーキテクチャ依存の記述を MemorySegment によって、避けることに成功した。また MemorySegment を用いることでメモリ管理を抽象化することができる。その他の先行研究の改良として、Task のパイプライン化、Texutre のキャッシュなどがある。これらの改良によっても、FPS の向上や、DMA 転送の待ち時間が改善された。Cerium の改良を重ね、結果として約17 FPS の向上に成功した。また Mail の待ち時間は約18\%削減できた。
 
 \section{今後の課題}
-\subsection{プログラムの Task化}
-各コアの稼働率の向上のためには、本研究で行った改良の他に、プログラムの Task 化を進める必要がある。Mail の通信の待ち時間は内訳は
+各コアの稼働率の向上のためには、さらに Mail の待ち時間を削減する必要がある。Mail の通信の待ち時間は内訳は
 
 \begin{description}
 \item PPE の対応が遅れる
@@ -14,13 +13,19 @@
 \end{description}
 
 の二つの要素がある。PPE の対応が遅れる場合には PPE側に処理するべきプログラムがあり、Mail の対応が遅れる原因がある。
-そのため 制御用の PPE は処理するべきプログラムは排除し、Mail 通知の対応や、Task の割り振りを専門に PPE が行うことによって、SPE の稼働率向上を果たせると考える。また バリア同期を行うと 割り振られた処理によっては 他の SPE よりも早く処理が終了し、他の SPE を待つ時間が生じる場合がある。この二つの要素は、PPE 側のプログラムの Task化 を行い、さらにその Task はなるべく粒度を細かく設定することで解決できると考える。プログラムを Task 化しなるべく PPE ではなく SPEに処理を任せる。また粒度を細かくすることは、各 SPE への均等な Task の分散のために必要であり、並列化部分の特定にも繋がる。
+そのため 制御用の PPE は処理するべきプログラムは排除し、Mail 通知の対応や、Task の割り振りを専門に PPE が行うことによって、SPE の稼働率向上を果たせると考える。また バリア同期を行うと 割り振られた処理によっては 他の SPE よりも早く処理が終了し、他の SPE を待つ時間が生じる場合がある。
+
+\subsection{プログラムの Task 化}
+PPE での Task 管理以外の処理を排除するため、具体的には、プログラムの Task化 を行い Task の部分を SPE で処理する方法がある。現在 RenderingEngien 部分のほとんどが Task 化されているが、ScenenGraph 部分は Task 化されていない。SceneGraph 部分の Task 化が必要である。
 
 \subsubsection{SPE の LS の利用方法}
-\subsubsection{Task のインターフェイス}
-\subsubsection{自動的な依存関係の解決}
 
 
+\subsubsection{Taskの粒度}
+バリア同期の際に 他の SPE を待つ時間を削減するために、Task はなるべく粒度を細かく設定することで解決できると考える。
+粒度を細かくすることは、各 SPE への均等な Task の分散のために必要であり、並列化部分の特定にも繋がる。
+
+\subsection{自動的な依存関係の解決}
 
 
 \subsection{DataSegment}
Binary file paper/master_paper.pdf has changed
--- a/paper/master_paper.tex	Tue Feb 07 17:42:08 2012 +0900
+++ b/paper/master_paper.tex	Wed Feb 08 21:49:40 2012 +0900
@@ -7,7 +7,7 @@
 \input{dummy.tex} %% font
 
 \jtitle{並列プログラミングフレームワーク Cerium の改良}
-\etitle{}
+\etitle{Improvement of parallel programming framework Cerium}
 \year{平成23年度}
 \affiliation{\center%
   \includegraphics[clip,keepaspectratio,width=.15\textwidth]