Mercurial > hg > Papers > 2011 > toma-prosym
changeset 34:97ec45d828f8
modify
author | Daichi Toma <toma@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 22 Nov 2011 00:00:50 +0900 |
parents | b613f75e04ad |
children | ad3c880ecdf0 |
files | Paper/prosym.pdf Paper/prosym.tex |
diffstat | 2 files changed, 27 insertions(+), 27 deletions(-) [+] |
line wrap: on
line diff
--- a/Paper/prosym.tex Mon Nov 21 20:56:03 2011 +0900 +++ b/Paper/prosym.tex Tue Nov 22 00:00:50 2011 +0900 @@ -126,7 +126,6 @@ それぞれのプラットフォームで同じプログラムを動作させることができる. これにより, アーキテクチャに依存しないプログラムを記述することが可能である. -\subsection{Cerium Task Manager の特長} Cerium Task Manager では, プログラムの様々なレベルでパイプラインが構成されるので, プログラムの性能向上が見込める (図\ref{fig:scheduler}) . @@ -134,7 +133,7 @@ その入出力データをダブルバッファリングとして切り替えたり, 適切な並列度が得られるように徐々に生成するのは非常に煩雑となる. さらに, これらのデータ管理は, 並列実行を行うアーキテクチャに特化した処理が必要となる\cite{yutaka:2011b}. -Cerium Task Manager を利用することで, このような煩わしいことから解放され, +Cerium Task Manager を利用することで, このような処理を代わりに行ってくれるため, 並列計算の実装に集中することができる. \begin{figure}[h] @@ -145,13 +144,17 @@ \label{fig:scheduler} \end{figure} -\section{新たに実装した並列実行の機構}\label{section:impl} +\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 へ移植したものである. +操作しているスレッドが常に1つになるよう, バイナリセマフォで管理されている. +各スレッドは, input 用と output 用として Synchronized Queue を2つ持っており, +管理スレッドからタスクを受けて並列に実行するようになっている. + また, PlayStation 3/Cell と違い各 CPU で同じメモリ空間が利用できるため, DMA転送を用いていた箇所をポインタ渡しをするように修正し, 速度の向上を図った. @@ -160,20 +163,15 @@ % Mailbox は, PPE と SPE の間を双方向で, 32 bit メッセージの受け渡しが可能であり, % FIFO キュー構造になっている. -\subsection{Synchronized Queue} -PlayStation 3/Cell の Mailbox に対応させる形で作成した, Linux 上で動作する同期キューである. -キューを操作しているスレッドが常に1つになるよう, バイナリセマフォで管理されている. -各スレッドは, input 用と output 用として Synchronized Queue を2つ持っており, -管理スレッドからタスクを受けて並列に実行するようになっている. -\subsection{ベンチマーク} +\section{ベンチマーク} Wort Count, Sort 及び Prime Counter の例題を用いて, 計測した. 比較対象として, PlayStation 3/Cell においても同様の例題を用いて計測している. 表\ref{table:benchmark}に結果を示す. {\bf 実験環境} -Linux +CentOS/Xeon \begin{itemize} \item OS : CentOS 6.0 \item CPU : Intel\textregistered Xeon\textregistered X5650 @2.67GHz * 2 @@ -181,7 +179,7 @@ \item Compiler : GCC 4.4.4 \end{itemize} -PlayStation 3 +PlayStation 3/Cell \begin{itemize} \item OS : Yellow Dog Linux 6.1 \item CPU : Cell Broadband Engine @ 3.2GHz @@ -190,28 +188,25 @@ \end{itemize} \begin{table}[h] -\begin{center} \caption{Benchmark} -\vspace*{-0.5cm} \label{table:benchmark} -\begin{tabular}[t]{l||l|l|l} +\begin{tabular}[t]{c||r|r|r} \hline & Word Count & Sort & Prime Counter\\ \hline\hline -PS3 1 CPU & 2381 ms & 6244 ms & 2081 ms \\ +1 CPU (Cell)& 2381 ms & 6244 ms & 2081 ms \\ \hline -PS3 6 CPU & 1268 ms & 1111 ms & 604 ms\\ +6 CPU (Cell)& 1268 ms & 1111 ms & 604 ms\\ \hline -1 CPU & 354 ms & 846 ms & 266 ms\\ +1 CPU (Xeon)& 354 ms & 846 ms & 266 ms\\ \hline -6 CPU & 70 ms & 163 ms & 50 ms\\ +6 CPU (Xeon)& 70 ms & 163 ms & 50 ms\\ \hline -12 CPU & 48 ms & 127 ms & 36 ms\\ +12 CPU (Xeon)& 48 ms & 127 ms & 36 ms\\ \hline -24 CPU & 40 ms & 100 ms & 31 ms\\ +24 CPU (Xeon)& 40 ms & 100 ms & 31 ms\\ \hline \end{tabular} -\end{center} \end{table} % また, 図\ref{fig:multi_result}に各例題をスレッド数を変更して実行した結果を示す. @@ -233,10 +228,14 @@ % \label{fig:cell_result} % \end{figure} -表\ref{table:benchmark}より, Playstation 3/Cell と比較して十分に速い結果が出ていることが確認できる. -また, 6 CPU を利用した場合, 1 CPU を利用した場合と比較して台数効果が確認できる. -しかしながら, 24 CPU を利用した場合, 12 CPU を利用した場合と比較して速度は上がっているが速度向上率が十分ではない. -これはアムダールの法則\cite{amdahl}より, 並列化率が低いために速度向上が頭打ちになっていると考えられる. +% Word Count 354 / 70 = 5.0571 +% Sort 846 / 163 = 5.1901 +% Prime Counter 266 / 50 = 5.32 +表\ref{table:benchmark}より, CentOS上で 6 CPU を利用した場合, 1 CPU を利用した場合と比較して +Word Count の例題で約 5.1 倍, Sort の例題で約 5.2 倍, Prime Counter の例題で, 約 5.3倍の速度向上が見られる. +しかしながら, 24 CPU を利用した場合, 12 CPU を利用した場合と比較して速度は上がっているものの速度向上率が落ちている. +これは並列化率が低いために性能を活かすことができず, 速度向上が頭打ちになっているとアムダールの法則\cite{amdahl}から考えられる. +並列化率の向上は今後の課題である. % また, 図\ref{fig:multi_result}より, 台数効果が確認できる. @@ -244,9 +243,10 @@ 本稿では, 既存の Cerium Task Manager の実装と新しい並列実行の機構について説明した. 新しく実装した並列実行の機構を用いることによって, Mac OS X, Linux 上でのマルチプロセッサ環境に対応できる. -\section{今後の課題} -現在の Cerium Task Manager は, Task の種類が増え, Open CL\cite{opencl} に比べても記述が煩雑であるなどの欠点がある. +今後の課題として, 並列化率を向上させ, プロセッサ数が増えた時の速度向上率を改善する. +また, 現在の Cerium Task Manager は Task の種類が増え, Open CL\cite{opencl} に比べても記述が煩雑であるなどの欠点がある. これは Task の依存関係を, ユーザ側ではなくシステム側が記述するようにすることで解決できると考える. + \nocite{cell_abi} \bibliographystyle{junsrt}