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