comparison paper/conclusion.tex @ 4:6cf0f731cbde draft

fix
author Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
date Wed, 08 Feb 2012 21:49:40 +0900
parents 5dbcea03717e
children b69eefd9156e
comparison
equal deleted inserted replaced
2:8f30309c4096 4:6cf0f731cbde
1 \chapter{結論} \label{chapter:conclusion} 1 \chapter{結論} \label{chapter:conclusion}
2 \section{まとめ} 2 \section{まとめ}
3 本研究では並列プログラミングフレームワーク Cerium の改良を行った。Cerium は並列プログラミングをサポートする TaskManager、ソフトウェアレンダリングを行う RenderinEngine, ゲームのシーンを記述していく、SceneGraph から構成されている。学生実験で行うCell上でのゲーム作成を考慮にいれた並列プログラミングフレームワークである。Ceirum 開発後に学生実験での使用や、例題を実装していく上で、仕様通りの稼働率がでないことや、アーキテクチャ依存の記述が避けづらいことなど、フレームワークとしての信頼性が十分でないことが明らかになった。 3 本研究では並列プログラミングフレームワーク Cerium の改良を行った。Cerium は並列プログラミングをサポートする TaskManager、ソフトウェアレンダリングを行う RenderinEngine, ゲームのシーンを記述していく、SceneGraph から構成されている。学生実験で行うCell上でのゲーム作成を考慮にいれた並列プログラミングフレームワークである。Ceirum 開発後に学生実験での使用や、例題を実装していく上で、仕様通りの稼働率がでないことや、アーキテクチャ依存の記述が避けづらいことなど、フレームワークとしての信頼性が十分でないことが明らかになった。
4 特に Cell上での実行の場合には、SPE との通信の待ち時間が約70\%と、処理性能に関わっている。そこで SPE と PPE の通信部分である Mail について、TaskArrayの実装と使用、ソフトウェアMailQueueの実装をし改良を行った。その結果 FPS の向上、Mail 待ち時間の減少に効果が見られた。 4 特に Cell上での実行の場合には、SPE との通信の待ち時間が約70\%と、処理性能に関わっている。そこで SPE と PPE の通信部分である Mail について、TaskArray の実装と使用、ソフトウェア MailQueue の実装をし改良を行った。その結果 FPS の向上、Mail 待ち時間の減少に効果が見られた。
5 また、Task 内でのアーキテクチャ依存の記述を MemorySegment によって、避けることに成功した。また MemorySegment を用いることでメモリ管理を抽象化することができる。その他の先行研究の改良として、Task のパイプライン化、Texutre のキャッシュなどがある。これらの改良によっても、FPSの向上や、DMA転送の待ち時間が改善された。Cerium の改良を重ね、結果として約17FPSの向上に成功した。また Mail の待ち時間は約18\%削減できた。 5 また、Task 内でのアーキテクチャ依存の記述を MemorySegment によって、避けることに成功した。また MemorySegment を用いることでメモリ管理を抽象化することができる。その他の先行研究の改良として、Task のパイプライン化、Texutre のキャッシュなどがある。これらの改良によっても、FPS の向上や、DMA 転送の待ち時間が改善された。Cerium の改良を重ね、結果として約17 FPS の向上に成功した。また Mail の待ち時間は約18\%削減できた。
6 6
7 \section{今後の課題} 7 \section{今後の課題}
8 \subsection{プログラムの Task化} 8 各コアの稼働率の向上のためには、さらに Mail の待ち時間を削減する必要がある。Mail の通信の待ち時間は内訳は
9 各コアの稼働率の向上のためには、本研究で行った改良の他に、プログラムの Task 化を進める必要がある。Mail の通信の待ち時間は内訳は
10 9
11 \begin{description} 10 \begin{description}
12 \item PPE の対応が遅れる 11 \item PPE の対応が遅れる
13 \item SPE が他の SPE を待つ 12 \item SPE が他の SPE を待つ
14 \end{description} 13 \end{description}
15 14
16 の二つの要素がある。PPE の対応が遅れる場合には PPE側に処理するべきプログラムがあり、Mail の対応が遅れる原因がある。 15 の二つの要素がある。PPE の対応が遅れる場合には PPE側に処理するべきプログラムがあり、Mail の対応が遅れる原因がある。
17 そのため 制御用の PPE は処理するべきプログラムは排除し、Mail 通知の対応や、Task の割り振りを専門に PPE が行うことによって、SPE の稼働率向上を果たせると考える。また バリア同期を行うと 割り振られた処理によっては 他の SPE よりも早く処理が終了し、他の SPE を待つ時間が生じる場合がある。この二つの要素は、PPE 側のプログラムの Task化 を行い、さらにその Task はなるべく粒度を細かく設定することで解決できると考える。プログラムを Task 化しなるべく PPE ではなく SPEに処理を任せる。また粒度を細かくすることは、各 SPE への均等な Task の分散のために必要であり、並列化部分の特定にも繋がる。 16 そのため 制御用の PPE は処理するべきプログラムは排除し、Mail 通知の対応や、Task の割り振りを専門に PPE が行うことによって、SPE の稼働率向上を果たせると考える。また バリア同期を行うと 割り振られた処理によっては 他の SPE よりも早く処理が終了し、他の SPE を待つ時間が生じる場合がある。
17
18 \subsection{プログラムの Task 化}
19 PPE での Task 管理以外の処理を排除するため、具体的には、プログラムの Task化 を行い Task の部分を SPE で処理する方法がある。現在 RenderingEngien 部分のほとんどが Task 化されているが、ScenenGraph 部分は Task 化されていない。SceneGraph 部分の Task 化が必要である。
18 20
19 \subsubsection{SPE の LS の利用方法} 21 \subsubsection{SPE の LS の利用方法}
20 \subsubsection{Task のインターフェイス}
21 \subsubsection{自動的な依存関係の解決}
22 22
23 23
24 \subsubsection{Taskの粒度}
25 バリア同期の際に 他の SPE を待つ時間を削減するために、Task はなるべく粒度を細かく設定することで解決できると考える。
26 粒度を細かくすることは、各 SPE への均等な Task の分散のために必要であり、並列化部分の特定にも繋がる。
27
28 \subsection{自動的な依存関係の解決}
24 29
25 30
26 \subsection{DataSegment} 31 \subsection{DataSegment}
27 \subsection{CodeSegment} 32 \subsection{CodeSegment}