view Paper/prosym.tex @ 6:2522f70375d5

add bibtex
author Daichi Toma <toma@cr.ie.u-ryukyu.ac.jp>
date Thu, 17 Nov 2011 18:02:24 +0900
parents e284dc62f608
children f12135af6731
line wrap: on
line source

\documentclass[private]{ipsjpapers}
\usepackage[dvipdfmx]{graphicx}
\usepackage{url}

% 巻数,号数などの設定
% \setcounter{巻数}{0}
% \setcounter{号数}{0}
% \setcounter{volpageoffset}{0}
% \受付{2011}{11}{18}
% \採録{0}{0}{0}

% ページ番号を表示しない
\pagestyle{empty}

% ユーザが定義したマクロなど.
\makeatletter
\let\@ARRAY\@array \def\@array{\def\<{\inhibitglue}\@ARRAY}
\def\<{\(\langle\)}
\def\>{\(\rangle\)}
\def\|{\verb|}
\def\Underline{\setbox0\hbox\bgroup\let\\\endUnderline}
\def\endUnderline{\vphantom{y}\egroup\smash{\underline{\box0}}\\}
\def\LATEX{\iLATEX\Large}
\def\LATEx{\iLATEX\normalsize}
\def\LATex{\iLATEX\small}
\def\iLATEX#1{L\kern-.36em\raise.3ex\hbox{#1\bf A}\kern-.15em
    T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}
\def\LATEXe{\ifx\LaTeXe\undefined \LaTeX 2e\else\LaTeXe\fi}
\def\LATExe{\ifx\LaTeXe\undefined \iLATEX\scriptsize 2e\else\LaTeXe\fi}
\def\Quote{\list{}{}\item[]}
\let\endQuote\endlist
\def\TT{\if@LaTeX@e\tt\fi}
\def\CS#1{\if@LaTeX@e\tt\expandafter\string\csname#1\endcsname\else
	$\backslash$#1\fi}

%\checklines	% 行送りを確認する時に使用

