view introduction.tex @ 15:6c558cd2ac8b

*** empty log message ***
author gongo
date Sat, 29 Mar 2008 09:33:55 +0900
parents 8748eb526921
children
line wrap: on
line source

\section{研究の目的}

%% % これは研究の目的としては「近すぎる」
%% % 最終目標は「レンダリングエンジンを作る」ではなく
%% % 「OSを作る」だから。(でいいのかな
%%
%%PlayStation 3 (以下 PS3) では、搭載された Linux を用いて、
%%PS3 上で動くゲーム開発することができる。
%%しかし、現在 GPU (Graphics Processing Unit) の API は
%%一般には公開されていないため、GPU を使った描画はできない。
%%Frame Buffer 上には直接描画することはできるため、
%%我々は Frame Buffer 上に描画するゲームフレームワークを提案してきた。
%%
%%本研究では、PS3 上で高速な描画が可能な、独自のレンダリングエンジンとして、
%%Cerium Rendering Engine の開発を行う。
%%Cerium は、次の 3 つから構成される。
%%
%%\begin{itemize}
%%  \item Scene Graph
%%  \item Rendering Engine
%%  \item Task Manager
%%\end{itemize}
%%
%%Cerium は Cell 上だけでなく、Linux や Mac OS X 上でも
%%動く、シーケンシャルなプログラムも実装することが出来る。
%%並列プログラムとシーケンシャルプログラムの相互の変換は容易である。
%%これにより、全体の動作のデバッグはシーケンシャルプログラムで行い、
%%仕様が正しいと確認できたら、 Cell 上などの特有の環境で
%%動作、デバッグを行えばいい。
%%

近年、CPU の性能向上は、クロックサイクルを上げることよりも、
複数の CPU コア (Many Core Architecture) を導入することにより
得られるようになってきている。しかし、Many Core Architecture の
プログラムは複雑であり、その信頼性を確保することは難しい。

本研究では、Many Core Architecture 向けの Fine Grain Task OS を設計する。
この OS では、Amdahl 則を考慮して、
定常的な並列性を細粒度タスクを使って実現する。
そのために、シーングラフレベルから並列実行を考慮したプログラムとする。

細粒度タスク自体や、タスク全体のデバッグを容易にするために、
同じタスクが Mac OS X や Linux、PS3 上など複数の環境で動くようにする。
また、Thread を多用せず、細粒度タスク内での同期は行わない。
これにより、並列プログラミングの経験の低いプログラマでも
容易に使用できる。

例題として、本研究室で作成した、Rendering を含む PS3 上のゲームプログラム用
OS である Cerium \cite{gongo} を用いる。

Cerium は、次の 3 つから構成される。

\begin{itemize}
  \item Scene Graph
  \item Rendering Engine
  \item Fine Grain Task Manager
\end{itemize}

Cerium では、Cell の性能を十分に引き出し、
今まで作成してきた PS、PS2 のゲームプログラムを PS3 へ
容易に移植できることを目的とする。