annotate paper/chapter3.tex @ 34:472f45ab9fca draft default tip

fix
author Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
date Thu, 16 Feb 2012 23:46:16 +0900
parents 140aec35135c
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
1 \chapter{TaskManagerを使った例題}
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
2 本章では、TaskManager を使った例題を紹介する
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
3 \section{WordCount}
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
4 例題としTaskManagerを使ったWordCountを実装した。Taskの構成は以下のである。
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
5 \begin{enumerate}
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
6 \item WordCountTask
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
7 \item PrintTask
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
8 \end{enumerate}
17
6e393cf72b37 add explanation
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
9
1
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
10 WordCountTaskは、input された data を word count し、単語数と行数を output に指定された data 領域に書きこむTaskである。
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
11 分割されたデータが送られてくるため、分割された前後のテキストがどうなっているかはわからない。そのため担当範囲であるデータの先頭と末尾のパラメータを単語数と行数の他に付け加える。後にそのデータを他のword count 結果と照らし合わせ、分割されたテキストを正しく整合する。
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
12 PrintTask は WordCountTask によって書き出された単語数と行数を集計し、出力するTaskである。WordCountTask を wait する設定で、すべてのWordCountTaskが終了したあとに、動作する。
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
13 word count 対象として入力されたファイルは、mmapを用いてメモリに展開する。その後データを16kbyteの大きさに分割しながら、WordCountTaskに割り当てていく。(\figref{wc-graf})
0
6d80c2c895e4 first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
14
1
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
15 \begin{figure}[htb]
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
16 \begin{center}
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
17 \includegraphics[scale=0.70]{./images/wc_graf1.pdf}
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
18 \end{center}
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
19 \caption{wordcount flow}
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
20 \label{fig:wc-graf}
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
21 \end{figure}
0
6d80c2c895e4 first commit
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
22
4
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
23 サイズを 100MB, 200MB としたテキストファイルを対象に、速度の測定を行った。Linux wc は PS3上の Linux のが提供するwcコマンドを用いた結果で PPE 1基を利用したものである。Cerium wc は SPE 6基 を用い今回実装した word count の計測結果である。(\tabref{wc_speed})
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
24
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
25 \begin{table}[!htb]
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
26 \begin{center}
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
27 \caption{speed of WordCount} \label{tab:wc_speed}
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
28 \hbox to\hsize{\hfil
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
29 \begin{tabular}{|c|c|c|c|} \hline
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
30 wc & file size(MB) & time(sec) \\ \hline
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
31 Linux & 100 & 30.9 \\ \hline
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
32 Linux & 200 & 62.8 \\ \hline
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
33 Cerium & 100 & 2.2 \\ \hline
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
34 Cerium & 200 & 12.8 \\ \hline
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
35 \end{tabular}\hfil}
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
36 \end{center}
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
37 \end{table}
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
38
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
39 100MBのテキストを扱う場合には、Linux と比べ15倍ほどの差が見られた。200MB の場合は約5倍ほどであるのは、PPE のメモリ容量が256MBとなっており、200MBのファイルを扱う場合には、頻繁にスワップなどが起きているため、ファイルのIOの部分でのオーバヘッドが高いと考えられる。通常のwcコマンドよりも Cerium を用いた wc が高い性能を示した。
1
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
40
17
6e393cf72b37 add explanation
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
41 % 適当に加筆修正してください
1
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
42 \section{Sort}
3
181befc58e1d add Prime explanation
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
43 例題としてTaskManagerを使ったSortを実装した。Taskの構成は以下の通りである。
181befc58e1d add Prime explanation
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
44 \begin{enumerate}
17
6e393cf72b37 add explanation
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
45 \item SortSimpleTask
3
181befc58e1d add Prime explanation
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
46 \item QuickSortTask
181befc58e1d add Prime explanation
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
47 \end{enumerate}
17
6e393cf72b37 add explanation
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
48
6e393cf72b37 add explanation
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
49 指定された数の乱数を生成し、Sort を行う例題である。
6e393cf72b37 add explanation
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
50 SortSimpleTask は、Task の割り当てを行う Task である。
6e393cf72b37 add explanation
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
51 始めに乱数列を分割し、QuickSortTask に割り当てる。
6e393cf72b37 add explanation
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
52 QuickSortTask は、割り当てられた範囲を Sort する。
6e393cf72b37 add explanation
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
53 次に、SortSimpleTask は、最初に分割して割り当てた範囲の中間から次の範囲の中間までをQuickSortTaskに割り当てる。
6e393cf72b37 add explanation
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
54 このようなTaskの割り当てを分割数分、繰り返し実行することで全体を Sort する。(\figref{sort-graf})
6e393cf72b37 add explanation
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
55
6e393cf72b37 add explanation
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
56 \begin{figure}[htb]
6e393cf72b37 add explanation
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
57 \begin{center}
6e393cf72b37 add explanation
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
58 \includegraphics[scale=0.70]{./images/sort.pdf}
6e393cf72b37 add explanation
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
59 \end{center}
6e393cf72b37 add explanation
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
60 \caption{Sort flow}
6e393cf72b37 add explanation
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
61 \label{fig:sort-graf}
6e393cf72b37 add explanation
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
62 \end{figure}
3
181befc58e1d add Prime explanation
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
63
17
6e393cf72b37 add explanation
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
64 10万入力のソートの速度の測定を行った。 PPE 1基のみを利用したものと、SPE 6 基を利用したものの計測結果である。(\tabref{sort_speed})
6e393cf72b37 add explanation
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
65
6e393cf72b37 add explanation
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
66 \begin{table}[!htb]
6e393cf72b37 add explanation
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
67 \begin{center}
6e393cf72b37 add explanation
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
68 \caption{speed of Sort} \label{tab:sort_speed}
6e393cf72b37 add explanation
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
69 \hbox to\hsize{\hfil
6e393cf72b37 add explanation
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
70 \begin{tabular}{|c|c|c|c|} \hline
6e393cf72b37 add explanation
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
71 Sort & time(sec) \\ \hline
6e393cf72b37 add explanation
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
72 PPE & 6.2 \\ \hline
6e393cf72b37 add explanation
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
73 PPE + SPE & 1.1 \\ \hline
6e393cf72b37 add explanation
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
74 \end{tabular}\hfil}
6e393cf72b37 add explanation
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
75 \end{center}
6e393cf72b37 add explanation
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
76 \end{table}
1
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
77
8
82de4669cc34 fix prime
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
78 \section{Prime Counter}
82de4669cc34 fix prime
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
79 例題としてTaskManagerを使ったPrime Counterを実装した。Taskの構成は以下の通りである。
3
181befc58e1d add Prime explanation
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
80 \begin{enumerate}
181befc58e1d add Prime explanation
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
81 \item PrimeTask
181befc58e1d add Prime explanation
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
82 \item PrintTask
181befc58e1d add Prime explanation
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
83 \end{enumerate}
17
6e393cf72b37 add explanation
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
84
3
181befc58e1d add Prime explanation
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
85 PrimeTaskは、指示された範囲を素数判定し、渡された配列に結果を収めるTaskである。
8
82de4669cc34 fix prime
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
86 ミラー-ラビン素数判定法を用いて、2, 3, 5, 7 及び 11 について調べることで、$2{,}152{,}302{,}898{,}747$以下において決定的アルゴリズムにしている。\cite{Jaeschke93}
3
181befc58e1d add Prime explanation
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
87 % 参考文献 http://primes.utm.edu/prove/prove2_3.html
181befc58e1d add Prime explanation
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
88 % Jaeschkeによる
181befc58e1d add Prime explanation
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
89 PrintTaskは、PrimeTaskによって判定された素数を出力するTaskである。出力指示がされている場合のみ、素数を出力する。
1
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
90
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
91
17
6e393cf72b37 add explanation
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
92 10万までの範囲の全ての素数の数え上げを行った。 PPE 1基のみを利用したものと、SPE 6 基を利用したものの計測結果である。(\tabref{prime_speed})
6e393cf72b37 add explanation
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
93
6e393cf72b37 add explanation
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
94 \begin{table}[!htb]
6e393cf72b37 add explanation
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
95 \begin{center}
6e393cf72b37 add explanation
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
96 \caption{speed of Prime Counter} \label{tab:prime_speed}
6e393cf72b37 add explanation
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
97 \hbox to\hsize{\hfil
6e393cf72b37 add explanation
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
98 \begin{tabular}{|c|c|c|c|} \hline
6e393cf72b37 add explanation
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
99 Sort & time(sec) \\ \hline
6e393cf72b37 add explanation
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
100 PPE & 2.1 \\ \hline
6e393cf72b37 add explanation
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
101 PPE + SPE & 0.6 \\ \hline
6e393cf72b37 add explanation
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
102 \end{tabular}\hfil}
6e393cf72b37 add explanation
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
103 \end{center}
6e393cf72b37 add explanation
Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
104 \end{table}