annotate paper/introduciton.tex @ 29:57a914ebe900 default tip

fix
author gongo@gendarme.cr.ie.u-ryukyu.ac.jp
date Tue, 17 Feb 2009 17:11:52 +0900
parents df0056a7b95d
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
one@firefly.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
1 \chapter{序論}
one@firefly.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
2 \pagenumbering{arabic}
one@firefly.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
3
one@firefly.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
4 \section{研究背景と目的}
one@firefly.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
5
one@firefly.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
6 現在、学生実験にて家庭用ゲーム機を用いたゲーム開発を行っている。
one@firefly.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
7 過去に PlayStation や PlayStation 2、Game Boy Advance を用いており、
one@firefly.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
8 近年では PlayStation 3 (以後 PS3) で動作するゲーム開発を行っている。
one@firefly.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
9
one@firefly.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
10 PS3 には Fedora \cite{fedora} や Yellow Dog Linux \cite{ydl} といった
one@firefly.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
11 Linux OS をインストールできるので、
one@firefly.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
12 学生が今まで学んできた C や C++ といったプログラム言語を用いて
one@firefly.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
13 Linux 上でプログラミングすることが可能となっている。
one@firefly.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
14 しかし、PS3 のアーキテクチャである Cell は、複数の SPE を使用する
one@firefly.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
15 並列プログラミングが求められている。
one@firefly.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
16 逐次型プログラミングを学び、並列プログラミングの経験が浅い学生にとって、
one@firefly.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
17 このような Cell アーキテクチャを理解した上でゲームを実装することは困難である。
one@firefly.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
18 また、制作したゲームを他のゲーム機に移植したり、過去に制作したゲームを
one@firefly.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
19 PS3 に移植するといった場合、アーキテクチャ間の差を埋めるためプログラムを
one@firefly.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
20 大幅に書き換える必要がある。
one@firefly.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
21
one@firefly.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
22 この様な問題があることから、例年、学生実験の期間である約3ヶ月のうちの大半を
one@firefly.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
23 アーキテクチャの勉強にあて、残りの期間内でゲーム開発を行っている。
one@firefly.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
24 そのため、制作されたゲームの完成度が一定以上にならない。
one@firefly.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
25 また、現在 PS3 ゲーム開発用フレームワークが存在しないことで、学生が
one@firefly.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
26 一からプログラミングしていく必要がある。
one@firefly.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
27
one@firefly.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
28 そこで我々は、Cell のような Many Core Architecture を用いた、
one@firefly.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
29 並列プログラムの開発をサポートするフレームワークとして
one@firefly.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
30 Fine Grain Task Manager を提案する。
one@firefly.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
31
one@firefly.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
32 この TaskManager を用いた開発行程は以下の様になる。
one@firefly.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
33
one@firefly.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
34 \begin{enumerate}
one@firefly.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
35 \item 逐次型プログラム \label{path1}
one@firefly.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
36 \item データやコードを分割したプログラム \label{path2}
one@firefly.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
37 \item 並列に動かすプログラム \label{path3}
one@firefly.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
38 \end{enumerate}
one@firefly.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
39
one@firefly.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
40 これらのステップ毎にプログラムの仕様やアルゴリズムを確かめ、
one@firefly.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
41 テストやデバッグを行い信頼性を確保しながら開発を進める。
one@firefly.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
42
one@firefly.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
43 本研究での Fine Grain Task の単位は、サブルーチンまたは関数とする。
one@firefly.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
44
one@firefly.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
45 現在 TaskManager は PS3、Linux、MacOSX といった複数の環境で動作するので、
one@firefly.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
46 学生が自分のマシンで開発行程 \ref{path1} や \ref{path2} を行い、
one@firefly.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
47 最終的に開発行程 \ref{path3} を PS3 上で実行する、ということが可能となる。
one@firefly.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
48
one@firefly.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
49 この TaskManager を用いたゲーム開発フレームワークが Cerium である。
one@firefly.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
50 Cerium は、オブジェクトのデータやその振る舞い、またはゲームのルールなど
one@firefly.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
51 ゲームを構成する場面(シーン)を木構造で持つ Scene Graph、
one@firefly.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
52 OSMesa に代表される Rendering Engine、そしてそれらの実行単位を Task とし、
one@firefly.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
53 動的に全てのコアが動作する様な割り振りを行うカーネル TaskManager で
one@firefly.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
54 構成されている。
one@firefly.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
55
one@firefly.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
56 \section{論文の構成}
one@firefly.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
57 第\ref{chapter:cell}章では Cell の詳細な仕様と、
one@firefly.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
58 使用できる基本的な機能の説明を述べる。
one@firefly.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
59
one@firefly.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
60 第\ref{chapter:manycore}章では Many Core Architecture 上での
one@firefly.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
61 プログラミングの要素や難しさを考察し、並列プログラムの処理能力や
one@firefly.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
62 信頼性を確保するための開発行程を紹介する。
one@firefly.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
63
one@firefly.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
64 第\ref{chapter:taskmanager}章では Task Manager の実装と User API を述べ、
one@firefly.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
65 TaskManager を用いた基本的な並列プログラムを紹介する。
one@firefly.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
66
one@firefly.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
67 第\ref{chapter:cerium}章では Cerium を構成する機能の紹介と実装を述べる。
9
df0056a7b95d ひとまず完成
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents: 0
diff changeset
68 また、実際に学生に制作してもらったゲームを紹介し、
df0056a7b95d ひとまず完成
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents: 0
diff changeset
69 その有用性を述べる。
df0056a7b95d ひとまず完成
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents: 0
diff changeset
70
df0056a7b95d ひとまず完成
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents: 0
diff changeset
71 %学生からユーザとしての
df0056a7b95d ひとまず完成
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents: 0
diff changeset
72 %Cerium の使用の評価を紹介する。
0
one@firefly.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
73
one@firefly.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
74 第\ref{chapter:compare}章では TaskManager や Cerium と同じく、
one@firefly.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
75 並列プログラミングのフレームワークである OpenCL や 、Cell 上で動作する
one@firefly.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
76 レンダリングエンジンである Gallium を紹介し、それらとの比較を行う。
one@firefly.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
77
one@firefly.cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
78 第\ref{chapter:conclusion}章においてまとめと今後の課題とする。