changeset 8:8a5b9b4ed2a1

add file
author Yutaka_Kinjyo
date Tue, 15 Mar 2011 18:56:51 +0900
parents 20c53b35f2ab
children 11c331ded259
files paper/ARC195OS117-32.pdf paper/ARC195OS117-32.tex paper/images/amdahl.bb paper/images/amdahl.pdf
diffstat 4 files changed, 59 insertions(+), 30 deletions(-) [+]
line wrap: on
line diff
Binary file paper/ARC195OS117-32.pdf has changed
--- a/paper/ARC195OS117-32.tex	Sun Mar 13 09:09:42 2011 +0900
+++ b/paper/ARC195OS117-32.tex	Tue Mar 15 18:56:51 2011 +0900
@@ -186,12 +186,12 @@
 
 \begin{table}[!htb]
   \begin{center}
-    \caption{1秒辺りの Rendering Engine 全体の処理回数} \label{tab:FPS}
-    \ecaption {Frame per Second} 
+    \caption{MailQueue の効果(ball\_bound)} \label{tab:mailqueue}
+    \ecaption {Effect of MailQueue(ball\_bound)} 
     \hbox to\hsize{\hfil
       \begin{tabular}{|c|l|l|c|} \hline
          & 改良前 & 改良後 & 性能\\ \hline
-         ball\_bound & 32.4 FPS & 41.3 FPS & 27\%向上 \\ \hline
+         ball\_bound & 29 FPS & 33.3 FPS & 15\%向上 \\ \hline
       \end{tabular}\hfil}
   \end{center}
 \end{table}
@@ -210,22 +210,38 @@
 生じる可能性が減る。
 
 Rendering Engine の中で、最も数が多く生成される DrawSpanTask を Task Array 化した。
-地球と月を表示する例題を対象に効果を測った。 FPS(Frame Per Second) は、一秒間に
-表示できる Frame 数のことである。
+ボールが跳ねる例題(ball\_bound)、地球と月を表示する例題を対象に効果を測った。 FPS(Frame Per Second) は、一秒間に
+表示できる Frame 数のことである。TaskArray は MailQueue と同様に Mail通知に関係している。
+それぞれの有無の場合を計測した。
+
+\begin{table}[!htb]
+  \begin{center}
+    \caption{TaskArrayの効果(ball\_bound)} \label{tab:taskarray}
+    \ecaption {Effect of TaskArray(ball\_bound)} 
+    \hbox to\hsize{\hfil
+      \begin{tabular}{|c|l|l|c|} \hline
+         & 改良前 & 改良後 & 性能\\ \hline
+         ball\_bound & 29 FPS & 34 FPS & 17\%向上 \\ \hline
+      \end{tabular}\hfil}
+  \end{center}
+\end{table}
 
 \begin{table}[htb]
   \begin{center}
-    \caption{Rendering Engine の Task Array 化による比較}
-    \label{tab:rendering-taskarray-compare}
-    \begin{tabular}{|c|c|c|c|}
+    \caption{Task Array と MailQueue の効果(universe)}
+    \ecaption{Effect of TaskArray and MailQueue(universe)}
+    \label{tab:taskarray-mailqueue}
+    \begin{tabular}{|c|c|c|c|c|}
       \hline
-      & Task & Task Array & 向上率\\
+      TaskArray & MailQueue & FPS & dma wait & mail wait\\
       \hline
-      FPS & 16.4 & 18.5 \% & 34\%\\
+      あり & あり & 20 FPS & 1.78\% & 67\&\\
+      \hline
+      あり & なし & 18.5 FPS & 1.88\% & 69\%\\
       \hline
-      dma wait & 3.34\% & 1.88\% & 2.34\%\\
+      なし & あり & 18.5 FPS & 1.4\% & 74\%\\
       \hline
-      mail wait & 84\% & 69\% & 15\% \\
+      なし & なし & 16.4 FPS & 3.3\% & 84\%\\
       \hline
     \end{tabular}
   \end{center}
@@ -270,38 +286,29 @@
   \begin{center}
     \includegraphics[scale=0.5]{./images/rend-dep.pdf}
   \end{center}
