diff presen/presen.rst @ 23:51c95851ae11

fix presentation
author gongo@gendarme.cr.ie.u-ryukyu.ac.jp
date Sat, 14 Feb 2009 19:40:02 +0900
parents 2c5703c3a36e
children de8ba175cc9b
line wrap: on
line diff
--- a/presen/presen.rst	Sat Feb 14 13:54:55 2009 +0900
+++ b/presen/presen.rst	Sat Feb 14 19:40:02 2009 +0900
@@ -1,4 +1,5 @@
-.. include:: <s5defs.txt>
+.. include:: s5defs.txt
+.. include:: <mmlalias.txt>
 
 ===========================================
 Cell 用の Fine-Grain Task Manager の実装
@@ -14,14 +15,13 @@
   **琉球大学 理工学研究科 情報工学専攻 並列信頼研究室**
 
 
-研究の背景と目的
+研究の背景
 ===================
 
-現在、学生実験で PS3Linux を用いてゲーム開発を行っている
+現在、学生実験で PS3Linux を用いてゲーム開発を行っているが、
+学生には困難であることがわかってきている
 
-**しかし、学生には困難!**
-
-+ 問題1:Cell アーキテクチャプログラミング
++ :maroon:`問題1` : :underline:`Cell アーキテクチャプログラミング`
 
   + Many Core による並列プログラミング
 
@@ -29,73 +29,137 @@
 
   + Cell の仕様 (DMA、データのアライメント、etc..)
 
-+ 問題2:ゲーム開発用の Framework が無い
++ :maroon:`問題2` : :underline:`ゲーム開発用の Framework が無い`
+
+実験期間の大半を Cell の勉強に費やさねばならず、
+開発されるゲームのレベルが例年一定以上にならない
+
+研究目的
+============
+
+Many Core Architecture を用いた並列プログラムの開発をサポートするフレームワーク :maroon:`Fine Grain Task Manager` を提案する
+
+- 動作環境
+
+  Mac OS X、Linux、PS3(Cell)
+
+- Fine Grain Task の単位
+
+  サブルーチンまたは関数
+
+- Task Manager を用いた開発行程
+
+  1. 逐次型プログラム
+  2. データやコードを分割したプログラム
+  3. 並列に動かすプログラム
+
+  各段階で信頼性を確保しながら開発を進める
+
+
+研究目的 (Con't)
+==================
+
+**Cerium**
+  Task Manager を用いた、PS3ゲーム開発用フレームワーク
+
+Cerium は 3 つの機能で構成されている
+
+- 独自の :maroon:`Rendering Engine`
+- ゲームに登場するオブジェクトやルールなど、ゲームを構成する要素を
+  木構造として持つ :maroon:`Scene Graph`
+- Rendering Engine や Scene Graph の処理単位を Task とし、複数の Core へ
+  割り振りを行うカーネル :maroon:`TaskManager`
+
+発表の流れ
+======================
+
+- Cell アーキテクチャの概要
+- Many Core プログラミングの特徴
+- Task Manager の実装
+- Task Manager を用いた並列プログラム
+- Cerium
+- Cerium を用いたゲーム
+- まとめと今後の課題
+
+Cell アーキテクチャの概要
+===========================
+
+- :big:`Cell アーキテクチャの概要`
+- :silver:`Many Core プログラミングの特徴`
+- :silver:`Task Manager の実装`
+- :silver:`Task Manager を用いた並列プログラム`
+- :silver:`Cerium`
+- :silver:`Cerium を用いたゲーム`
+- :silver:`まとめと今後の課題`
 
-実験期間の大半を Cell の勉強に費やし、
-開発されるゲームのレベルが例年一定以上にならない
+Cell Broadband Engine
+========================
+
+.. image:: images/cell_arch.jpg
+   :align: center
+   :width: 280px
+  
+- 1個の PPE と 8 個の SPE がリングバスで構成されている
+
+  - Linux 側から使える SPE は 6 個
+
+- SPE は :maroon:`256KB` の Local Store (LS) を持つ
+- SPE からメインメモリへは直接アクセスできない
+
+  - SPE が持つ MFC (Memory Flow Controller) へ
+    :maroon:`DMA 命令` を送ることで行う
+
+Cell の基本機能
+=======================
+
+- :maroon:`DMA (Direct Memory Access)`
+
+  メインメモリと LS 間でデータが転送される
+
+  DMA 転送を行うにはいくつか条件がある
+
+  - データサイズは 16 バイトの倍数
+  - 転送元と転送先のアドレスが 16 バイト境界に揃えられている
+
+- :maroon:`Mailbox`
+
+  SPE の MFC 内にある FIFO キュー
+  
+  PPE と SPE 間で 32 ビットメッセージの交換に用いられる
+
+  キューは 3 種類
+
+  - SPU Inbound Mailbox : PPE |rightarrow| SPE
+  - SPU Outbound Mailbox : SPE |rightarrow| PPE
+  - SPU Outbound interrupt Mailbox : SPE |rightarrow| PPE (割り込み)
+
+Many Core プログラミングの特徴
+================================
+
+- :silver:`Cell アーキテクチャの概要`
+- :big:`Many Core プログラミングの特徴`
+- :silver:`Task Manager の実装`
+- :silver:`Task Manager を用いた並列プログラム`
+- :silver:`Cerium`
+- :silver:`Cerium を用いたゲーム`
+- :silver:`まとめと今後の課題`
+
+
+定常的な並列度の必要性
+========================
+
+**Amdahl 則**
+  元のプログラムの並列化率が低ければ、その性能を生かすことは出来ない
+
+.. image:: images/amdahl.jpg
+   :align: center
+   :width: 360px
 
 .. raw:: html
 
-  <center>
-    &darr;
-  </center>
-
-Many Core Architecture を用いた並列プログラムの開発を
-サポートするフレームワーク「 :red:`Fine Grain Task Manager` 」を提案する
-
-研究目的
-==============
-
-+ 学生実験で PS3Linux を用いてゲーム開発を行っている
-
-  + Cell プログラミングが難しい
-
-    + 並列実行のためのデータ、コードの分割
-    + Cell 仕様 (DMA、アライメント、etc...)
-
-  + 毎回 Cell の勉強からしないと始めないといけないので
-    ゲームプログラムのレベルが一定以上にならない
-
-  + ゲーム開発用のフレームワークが無い
-
-+ 本研究では、Cell のような Many Core Architecture を用いた、
-  並列プログラムの開発をサポートするフレームワークとして、
-  Fine Grain Task Manager を設計する
-+ Task Manager を用いた開発行程
-
-  1. 逐次型プログラム
-  2. データやコードを分割したプログラム(シーケンシャルに動く)
-  3. 並列実行プログラム
+  <div align="center" style="font-size: large;">
+    6 CPU を使っても、プログラムの並列化率が 8 割程度では<br/>
+    3倍程度の性能向上しか得られない
+  </div>
 
-+ 各ステップで信頼性を確かめながら開発を行っていく
-
-+ Task Manager を用いて、PS3 ゲーム開発用フレームワークとして Cerium を開発する
-
-
-作業報告
-======================
-
-- 修論事務提出
-- SceneGraph
-
-  - allExecute
-
-- Camera
-
-
-SceneGraph
-=================
-
-allExecute で一つずつコピーしていく
-
-- remove flag がついた奴はコピーしない
-- 今の実装だと親消すと子も全滅
-
-  - 選べてもいいし、ユーザが自分で付け替えるのは。。。
-
-Camera
-=================
-
-それっぽい動き
-
-
+Amdahl 則より、恒常的に並列プログラムの並列度を維持する必要がある