comparison paper/jssst.tex @ 11:6ba51690320a

ref and fig
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Thu, 11 Aug 2011 23:23:05 +0900
parents f5982d0deab5
children
comparison
equal deleted inserted replaced
10:99f297cb7d34 11:6ba51690320a
17 % 大会論文の場合,\taikai で開催年を指定する.ここで指定した年から 17 % 大会論文の場合,\taikai で開催年を指定する.ここで指定した年から
18 % 大会の回数は計算される. 18 % 大会の回数は計算される.
19 \taikai{2011} 19 \taikai{2011}
20 20
21 % ここに,使用するパッケージを列挙する. 21 % ここに,使用するパッケージを列挙する.
22 \usepackage[dvips]{graphics} 22 \usepackage[dvipdfm]{graphicx}
23 \bibliographystyle{jplain} % for bibliography
23 24
24 % ユーザが定義したマクロなどはここに置く.ただし学会誌のスタイルの 25 % ユーザが定義したマクロなどはここに置く.ただし学会誌のスタイルの
25 % 再定義は原則として避けること. 26 % 再定義は原則として避けること.
26 27
27 \begin{document} 28 \begin{document}
57 } 58 }
58 59
59 % 60 %
60 % 和文アブストラクト 61 % 和文アブストラクト
61 \Jabstract{% 62 \Jabstract{%
62 本研究では並列プログラミング用フレームワーク Ceriumを開発している. 63 \input{abstract}
63 Cerium ではユーザが処理を Task として定義し,必要なパラメータを設定すると,自動で各コアへと割り振られ並列実行される.
64 例題としてゲームを実装したところ, Task 内での動的なデータ取得や, Task 間の依存関係の設定などデータ操作の抽象化が必要なことがわかった.
65 そこで DataSegment というデータ構造を用意し,データ操作を抽象化するAPIを設計する.
66 } 64 }
67 65
68 % 66 %
69 % 英文アブストラクト(大会論文には必要なし) 67 % 英文アブストラクト(大会論文には必要なし)
70 % \Eabstract{} 68 % \Eabstract{}
71 % 69 %
72 \maketitle 70 \maketitle
71 \input{0}
73 72
74 \section{はじめに} 73 \bibliography{ref}
75
76 \section{Ceriumとは}
77
78 \section{Cell Broadband Engine}
79
80 \begin{figure}[tb]
81 \begin{center}
82 \scalebox{0.4}{\includegraphics{./images/cell-main.eps}}
83 \caption{Cell Broadband Engine Architecture}
84 \label{fig:cell_arch}
85 \end{center}
86 \end{figure}
87
88 Cell Broadband Engine %\cite{cell}
89 は、ソニー・コンピュータエンタテインメント、
90 ソニー、IBM , 東芝によって開発されたマルチコア CPU である。
91 Cell は、1基の制御系プロセッサコア PPE ( PowerPC Processor Element ) と
92 8基の演算系プロセッサコア SPE ( Synergistic Processor Element ) で構成される。
93 各プロセッサコアは、EIB (Element Interconnect Bus)
94 と呼ばれる高速なバスで接続されている。また、EIB はメインメモリや
95 外部入出力デバイスとも接続されていて、
96 各プロセッサコアは EIB を経由してデータアクセスをおこなう。
97 PPE はメインメモリにアクセスすることができるが、SPE は、246KBのLSにのみ直接アクセスできる。
98 DMAを用いると、SPE はメインメモリにアクセスできる。
99 本研究で用いた PS3Linux (Yellow Dog Linux 6.2) では、6 個の SPE を
100 使うことが出来る ( \ref{fig:cell_arch} )
101 この PPE と SPE の2種類の CPU を、プログラマ自身が用途に
102 合わせて適切に使い分けるように考慮する必要がある。
103
104 \subsection{Mailbox} \label{sec:mail-box}
105 Cellの機能にMailboxがある。
106 Mailbox は PPEとSPEとの間を双方向で、32bitのデータの受け渡しが可能であり、FIFOキュー構造になっている。
107 MailboxのひとつにSPEからPPEへデータを渡すためのキュー、SPU Outbound Mailbox があり、最大1個までのデータを蓄積できる。
108 もし、Outbound Mailbox がすでに1個のデータを保持している場合には、
109 SPEプログラムはPPEプログラム側でキューからデータを読み出すまでデータの書き込みを待ち続ける。
110
111 \subsection{DMA転送} \label{sec:dma}
112 SPE は LS 以外のメモリに
113 直接アクセスすることができず、PPE が利用するメインメモリ上のデータに
114 アクセスするには DMA (Direct Memory Access) を用いる。
115 DMA 転送とは、CPU を介さずに周辺装置とメモリとの間でデータ転送ことで、
116 Cell の場合はメインメモリと LS 間でデータの転送を行う。
117 DMA 転送するデータとアドレスにはいくつか制限がある。
118 転送データが 16 バイト以上の場合、データサイズは 16 バイトの倍数で、
119 転送元と転送先のアドレスが 16 バイト境界に揃えられている必要がある。
120 転送データが 16 バイト未満の場合、データサイズは 1,2,4,8 バイトで、
121 転送サイズに応じた自然なアライメントである (転送サイズのバイト境界に
122 揃えられている) ことが条件となる。
123
124 \section{Ceriumでの並列プログラミングの問題点}
125
126 \section{Continuation based C との相性}
127
128 \section{C++ との相性}
129
130 \section{Data Segment を用いた Cerium の再設計}
131
132 \subsection{Data Segment の型}
133
134 \subsection{Data Segment のAPI}
135
136 \subsection{Task Dependendcy}
137
138 \subsection{Data Segment Storage Type}
139
140 \subsection{Data Segment の処理の記述}
141
142 \section{期待される効果}
143 74
144 75
145 \begin{thebibliography}{10}
146
147 \bibitem{gongo}
148 {多賀野海人}.
149 \newblock {Cell Task Manager Cerium における Task を用いたパイプラインの改良}.
150 \newblock {琉球大学理工学研究科情報工学専攻 平成22年度学位論文}, {Feb} 2011.
151
152 \bibitem{gongo}
153 {宮國渡}.
154 \newblock {Cell用の Fine-Grain Task Manager の実装}.
155 \newblock {琉球大学理工学研究科情報工学専攻 平成20年度学位論文}, {Feb} 2009.
156
157 \bibitem{amdahl}
158 {Brian Goetz, Tim Peierls, Joshua Bloch, Joseph Bowbeer, David Holmes, and Doug
159 Lea}.
160 \newblock {\em {Java Concurrency in Prac-tice}}.
161 \newblock {Addison-Wesley Professional}, 2005.
162
163 \bibitem{cell}
164 {Sony Corporation}.
165 \newblock {Cell BroadbandEngine \texttrademark アーキテクチャ}, 2006.
166
167 \bibitem{libspe2}
168 {International Business Machines Corporation, Sony Computer Entertainment
169 Incorporated, Toshiba Corporation}.
170 \newblock {\em {SPE Runtime Management Library Version 2.3}}, 2008.
171
172 \bibitem{cell_cpp}
173 {International Business Machines Corporation, Sony Computer Entertainment
174 Incorporated, Toshiba Corporation}.
175 \newblock {\em {C/C++ Language Extensions for Cell Broadband Engine
176 Architecture Version 2.6}}, 2008.
177
178 \bibitem{spurs}
179 {Keisuke Inoue}.
180 \newblock {SPU Centric Execution Model}, 2006.
181
182 \bibitem{chiaki}
183 {Chiaki SUGIYAMA}.
184 \newblock {SceneGraph と StatePattern
185 を用いたゲームフレームワークの設計と実装}.
186 \newblock {琉球大学工学部情報工学科 平成19年度卒業論文}, 2008.
187
188 \bibitem{blender}
189 {blender.org}.
190 \newblock {http://blender.org/}.
191
192 \bibitem{akamine}
193 {赤嶺一樹, 河野真治}.
194 \newblock {Meta Engine を用いた Federated Linda の実験}.
195 \newblock {日本ソフトウェア科学会第 27 会大会(2010 年度)}, {Sep} 2010.
196
197 \bibitem{akira}
198 {Akira KAMIZATO}.
199 \newblock {Cell を用いたゲームフレームワークの提案}.
200 \newblock {琉球大学理工学研究科情報工学専攻 平成19年度学位論文}, 2008.
201
202 \bibitem{cell_abi}
203 {International Business Machines Corporation, Sony Computer Entertainment
204 Incorporated, Toshiba Corporation}.
205 \newblock {\em {Cell Broadband Engine Linux Reference Implementation
206 Application Binary Interface Specification}},
207
208 \bibitem{webpage1}
209 {SourceForge.JP: Cerium Rendering Engine}.
210 \newblock {https//sourceforge.jp/projects/cerium/}.
211
212 bibitem{osmesa}
213 {The Mesa 3D Graphics Library}.
214 \newblock {http://www.mesa3d.org/}.
215
216 \bibitem{fedora}
217 {Fedora Project}.
218 \newblock {http://fedoraproject.org/}.
219
220 \bibitem{ydl}
221 {Yellow Dog Linux for PowerPC Computers}.
222 \newblock {http://us.fixstars.com/products/ydl/}.
223
224 \bibitem{cerium}
225 {SourceForge.JP: Cerium Rendering Engine}.
226 \newblock {https//sourceforge.jp/projects/cerium/}.
227
228 \bibitem{cell_sdk}
229 {International Business Machines Corporation}.
230 \newblock {\em {Software Development Kit for Multicore Acceleration Version
231 3.1}}, 2008.
232
233 \bibitem{gongo2}
234 {Wataru MIYAGUNI}.
235 \newblock {Cell 用の Fine-grain Task Manager の実装}.
236 \newblock {情報処理学会
237 システムソフトウェアとオペレーティング・システム研究会}, April 2008.
238
239 \bibitem{sdl}
240 {Simple DirectMedia Layer}.
241 \newblock {http://www.libsdl.org/}.
242
243 \bibitem{opencl}
244 {Aaftab Munshi, Khronos OpenCL Working Group}.
245 \newblock {\em {The OpenCL Specification Version 1.0}}, 2007.
246
247 \bibitem{gallium}
248 {Gallium3D}.
249 \newblock {http://www.tungstengraphics.com/wiki/index.php/Gallium3D}.
250
251
252 \end{thebibliography}
253
254 \end{document} 76 \end{document}