view paper/jssst.tex @ 7:f5982d0deab5

裕さんが送信した形に修正、裕さんが送信した内容はabstract_yutaka.txt内に保存
author Daichi TOMA <e085740@ie.u-ryukyu.ac.jp>
date Tue, 09 Aug 2011 09:12:30 +0900
parents a8812d132583
children 6ba51690320a
line wrap: on
line source

% Sample file for the use of compsoft style file.
%
\documentclass[T]{compsoft}

% Preamble
%
% 「コンピュータソフトウェア」誌に掲載される論文の場合,次で
% 巻数,号数,開始ページ,終了ページを指定する.
%\volNoPp{16}{5}{78}{83}

% ワークショップによる推薦論文の場合,ワークショップ名を指定する.
% \suisen{ワークショップ名}

% 特集の場合,特集のタイトルを与える.
% \tokushu{特集のタイトル}

% 大会論文の場合,\taikai で開催年を指定する.ここで指定した年から
% 大会の回数は計算される.
\taikai{2011}

% ここに,使用するパッケージを列挙する.
\usepackage[dvips]{graphics}

% ユーザが定義したマクロなどはここに置く.ただし学会誌のスタイルの
% 再定義は原則として避けること.

\begin{document}

% 論文のタイトル
\title{Cerium における DataSegment API の設計}

% 著者
% 和文論文の場合,姓と名の間には半角スペースを入れ,
% 複数の著者の間は全角スペースで区切る
%
\author{金城 裕 \and 河野 真治
%
% ここにタイトル英訳 (英文の場合は和訳) を書く.
%
\ejtitle{Design of DataSegment API in Cerium}
%
% ここに著者英文表記 (英文の場合は和文表記) および
% 所属 (和文および英文) を書く.
% 複数著者の所属はまとめてよい.
%
\shozoku{Yutaka Kinjyo, Shinij KONO}{琉球大学大学院理工学研究科情報工学専攻並列信頼研}%
{Dept.Concurrency Reliance Laboratory, Information Engineering Course, Faculty of Engineering Graduate School of Engineering and Science, University of the Ryukyus}
%
% 出典情報は \shutten とすれば出力される.
%\shutten
%
% 受付年月日,記事カテゴリなどは自動的に生成される.
%\uketsuke{1999}{8}{3}
%
% その他,脚注に入れるものがあれば,\note に記述する.
%\note{脚注に入れる内容}
}

%
% 和文アブストラクト
\Jabstract{%
本研究では並列プログラミング用フレームワーク Ceriumを開発している.
Cerium ではユーザが処理を Task として定義し,必要なパラメータを設定すると,自動で各コアへと割り振られ並列実行される.
例題としてゲームを実装したところ, Task 内での動的なデータ取得や, Task 間の依存関係の設定などデータ操作の抽象化が必要なことがわかった.
そこで DataSegment というデータ構造を用意し,データ操作を抽象化するAPIを設計する.
}

%
% 英文アブストラクト(大会論文には必要なし)
% \Eabstract{}
%
\maketitle

\section{はじめに}

\section{Ceriumとは}

\section{Cell Broadband Engine}

\begin{figure}[tb]
\begin{center}
\scalebox{0.4}{\includegraphics{./images/cell-main.eps}}
\caption{Cell Broadband Engine Architecture}
\label{fig:cell_arch}
\end{center}
\end{figure}

Cell Broadband Engine %\cite{cell}
 は、ソニー・コンピュータエンタテインメント、
ソニー、IBM , 東芝によって開発されたマルチコア CPU である。
Cell は、1基の制御系プロセッサコア PPE ( PowerPC Processor Element ) と
8基の演算系プロセッサコア SPE ( Synergistic Processor Element ) で構成される。
各プロセッサコアは、EIB (Element Interconnect Bus)
と呼ばれる高速なバスで接続されている。また、EIB はメインメモリや
外部入出力デバイスとも接続されていて、
各プロセッサコアは EIB を経由してデータアクセスをおこなう。
PPE はメインメモリにアクセスすることができるが、SPE は、246KBのLSにのみ直接アクセスできる。
DMAを用いると、SPE はメインメモリにアクセスできる。
本研究で用いた PS3Linux (Yellow Dog Linux 6.2) では、6 個の SPE を
使うことが出来る ( \ref{fig:cell_arch} )
この PPE と SPE の2種類の CPU を、プログラマ自身が用途に
合わせて適切に使い分けるように考慮する必要がある。

\subsection{Mailbox} \label{sec:mail-box}
Cellの機能にMailboxがある。
Mailbox は PPEとSPEとの間を双方向で、32bitのデータの受け渡しが可能であり、FIFOキュー構造になっている。
MailboxのひとつにSPEからPPEへデータを渡すためのキュー、SPU Outbound Mailbox があり、最大1個までのデータを蓄積できる。
もし、Outbound Mailbox がすでに1個のデータを保持している場合には、
SPEプログラムはPPEプログラム側でキューからデータを読み出すまでデータの書き込みを待ち続ける。

