annotate Paper/paper.tex @ 1:fa9cfac50776 draft

add section for Cerium Task Manager
author Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
date Sun, 22 Jul 2012 14:24:53 +0900
parents c0689037215f
children 7efb3ef94295
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
fa9cfac50776 add section for Cerium Task Manager
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
1 \documentclass[twocolumn,twoside,9.5pt]{article}
0
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
2 \usepackage[dvipdfmx]{graphicx}
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
3 \usepackage{url}
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
4 \usepackage{picins}
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
5 \usepackage{fancyhdr}
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
6 \pagestyle{fancy}
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
7 \lhead{\parpic{\includegraphics[height=1zw,clip,keepaspectratio]{pic/emblem-bitmap.eps}}Technical Reading \& Writing}
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
8 \rhead{}
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
9 \cfoot{}
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
10
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
11 \setlength{\topmargin}{-1in \addtolength{\topmargin}{15mm}}
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
12 \setlength{\headheight}{0mm}
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
13 \setlength{\headsep}{5mm}
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
14 \setlength{\oddsidemargin}{-1in \addtolength{\oddsidemargin}{15mm}}
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
15 \setlength{\evensidemargin}{-1in \addtolength{\evensidemargin}{15mm}}
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
16 \setlength{\textwidth}{181mm}
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
17 \setlength{\textheight}{261mm}
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
18 \setlength{\footskip}{0mm}
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
19 \pagestyle{empty}
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
20
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
21 \begin{document}
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
22 \title{Implementation of Cerium Parallel Task Manager on Multi-core}
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
23 \author{128569G Daichi TOMA}
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
24 \date{}
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
25 \maketitle
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
26 \thispagestyle{fancy}
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
27
1
fa9cfac50776 add section for Cerium Task Manager
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
28 \section{Introduction}
fa9cfac50776 add section for Cerium Task Manager
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
29 We have developed Cerium Task Manager\cite{gongo:2008a} that is a Game Framework on the PlayStation 3/Cell\cite{cell}.
fa9cfac50776 add section for Cerium Task Manager
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
30 Cerium Task Manager new supporting parallel execution on Mac OS X and Linux.
fa9cfac50776 add section for Cerium Task Manager
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
31 In this paper, we described implementation of existing Cerium Task Manager and a new parallel execution.
0
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
32
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
33 \section{Cerium Task Manager}\label{section:cerium}
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
34
1
fa9cfac50776 add section for Cerium Task Manager
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
35 Cerium Task Manager is a game framework has been developed for the Cell, and include the Rendering Engine.
fa9cfac50776 add section for Cerium Task Manager
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
36 In Cerium Task Manager, parallel processing is described as a task.
fa9cfac50776 add section for Cerium Task Manager
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
37 The task usually consists of a function or subroutine. also the task is setted data inputs, data outputs and dependencies.
fa9cfac50776 add section for Cerium Task Manager
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
38 Cerium Task Manager managed those tasks, and execute.
fa9cfac50776 add section for Cerium Task Manager
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
39
fa9cfac50776 add section for Cerium Task Manager
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
40 Cerium Task Manager is available on PlayStaiton 3, Linux, Max OSX,
fa9cfac50776 add section for Cerium Task Manager
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
41 furthermore run the same programs on each platform.
fa9cfac50776 add section for Cerium Task Manager
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
42 Therefore, to write a programs that does not depend on the architecture is possible.
0
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
43
1
fa9cfac50776 add section for Cerium Task Manager
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
44 Cerium Task Manager configure pipeline at various levels of the program,
fa9cfac50776 add section for Cerium Task Manager
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
45 thus performance improvement. (Figure \ref{fig:scheduler}).
0
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
46
1
fa9cfac50776 add section for Cerium Task Manager
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
47 The task is very simple because only calculate data outputs from data inputs;
fa9cfac50776 add section for Cerium Task Manager
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
48 nevertheless to switch to those data inputs and outputs as double buffering,
fa9cfac50776 add section for Cerium Task Manager
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
49 To generate gradually so as to obtain concurrency is very complicate.
fa9cfac50776 add section for Cerium Task Manager
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
50
fa9cfac50776 add section for Cerium Task Manager
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
51 Additionally, these data management, it is necessary to the operation that specializes in architecture using parallel execution.\cite{yutaka:2011b}
fa9cfac50776 add section for Cerium Task Manager
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
52 Cerium Task Manager helps to do to such operation,
fa9cfac50776 add section for Cerium Task Manager
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
53 therefore be able to concentrate on the implementation of parallel computation.
0
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
54
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
55 \begin{figure}[h]
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
56 \begin{center}
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
57 \includegraphics[scale=0.4]{./pic/scheduler.pdf}
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
58 \end{center}
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
59 \caption{Scheduler}
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
60 \label{fig:scheduler}
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
61 \end{figure}
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
62
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
63 \section{マルチコア上での並列実行の機構}\label{section:impl}
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
64
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
65 PlayStation 3/Cell 上の場合, 各 SPE に Task が割り当てられ, 並列に実行される.
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
66
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
67 今回新たに, Mac OS X, Linux 上でも並列に実行させることを可能にした.
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
68 これは, PlayStation 3/Cell の Mailbox に対応させる形で,
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
69 Synchronized Queue を用いて Mac OS X, Linux 側の Cerium Task Manager へ移植したものである.
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
70 操作しているスレッドが常に1つになるよう, バイナリセマフォで管理されている.
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
71 各スレッドは, input 用と output 用として Synchronized Queue を2つ持っており,
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
72 管理スレッドからタスクを受けて並列に実行するようになっている.
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
73
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
74 また, PlayStation 3/Cell と違い各 CPU で同じメモリ空間が利用できるため,
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
75 DMA転送を用いていた箇所をポインタ渡しをするように修正し, 速度の向上を図った.
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
76
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
77 % \subsection{Mailbox}
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
78 % Mailbox は, Cell の機能の1つである.
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
79 % Mailbox は, PPE と SPE の間を双方向で, 32 bit メッセージの受け渡しが可能であり,
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
80 % FIFO キュー構造になっている.
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
81
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
82
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
83 \section{ベンチマーク}
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
84 Word Count, Sort 及び Prime Counter の例題を用いて, 計測した.
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
85 それぞれ入力として, 100MB のテキストファイルの単語数カウント, 10 万入力のソート, 100 万までの範囲の素数を全て数え上げるようになっている.
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
86 比較対象として, PlayStation 3/Cell においても同様の例題を用いて計測している.
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
87 どちらも, 最適化レベルは最大にしてある.
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
88
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
89 表\ref{table:benchmark}に結果を示す.
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
90
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
91 {\bf 実験環境}
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
92
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
93 CentOS/Xeon
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
94 \begin{small}
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
95 \begin{itemize}\small
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
96 \item OS : CentOS 6.0
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
97 \item CPU : Intel\textregistered Xeon\textregistered X5650 @2.67GHz * 2
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
98 \item Memory : 128GB
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
99 \item Compiler : GCC 4.4.4
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
100 \end{itemize}
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
101 \end{small}
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
102
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
103 PlayStation 3/Cell
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
104 \begin{small}
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
105 \begin{itemize}\small
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
106 \item OS : Yellow Dog Linux 6.1
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
107 \item CPU : Cell Broadband Engine @ 3.2GHz
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
108 \item Memory : 256MB
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
109 \item Compiler : GCC 4.1.2
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
110 \end{itemize}
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
111 \end{small}
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
112
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
113
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
114 \begin{tiny}
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
115 \begin{table}[h]
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
116 \caption{Benchmark}
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
117 \label{table:benchmark}
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
118 \small
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
119 \begin{tabular}[t]{c||r|r|r}
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
120 \hline
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
121 & Word Count & Sort & Prime Counter\\
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
122 \hline\hline
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
123 1 CPU (Cell)& 2381 ms & 6244 ms & 2081 ms \\
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
124 \hline
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
125 6 CPU (Cell)& 1268 ms & 1111 ms & 604 ms\\
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
126 \hline
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
127 1 CPU (Xeon)& 354 ms & 846 ms & 266 ms\\
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
128 \hline
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
129 6 CPU (Xeon)& 70 ms & 163 ms & 50 ms\\
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
130 \hline
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
131 12 CPU (Xeon)& 48 ms & 127 ms & 36 ms\\
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
132 \hline
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
133 24 CPU (Xeon)& 40 ms & 100 ms & 31 ms\\
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
134 \hline
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
135 \end{tabular}
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
136 \end{table}
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
137 \end{tiny}
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
138
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
139 % Word Count 354 / 70 = 5.0571
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
140 % Sort 846 / 163 = 5.1901
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
141 % Prime Counter 266 / 50 = 5.32
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
142 表\ref{table:benchmark}より, CentOS上で 6 CPU を利用した場合, 1 CPU を利用した場合と比較して
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
143 Word Count の例題で約 5.1 倍, Sort の例題で約 5.2 倍, Prime Counter の例題で, 約 5.3倍の速度向上が見られる.
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
144 しかしながら, 24 CPU を利用した場合, 12 CPU を利用した場合と比較して速度は上がっているものの速度向上率が落ちている.
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
145 これは並列化率が低いために性能を活かすことができず, 速度向上が頭打ちになっているとアムダールの法則\cite{amdahl}から考えられる.
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
146 並列化率の向上は今後の課題である.
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
147
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
148 % また, 図\ref{fig:multi_result}より, 台数効果が確認できる.
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
149
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
150 \section{まとめ}
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
151 本稿では, 既存の Cerium Task Manager の実装と新しい並列実行の機構について説明した.
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
152 新しく実装した並列実行の機構を用いることによって, Mac OS X, Linux 上でのマルチプロセッサ環境に対応できる.
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
153
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
154 今後の課題として, 並列化率を向上させ, プロセッサ数が増えた時の速度向上率を改善する.
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
155 また, 現在の Cerium Task Manager は Task の種類が増え, Open CL\cite{opencl} に比べても記述が煩雑であるなどの欠点がある.
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
156 これは Task の依存関係を, ユーザ側ではなくシステム側が記述するようにすることで解決できると考える.
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
157
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
158 \nocite{cell_abi}
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
159 % \nocite{yutaka:2010a, cell_abi, cell_cpp, cell_sdk, libspe2, ydl, clay200912, fix200609}
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
160 \bibliographystyle{junsrt}
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
161 \bibliography{cerium.bib,book.bib}
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
162
c0689037215f first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
163 \end{document}