changeset 2:44fb87ea539a

*** empty log message ***
author gongo
date Mon, 14 Jul 2008 13:30:06 +0900
parents d40dd97c0a50
children 3ee6deaab278
files compare.tex conclusion.tex ess2008.bib
diffstat 3 files changed, 68 insertions(+), 11 deletions(-) [+]
line wrap: on
line diff
--- a/compare.tex	Mon Jul 14 00:27:51 2008 +0900
+++ b/compare.tex	Mon Jul 14 13:30:06 2008 +0900
@@ -1,5 +1,4 @@
 \section{Cerium の評価と考察}
-
 Cerium Rendering Engine を用いて、
 テクスチャを貼った一つの立方体を回転させるというプログラムを実行した。
 
@@ -37,12 +36,52 @@
 \tabref{tab:hyoka3} より、SPE の台数を増やす事によって、
 実行速度が向上しているのがわかる。
 しかし、正しく台数効果が出ているとは言えない。
-その原因として、TaskManager の実装の不備があげられる。
+原因として
+
+\begin{enumerate}
+\item アルゴリズムのミス
+\item 効率的なデータ及びコード分割がされていない
+\item 全てのタスクを SPE 上で実行していない \label{list:d3}
+\end{enumerate}
+
+等といった事が考えられる。
+ここでは、原因(\ref{list:d3})について考察する。
+
+
+%その原因として、TaskManager の実装の不備があげられる。
+
+%現在、Cerium TaskManager には DMA でメインメモリから SPE 上にプログラムを
+%ロードする機能を実装していないため、
+%必要な時に必要なプログラムだけを SPE 上に置く事が出来ない。
+%SPE の容量では、Cerium の全てのタスクを SPE 上に乗せる事は出来ないため、
+%現在は Rendering のタスクだけを SPE 上にマッピングしてある。
+
+%全てのタスクを SPE 上で実行できるようになれば、
+%実行速度はさらに向上すると考えられる。
 
-現在、Cerium TaskManager には DMA でメインメモリから SPE 上にプログラムを
-ロードする機能を実装していないため、
-必要な時に必要なプログラムだけを SPE 上に置く事が出来ない。
-SPE の容量では、Cerium の全てのタスクを SPE 上に乗せる事は出来ないため、
-現在は Rendering のタスクだけを SPE 上にマッピングしてある。
+SPE の 256KB という容量では、現在の Cerium の全てのタスクを
+SPE 上に乗せる事は出来ないため、\tabref{tab:hyoka1} のように
+Rendering のタスクだけを SPE 上で実行している。
+これを回避するために、SPE プログラムの on-demand load の実装が必要となる。
+実装の方法として、以下のような手段が考えられる。
+
+\begin{enumerate}
+\item メインメモリにマッピングした SPE プログラムを DMA で SPE 上にロードする
+  \label{list:com1}
+\item SPE をタスクの数に対応するように起動し、それぞれにタスクを attach する
+  \label{list:com2}
+\end{enumerate}
+
+OS のカーネルレベルでは、SPE 毎に spufs と呼ぶ
+仮想ファイルシステム(VFS) が与えられており、
+仮想的なファイルとして SPE のリソース にアクセス可能な
+インターフェース が設けられている \cite{spufs}。
+そのため、6台以上の SPE を仮想的に起動する事が可能である。
+(\ref{list:com2}) の手法では、実行するタスクが attach されている
+SPE を切り替えながら実行していく。
+
 全てのタスクを SPE 上で実行できるようになれば、
-実行速度はさらに向上すると考えられる。
+タスク単体の実行速度は向上すると考えられる。
+しかし、SPE プログラムもしくは仮想 SPE の入れ替えのコストが発生するため、
+プログラム全体として向上するかは検証する必要があり、
+on-demand load の実装と共に、今後の課題として挙げられる。
--- a/conclusion.tex	Mon Jul 14 00:27:51 2008 +0900
+++ b/conclusion.tex	Mon Jul 14 13:30:06 2008 +0900
@@ -1,9 +1,13 @@
 \section{まとめ}
 本研究では、Many Core Architecture 向けの Fine Grain Task Manager を実装した。
-Task Manager を用いれば、
-シーケンシャルプログラムから並列プログラムへの変換が容易にできる。
-
 また、例題として Cell 上で動作する、ゲームプログラム用フレームワークである
 Cerium を開発した。PS3 上という限られた環境だけでなく、
 Linux や Mac OS X でもテストやデバッグを行うことが出来るため、
 並列プログラミング経験の低い学生の実験にも使用できる。
+
+シーケンシャルプログラムから並列プログラムへ変換する際、
+コードをタスクとして分割したり、データ構造をタスクや SPE などの特殊な環境に
+合うような構造に変換する必要があるため、
+並列処理の経験がないプログラマに対しては、何らかの雛形が必要である。
+
+
--- a/ess2008.bib	Mon Jul 14 00:27:51 2008 +0900
+++ b/ess2008.bib	Mon Jul 14 13:30:06 2008 +0900
@@ -61,3 +61,17 @@
 title = "{Cell BroadbandEngine アーキテクチャ}",
 year = 2006
 }
+
+@article{kono,
+author = "{Shinji KONO}",
+title = "{検証を自身で表現できるハードウェア、ソフトウェア記述言語 Continuation ba sed C と、その Cell への応用}",
+journal = "{電子情報通信学会VLSI設計技術研究会}",
+year = 2008
+}
+
+@article{spufs,
+author = "{Toshiyuki SANUKI}",
+title = "{Cell Broadband Engine \texttrademark を用いたブレード・サーバーの設計と実装}",
+journal = "{IBM PROVISION No.48}",
+year = 2006
+}