annotate introduction.tex @ 15:6c558cd2ac8b

*** empty log message ***
author gongo
date Sat, 29 Mar 2008 09:33:55 +0900
parents 8748eb526921
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
9
fea1ac32de27 *** empty log message ***
gongo
parents: 8
diff changeset
1 \section{研究の目的}
7
bd8574dedd1b *** empty log message ***
gongo
parents: 6
diff changeset
2
15
6c558cd2ac8b *** empty log message ***
gongo
parents: 12
diff changeset
3 %% % これは研究の目的としては「近すぎる」
6c558cd2ac8b *** empty log message ***
gongo
parents: 12
diff changeset
4 %% % 最終目標は「レンダリングエンジンを作る」ではなく
6c558cd2ac8b *** empty log message ***
gongo
parents: 12
diff changeset
5 %% % 「OSを作る」だから。(でいいのかな
6c558cd2ac8b *** empty log message ***
gongo
parents: 12
diff changeset
6 %%
6c558cd2ac8b *** empty log message ***
gongo
parents: 12
diff changeset
7 %%PlayStation 3 (以下 PS3) では、搭載された Linux を用いて、
6c558cd2ac8b *** empty log message ***
gongo
parents: 12
diff changeset
8 %%PS3 上で動くゲーム開発することができる。
6c558cd2ac8b *** empty log message ***
gongo
parents: 12
diff changeset
9 %%しかし、現在 GPU (Graphics Processing Unit) の API は
6c558cd2ac8b *** empty log message ***
gongo
parents: 12
diff changeset
10 %%一般には公開されていないため、GPU を使った描画はできない。
6c558cd2ac8b *** empty log message ***
gongo
parents: 12
diff changeset
11 %%Frame Buffer 上には直接描画することはできるため、
6c558cd2ac8b *** empty log message ***
gongo
parents: 12
diff changeset
12 %%我々は Frame Buffer 上に描画するゲームフレームワークを提案してきた。
6c558cd2ac8b *** empty log message ***
gongo
parents: 12
diff changeset
13 %%
6c558cd2ac8b *** empty log message ***
gongo
parents: 12
diff changeset
14 %%本研究では、PS3 上で高速な描画が可能な、独自のレンダリングエンジンとして、
6c558cd2ac8b *** empty log message ***
gongo
parents: 12
diff changeset
15 %%Cerium Rendering Engine の開発を行う。
6c558cd2ac8b *** empty log message ***
gongo
parents: 12
diff changeset
16 %%Cerium は、次の 3 つから構成される。
6c558cd2ac8b *** empty log message ***
gongo
parents: 12
diff changeset
17 %%
6c558cd2ac8b *** empty log message ***
gongo
parents: 12
diff changeset
18 %%\begin{itemize}
6c558cd2ac8b *** empty log message ***
gongo
parents: 12
diff changeset
19 %% \item Scene Graph
6c558cd2ac8b *** empty log message ***
gongo
parents: 12
diff changeset
20 %% \item Rendering Engine
6c558cd2ac8b *** empty log message ***
gongo
parents: 12
diff changeset
21 %% \item Task Manager
6c558cd2ac8b *** empty log message ***
gongo
parents: 12
diff changeset
22 %%\end{itemize}
6c558cd2ac8b *** empty log message ***
gongo
parents: 12
diff changeset
23 %%
6c558cd2ac8b *** empty log message ***
gongo
parents: 12
diff changeset
24 %%Cerium は Cell 上だけでなく、Linux や Mac OS X 上でも
6c558cd2ac8b *** empty log message ***
gongo
parents: 12
diff changeset
25 %%動く、シーケンシャルなプログラムも実装することが出来る。
6c558cd2ac8b *** empty log message ***
gongo
parents: 12
diff changeset
26 %%並列プログラムとシーケンシャルプログラムの相互の変換は容易である。
6c558cd2ac8b *** empty log message ***
gongo
parents: 12
diff changeset
27 %%これにより、全体の動作のデバッグはシーケンシャルプログラムで行い、
6c558cd2ac8b *** empty log message ***
gongo
parents: 12
diff changeset
28 %%仕様が正しいと確認できたら、 Cell 上などの特有の環境で
6c558cd2ac8b *** empty log message ***
gongo
parents: 12
diff changeset
29 %%動作、デバッグを行えばいい。
6c558cd2ac8b *** empty log message ***
gongo
parents: 12
diff changeset
30 %%
6c558cd2ac8b *** empty log message ***
gongo
parents: 12
diff changeset
31
6c558cd2ac8b *** empty log message ***
gongo
parents: 12
diff changeset
32 近年、CPU の性能向上は、クロックサイクルを上げることよりも、
6c558cd2ac8b *** empty log message ***
gongo
parents: 12
diff changeset
33 複数の CPU コア (Many Core Architecture) を導入することにより
6c558cd2ac8b *** empty log message ***
gongo
parents: 12
diff changeset
34 得られるようになってきている。しかし、Many Core Architecture の
6c558cd2ac8b *** empty log message ***
gongo
parents: 12
diff changeset
35 プログラムは複雑であり、その信頼性を確保することは難しい。
6c558cd2ac8b *** empty log message ***
gongo
parents: 12
diff changeset
36
6c558cd2ac8b *** empty log message ***
gongo
parents: 12
diff changeset
37 本研究では、Many Core Architecture 向けの Fine Grain Task OS を設計する。
6c558cd2ac8b *** empty log message ***
gongo
parents: 12
diff changeset
38 この OS では、Amdahl 則を考慮して、
6c558cd2ac8b *** empty log message ***
gongo
parents: 12
diff changeset
39 定常的な並列性を細粒度タスクを使って実現する。
6c558cd2ac8b *** empty log message ***
gongo
parents: 12
diff changeset
40 そのために、シーングラフレベルから並列実行を考慮したプログラムとする。
6c558cd2ac8b *** empty log message ***
gongo
parents: 12
diff changeset
41
6c558cd2ac8b *** empty log message ***
gongo
parents: 12
diff changeset
42 細粒度タスク自体や、タスク全体のデバッグを容易にするために、
6c558cd2ac8b *** empty log message ***
gongo
parents: 12
diff changeset
43 同じタスクが Mac OS X や Linux、PS3 上など複数の環境で動くようにする。
6c558cd2ac8b *** empty log message ***
gongo
parents: 12
diff changeset
44 また、Thread を多用せず、細粒度タスク内での同期は行わない。
6c558cd2ac8b *** empty log message ***
gongo
parents: 12
diff changeset
45 これにより、並列プログラミングの経験の低いプログラマでも
6c558cd2ac8b *** empty log message ***
gongo
parents: 12
diff changeset
46 容易に使用できる。
6c558cd2ac8b *** empty log message ***
gongo
parents: 12
diff changeset
47
6c558cd2ac8b *** empty log message ***
gongo
parents: 12
diff changeset
48 例題として、本研究室で作成した、Rendering を含む PS3 上のゲームプログラム用
6c558cd2ac8b *** empty log message ***
gongo
parents: 12
diff changeset
49 OS である Cerium \cite{gongo} を用いる。
6c558cd2ac8b *** empty log message ***
gongo
parents: 12
diff changeset
50
9
fea1ac32de27 *** empty log message ***
gongo
parents: 8
diff changeset
51 Cerium は、次の 3 つから構成される。
7
bd8574dedd1b *** empty log message ***
gongo
parents: 6
diff changeset
52
9
fea1ac32de27 *** empty log message ***
gongo
parents: 8
diff changeset
53 \begin{itemize}
fea1ac32de27 *** empty log message ***
gongo
parents: 8
diff changeset
54 \item Scene Graph
fea1ac32de27 *** empty log message ***
gongo
parents: 8
diff changeset
55 \item Rendering Engine
15
6c558cd2ac8b *** empty log message ***
gongo
parents: 12
diff changeset
56 \item Fine Grain Task Manager
9
fea1ac32de27 *** empty log message ***
gongo
parents: 8
diff changeset
57 \end{itemize}
7
bd8574dedd1b *** empty log message ***
gongo
parents: 6
diff changeset
58
15
6c558cd2ac8b *** empty log message ***
gongo
parents: 12
diff changeset
59 Cerium では、Cell の性能を十分に引き出し、
6c558cd2ac8b *** empty log message ***
gongo
parents: 12
diff changeset
60 今まで作成してきた PS、PS2 のゲームプログラムを PS3 へ
6c558cd2ac8b *** empty log message ***
gongo
parents: 12
diff changeset
61 容易に移植できることを目的とする。