\begin{document}%{
% 和文表題
\title[Cerium Task Manager における Linux 上での並列実行機構の実装]%
	{Cerium Task Manager における Linux 上での並列実行機構の実装}

% 英文表題
\etitle{Implementation of Parallel Execution of Cerium Task Manager on Linux}

% 所属ラベルの定義
\affilabel{URYUKYU}{琉球大学\\University of the Ryukyus}

% 和文著者名
\author{當眞 大千\affiref{URYUKYU}\nomember{}\and
		金城 裕\affiref{URYUKYU}\nomember{}\and
        河野 真治\affiref{URYUKYU}\member{19841765}}
	
% 英文著者名
\eauthor{Daichi Toma\affiref{URYUKYU}\and
	 	 Yutaka Kinjo\affiref{URYUKYU}\and
         Shinji KONO\affiref{URYUKYU}}

% 連絡先(投稿時に必要.製版用では無視される.)
\contact{當眞 大千\\
903-0213 沖縄県中頭郡西原町字千原1\\
琉球大学情報工学科\\
        TEL: (098)895-8723\qquad FAX: (098)895-8727\\
        email: toma@cr.ie.u-ryukyu.ac.jp}

% 和文概要
\begin{abstract}
本研究室で作成した Cerium Task Manager\cite{gongo:2008:os}は, Task 単位で記述するゲームフレームワークである.
% Cerium Task Manager では, Task に input データ, output データ及び依存関係を設定し, 
% Task Manager としてそれらの Task を管理し, 実行する.
今までは, PlayStation 3/Cell\cite{cell} 上でのみ, 並列実行を可能にしていたが, 
今回新たに Mac OS X, Linux 上での並列実行に対応した.
% 今回のポスター発表では, 既存の Cerium Task Manager の実装の説明, 
% 新しい並列実行の機構についての説明及び実際に Cerium Task Manager を利用して, 並列実行のデモを行う.
本論文では, 既存の Cerium Task Manager の実装と新たに実装した並列実行の機構について説明する.

\end{abstract}
% 英文概要
\begin{eabstract}
We have developed Cerium Task Manager\cite{gongo:2008:os} of Game Framework.
Until now, Cerium Task Manager was able to enable parallel execution only on the PlayStation 3/Cell\cite{cell} ,
It new supporting parallel executation on Mac OS X and Linux. 
In this paper, we described implementation of existing Cerium Task Manager and a new parallel execution. 
\end{eabstract}

% 表題などの出力
\maketitle

% ページ番号を表示しない
% maketitleの定義が邪魔するので, 1ページ目だけはthispagestyleを使う必要がある
\thispagestyle{empty}

% 本文はここから始まる

\section{はじめに}
プロセッサメーカは, 消費電力, 発熱及びクロックの限界という観点から, 
マルチコア構成の路線を打ち出しており, 今後ますますマルチコアプロセッサが主流になると想像できる.

マルチコアプロセッサ上で, リソースを有効活用するためには, 並列プログラムを行う必要があるが, 
効率の良い並列プログラムを書くことは難しい.

そこで, 本研究室で作成した Cerium Task Manager\cite{gongo:2008:os} をマルチコアプロセッサに対応させることで,
マルチコアプロセッサ上での Task 単位による並列プログラミングをサポートする.

今まで, Cerium Task Manager は, PlayStation 3/Cell\cite{cell} 上でのみ, 並列実行を可能にしていたが,
今回新たに Mac OS X, Linux 上での並列実行に対応した.

本論文では, まず既存の Cerium Task Manager の実装について説明する. 
その後, 新たに実装した並列実行の機構について説明する.

\section{Cerium Task Manager}\label{section:cerium}
Cerium Task Manager は, Cell用に開発されたゲームフレームワークであり, 
Rendering Engine を含む.

Cerium Task Manager では, 並列処理を Task 単位で記述する.
関数やサブルーチンを Task として扱い,
Task には, input データ, output データ及び依存関係を設定する.
Cerium Task Manager によってそれらの Task は管理され, 実行される.

Cerium Task Manager は, PlayStation 3/Cell, Mac OS X 及び Linux 上で利用することができ,
それぞれのプラットフォームで同じプログラムを動作させることができる.
これにより, アーキテクチャに依存しないプログラムを記述することが可能である.

\subsection{Cerium Task Manager の特長}
Cerium Task Manager では, プログラムの様々なレベルでパイプラインが構成されるので,
プログラムの性能向上が見込める\cite{kaito:master}.

また, Task 自体は入力データから, 出力データを計算するだけなので非常に単純だが,
その入出力データをダブルバッファリングとして切り替えたり, 
適切な並列度が得られるように徐々に生成するのは非常に煩雑となる.
さらに, これらのデータ管理は, 並列実行を行うアーキテクチャに特化した処理が必要となる.
Cerium Task Manager を利用することで, このような煩わしいことから解放され, 
並列計算の実装に集中することができる.


\section{新たに実装した並列実行の機構}\label{section:impl}

PlayStation 3/Cell 上の場合, 各 SPE に Task が割り当てられ, 並列に実行される.

今回新たに, Mac OS X, Linux 上でも並列に実行させることを可能にした.
これは, PlayStation 3/Cell の Mailbox に対応させる形で, 
Synchronized Queue を用いて Mac OS X, Linux 側の Cerium Task Manager の設計をし直したものである.

\subsection{Mailbox}
Mailbox は, Cell の機能の1つである.
Mailbox は, PPE と SPE の間を双方向で, 32 bit メッセージの受け渡しが可能であり,
FIFO キュー構造になっている.

\begin{figure}[h]
\begin{center}
\includegraphics[scale=0.4]{./pic/Mailbox.eps}
\end{center}
\caption{Mailbox}
\label{fig:mailbox}
\end{figure}

\subsection{Synchronized Queue}
Maiilbox に対応させる形で作成した, Linux 上で動作する同期キューである.
キューを操作しているスレッドが常に1つになるよう, バイナリセマフォで管理されている.
各スレッドは, input 用と output 用として Synchronized Queue を2つ持っており, 
管理スレッドからタスクを受けて並列に実行するようになっている.

\subsection{ベンチマーク}
0からnまでに含まれる素数の探索を行う例題を用いた.
表\ref{table:benchmark}に結果を示す.

{\bf 実験環境}
\begin{itemize}
\item OS : CentOS 6.0
\item CPU : Intel(R) Xeon(R) CPU X5650 @2.67GHz (仮想環境で 4 コアのみ使用)
\item Memory : 8GB
\end{itemize}

\begin{table}[h]
\begin{center}
\caption{ベンチマーク}
\label{table:benchmark}
\begin{tabular}[t]{l||l|l}
\hline
スレッド数 & $\displaystyle n =10^6$ & $\displaystyle n =10^7 $\\
\hline\hline
1 スレッド & 239 ms & 2641 ms\\
\hline
4 スレッド & 104 ms & 1010 ms\\
\hline
\end{tabular}
\end{center}
\end{table}

表\ref{table:benchmark}から, 台数効果が出ていることが確認できる.

\section{まとめ}
本稿では, 既存の Cerium Task Manager の実装と新しい並列実行の機構について説明した.
新しく実装した並列実行の機構を用いることによって, Mac OS X, Linux 上でのマルチプロセッサ環境に対応できる. 


\bibliographystyle{junsrt}
\bibliography{cerium}

\end{document}