-  \caption{パイプライン化}
+  \caption{RenderingEngineのパイプライン化の様子}
   \label{fig:rend-dep}
 \end{figure}
 
 速度比較の対象として、SuperDandy と呼ばれる、学生実験で制作されたシューティングゲームを用いた。
+FPS は一秒あたりの Rendering Engine 全体の処理回数 (Frame per Scecond)、busy ration はSPE の
+稼働率。
+
 
 \begin{table}[!htb]
   \begin{center}
-    \caption{SPE の稼働率(busy\_ratio)} \label{tab:busy_ratio}
-    \ecaption{busy ration of spe}
+    \caption{PipeLine化の結果} \label{tab:busy_ratio}
+    \ecaption{result of use Pipeline}
     \hbox to\hsize{\hfil
       \begin{tabular}{|c|l|l|c|} \hline
          & 改良前 & 改良後 & 性能\\ \hline
-         dandy & 47.2\% & 78.1\% & 向上 \\ \hline
+         FPS & 29.4 FPS & 49.5 FPS & 68\%向上 \\ \hline
+         busy\_ration & 47.2\% & 78.1\% & 30.9\&向上 \\ \hline
       \end{tabular}\hfil}
   \end{center}
 \end{table}
 
-
-\begin{table}[!htb]
-  \begin{center}
-    \caption{1秒辺りの Rendering Engine 全体の処理回数}
-    \ecaption {Frame per Second}  \label{tab:rend}
-    \hbox to\hsize{\hfil
-      \begin{tabular}{|c|l|l|c|} \hline
-         & 改良前 & 改良後 & 性能\\ \hline
-         dandy & 29.4 FPS & 49.5 FPS & 68\%向上 \\ \hline
-      \end{tabular}\hfil}
-  \end{center}
-\end{table}
-
-パイプライン化した結果(\tabref{tab:busy_ratio},\tabref{tab:rend})、SPEの稼働率が向上し、FPSも向上した。
+パイプライン化した結果(\tabref{tab:busy_ratio})、SPEの稼働率が向上し、FPSも向上した。
 処理性能を維持するには、SPEはなるべく稼働させ続けなければならない。
 その為には処理をTaskに分割し、並列実行するだけでなく、バリア同期などで、
 SPEの待ち時間が発生することへ対処しないといけない。
@@ -476,6 +483,22 @@
 
 Coreの待ち時間を減らすことは、Coreの稼働率の向上につながり処理性能が向上する。
 各Coreの待ち時間は並列プログラミングにおいて、特に注意しなければならない。
+それは、Amdahlの法則からも言える。
+
+並列実行には Amdahl の法則(\cite{amdahl})があり、使用する CPU を増やしても、元のプログラムの並列化率
+が低ければ、その性能を活かすことができないとされている。例えば、プログラムの 8 割
+を並列化したとしても、6CPU で 3 倍程度の性能向上しか得られない(\figref{fig:amdahl})
+
+\begin{figure}[htb]
+  \begin{center}
+    \includegraphics[scale=0.75]{images/amdahl.pdf}
+    \caption{Amdahl の法則}
+    \label{fig:amdahl}
+  \end{center}
+\end{figure}
+
+このことから、恒常的に並列度を維持する必要があることが分かる。
+
 
 \section{今後の課題}
 
@@ -488,6 +511,7 @@
 データの依存関係をシステム側で監視し、その依存関係を元に処理を行うことでシステ
 ム側からの依存関係の記述が実現できる。もしくは、Taskの依存関係は別の言語で記述
 し、TaskManager がその記述に沿って、定義されたTaskの実行する方法も考えられる。
+また、TaskArrayもTaskとデータの依存関係から、自動で作成できると考える。
 
 \subsection{Code Load}
 SPE は LS 以外のメモリに
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/paper/images/amdahl.bb	Tue Mar 15 18:56:51 2011 +0900
@@ -0,0 +1,5 @@
+%%Title: /Users/e065725/thesis/yutaka-sigos/paper/images/amdahl.pdf
+%%Creator: extractbb 20100328
+%%BoundingBox: 0 0 360 252
+%%CreationDate: Tue Mar 15 18:38:42 2011
+
Binary file paper/images/amdahl.pdf has changed