\subsection{DMA転送} \label{sec:dma}
SPE は LS 以外のメモリに
直接アクセスすることができず、PPE が利用するメインメモリ上のデータに
アクセスするには DMA (Direct Memory Access) を用いる。
DMA 転送とは、CPU を介さずに周辺装置とメモリとの間でデータ転送ことで、
Cell の場合はメインメモリと LS 間でデータの転送を行う。
DMA 転送するデータとアドレスにはいくつか制限がある。
転送データが 16 バイト以上の場合、データサイズは 16 バイトの倍数で、
転送元と転送先のアドレスが 16 バイト境界に揃えられている必要がある。
転送データが 16 バイト未満の場合、データサイズは 1,2,4,8 バイトで、
転送サイズに応じた自然なアライメントである (転送サイズのバイト境界に
揃えられている) ことが条件となる。

\section{Ceriumでの並列プログラミングの問題点}

\section{Continuation based C との相性}

\section{C++ との相性}

\section{Data Segment を用いた Cerium の再設計}

\subsection{Data Segment の型}

\subsection{Data Segment のAPI}

\subsection{Task Dependendcy}

\subsection{Data Segment Storage Type}

\subsection{Data Segment の処理の記述}

\section{期待される効果}


\begin{thebibliography}{10}

\bibitem{gongo}
{多賀野海人}.
\newblock {Cell Task Manager Cerium における Task を用いたパイプラインの改良}.
\newblock {琉球大学理工学研究科情報工学専攻 平成22年度学位論文}, {Feb} 2011.

\bibitem{gongo}
{宮國渡}.
\newblock {Cell用の Fine-Grain Task Manager の実装}.
\newblock {琉球大学理工学研究科情報工学専攻 平成20年度学位論文}, {Feb} 2009.

\bibitem{amdahl}
{Brian Goetz, Tim Peierls, Joshua Bloch, Joseph Bowbeer, David Holmes, and Doug
  Lea}.
\newblock {\em {Java Concurrency in Prac-tice}}.
\newblock {Addison-Wesley Professional}, 2005.

\bibitem{cell}
{Sony Corporation}.
\newblock {Cell BroadbandEngine \texttrademark アーキテクチャ}, 2006.

\bibitem{libspe2}
{International Business Machines Corporation, Sony Computer Entertainment
  Incorporated, Toshiba Corporation}.
\newblock {\em {SPE Runtime Management Library Version 2.3}}, 2008.

\bibitem{cell_cpp}
{International Business Machines Corporation, Sony Computer Entertainment
  Incorporated, Toshiba Corporation}.
\newblock {\em {C/C++ Language Extensions for Cell Broadband Engine                                                         
  Architecture Version 2.6}}, 2008.

\bibitem{spurs}
{Keisuke Inoue}.
\newblock {SPU Centric Execution Model}, 2006.

\bibitem{chiaki}
{Chiaki SUGIYAMA}.
\newblock {SceneGraph と StatePattern
  を用いたゲームフレームワークの設計と実装}.
\newblock {琉球大学工学部情報工学科 平成19年度卒業論文}, 2008.

\bibitem{blender}
{blender.org}.
\newblock {http://blender.org/}.

\bibitem{akamine}
{赤嶺一樹, 河野真治}.
\newblock {Meta Engine を用いた Federated Linda の実験}.
\newblock {日本ソフトウェア科学会第 27 会大会(2010 年度)}, {Sep} 2010.

\bibitem{akira}
{Akira KAMIZATO}.
\newblock {Cell を用いたゲームフレームワークの提案}.
\newblock {琉球大学理工学研究科情報工学専攻 平成19年度学位論文}, 2008.

\bibitem{cell_abi}
{International Business Machines Corporation, Sony Computer Entertainment
  Incorporated, Toshiba Corporation}.
\newblock {\em {Cell Broadband Engine Linux Reference Implementation                                                        
  Application Binary Interface Specification}},

\bibitem{webpage1}                                                                                        
{SourceForge.JP: Cerium Rendering Engine}.
\newblock {https//sourceforge.jp/projects/cerium/}.

bibitem{osmesa}
{The Mesa 3D Graphics Library}.
\newblock {http://www.mesa3d.org/}.

\bibitem{fedora}
{Fedora Project}.
\newblock {http://fedoraproject.org/}.

\bibitem{ydl}
{Yellow Dog Linux for PowerPC Computers}.
\newblock {http://us.fixstars.com/products/ydl/}.

\bibitem{cerium}
{SourceForge.JP: Cerium Rendering Engine}.
\newblock {https//sourceforge.jp/projects/cerium/}.

\bibitem{cell_sdk}
{International Business Machines Corporation}.
\newblock {\em {Software Development Kit for Multicore Acceleration Version                                                 
  3.1}}, 2008.

\bibitem{gongo2}
{Wataru MIYAGUNI}.
\newblock {Cell 用の Fine-grain Task Manager の実装}.
\newblock {情報処理学会
  システムソフトウェアとオペレーティング・システム研究会}, April 2008.

\bibitem{sdl}
{Simple DirectMedia Layer}.
\newblock {http://www.libsdl.org/}.

\bibitem{opencl}
{Aaftab Munshi, Khronos OpenCL Working Group}.
\newblock {\em {The OpenCL Specification Version 1.0}}, 2007.

\bibitem{gallium}
{Gallium3D}.
\newblock {http://www.tungstengraphics.com/wiki/index.php/Gallium3D}.


\end{thebibliography}

\end{document}