0
|
1 \chapter{序論}
|
|
2 \pagenumbering{arabic}
|
|
3
|
|
4 \section{研究背景と目的}
|
3
|
5 これまで、コンピュータの CPU はクロック周波数を上昇させることで処理能力を高めてきた。
|
|
6 しかし、消費電力の増加や発生する熱の問題により、Core を複数持つことによって処理能力を
|
|
7 上昇させる方向に方針が変更されてきた。近年は様々なコンピュータにマルチコア CPU が
|
|
8 使われるようになっており、それに伴ってプログラミング手法も新たな曲面を見せている。
|
0
|
9
|
4
|
10 現在、学生実験にて家庭用ゲーム機 PlayStation 3 (以後 PS3 ) を用いたゲーム開発を行っている。
|
|
11 その PS3 には Cell Broadband Engine (以後 Cell )というマルチコア CPU が採用されている。
|
|
12 Cell Broadband Engine は1つの制御系プロセッサ PowerPC Processor Erement (PPE) と、
|
|
13 8つのデータ処理演算プロセッサ Synergistic Processor Element (SPE) から構成される 。
|
|
14 Cell は 複数の SPE を使用する並列プログラミングが求められている。並列プログラミング
|
|
15 の経験が浅い学生にとって、このような Cell アーキテクチャを理解した上でゲーム開発を
|
|
16 行うことは困難である。
|
3
|
17
|
4
|
18 このような問題を、限られた学生実験の中で解決するために、我々は Cell のような
|
|
19 Many Core Architecture を用いた、並列プログラムの開発をサポートするフレームワークと
|
|
20 して Cell 用の Fine Grain Task Manager Cerium \cite{gongo} を開発した。
|
|
21 現在 Cerium では、 Task という処理の単位を用いて並列処理を実現している。
|
|
22 しかし、その並列度を保つことは難しく、並列プログラムの開発において
|
|
23 プログラムの並列度が保証されているわけではない。これはCerium内部の処理に
|
|
24 関しても言えることである。並列プログラムはその全体の処理で高い並列度を保たなければ
|
|
25 全体の並列度は著しく下がってしまう (Amdahlの法則 \cite{amdahl} )
|
3
|
26
|
4
|
27 そこで我々は、Task 単位で並列処理を監視し、プログラムの並列度を検証する手法を
|
|
28 提案する。
|
|
29
|
|
30 検証手法としては以下のものを提案する。
|
|
31
|
|
32 \begin{enumerate}
|
|
33 \item Task の依存関係を用いた検証手法 \label{path1}
|
|
34 \item Task 実行時間時系列を用いた検証手法 \label{path2}
|
|
35 \end{enumerate}
|
3
|
36
|
4
|
37 これらの手法を用いて検証を行い、ボトルネックや稼働率の少ない
|
|
38 箇所を見つけることで、性能向上のための改善点を発見することができる。\\
|
|
39
|
|
40 本研究での Task の単位は、サブルーチンまたは関数とする。
|
|
41
|
|
42 検証手法 \ref{path1} では、 Task に設定されている依存関係を調べ、
|
|
43 特定の Task への依存度の高さから検証を行う。
|
|
44 検証手法 \ref{path2} では、実際に動作してる Task の実行時間を時系列順に
|
|
45 取り出し、稼働率の点から検証を行う。
|
3
|
46
|
|
47 \section{論文構成}
|
4
|
48
|