comparison preliminary/final-thesis.tex @ 2:c0933fa26c81

fix
author MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
date Mon, 15 Jun 2015 05:14:53 +0900
parents 3520a4a36c6f
children d54646faa2a9
comparison
equal deleted inserted replaced
1:3520a4a36c6f 2:c0933fa26c81
17 \setlength{\footskip}{0mm} 17 \setlength{\footskip}{0mm}
18 \pagestyle{empty} 18 \pagestyle{empty}
19 19
20 \begin{document} 20 \begin{document}
21 \title{Implement asynchronous read of Cerium} 21 \title{Implement asynchronous read of Cerium}
22 \author{085726C {古波倉}{正隆} 指導教員 : 河野真治} 22 \author{148585H {Masataka}{KOHAGURA}}
23 \date{} 23 \date{}
24 \maketitle 24 \maketitle
25 \thispagestyle{fancy} 25 \thispagestyle{fancy}
26 26
27 \section{Abstract} 27 \section{Abstract}
30 We assume to inplement included I/O programm by parallel programming. If I/O time is heavy, it is slowly included I/O programm. 30 We assume to inplement included I/O programm by parallel programming. If I/O time is heavy, it is slowly included I/O programm.
31 In the conventional implementation, we implemented file read with "mmap()" or "read()". 31 In the conventional implementation, we implemented file read with "mmap()" or "read()".
32 Inplementation this function down the degree of parallelism because another CPU stop while reading files. 32 Inplementation this function down the degree of parallelism because another CPU stop while reading files.
33 In real read situation, asynchronous read sometimes gives good result on word count example. We gives the result and analysis. 33 In real read situation, asynchronous read sometimes gives good result on word count example. We gives the result and analysis.
34 \section{Cerium Task Manager} 34 \section{Cerium Task Manager}
35 We program parallel per tashk with Task Manager. 35 We program parallel per tashs with Task Manager.
36 関数やサブルーチンをTaskとして扱い、そのTaskに対してInput Data、Output Data及び依存関係を設定する。そして、それに基づいた設定の元で Task Manager に管理され実行される。本稿で述べるInput Dataとは、検索対象となるテキストファイルのことである。 36 It is treated function and sub routins as task and we set depending, Input Data, and output data.
37 And, it is managed Task Manager setting. This paper's ``Input Data" is text file of search subject.
37 38
38 Cerium Task ManagerはPlayStation 3/Cell、Mac OS X及びLinux上で利用することができる。 39 Cerium Task Manager can use on PlayStaion 3/Cell, MacOS X and Linux.
39 40
40 \section{I/O を含む Task の概要} 41 \section{Outline included I/O Task}
41 ファイルを読み込んで一定の大きさでファイルを分割し (File Read)、それらに対してそれぞれ文字列検索等の処理 (Task)を行う。 42 Split the file constant size after file reading and splits file are excluded string search.
42 そしてそれぞれの処理から返されたの結果 (Output Data)を最後に集計をして結果を返す(Result Task)。(図\ref{fig:includeio}) 43 And returns the results to the last counting.
44 (fig\ref{fig:includeio})
43 45
44 \begin{figure}[htbp] 46 \begin{figure}[htbp]
45 \begin{center} 47 \begin{center}
46 \includegraphics[width=0.5\textwidth]{pic/includeio.pdf} 48 \includegraphics[width=0.5\textwidth]{pic/includeio.pdf}
47 \end{center} 49 \end{center}
48 \caption{I/O を含む Task} 50 \caption{include I/O Task}
49 \label{fig:includeio} 51 \label{fig:includeio}
50 \end{figure} 52 \end{figure}
51 53
52 \section{並列処理向け I/O の設計と実装} 54 \section{並列処理向け I/O の設計と実装}
53 55
97 99
98 \begin{figure}[htbp] 100 \begin{figure}[htbp]
99 \begin{center} 101 \begin{center}
100 \includegraphics[width=0.4\textwidth]{pic/io0.pdf} 102 \includegraphics[width=0.4\textwidth]{pic/io0.pdf}
101 \end{center} 103 \end{center}
102 \caption{IO\_0 での実装時} 104 \caption{implement IO\_0}
103 \label{fig:io0} 105 \label{fig:io0}
104 \end{figure} 106 \end{figure}
105 107
106 \newpage 108 \newpage
107 109
108 \section{ベンチマーク} 110 \section{Benchmark}
109 111
110 \begin{itemize} 112 \begin{itemize}
111 \item Mac OS X Mavericks (10.9.1) 113 \item Mac OS X Mavericks (10.9.1)
112 \item HDD 1TB、Memory 16GB、CPU 2*2.66 GHz 6-Core Intel Xeon 114 \item HDD 1TB、Memory 16GB、CPU 2*2.66 GHz 6-Core Intel Xeon
113 \item CPU NUM 12 115 \item CPU NUM 12
123 \begin{center} 125 \begin{center}
124 \label{table:result} 126 \label{table:result}
125 \small 127 \small
126 \begin{tabular}[t]{c|r} 128 \begin{tabular}[t]{c|r}
127 \hline 129 \hline
128 読み込み方法 & 平均実行速度(s)\\ 130 Read Method & Spend Average Time(s)\\
129 \hline 131 \hline
130 mmap & 154.6 \\ 132 mmap & 154.6 \\
131 \hline 133 \hline
132 一括 Read & 114.9 \\ 134 一括 Read & 114.9 \\
133 \hline 135 \hline
134 Blocked Read \& SPE\_ANY & 106.0 \\ 136 Blocked Read \& SPE\_ANY & 106.0 \\
135 \hline 137 \hline
136 Blocked Read \& IO\_0 & 99.2 \\ 138 Blocked Read \& IO\_0 & 99.2 \\
137 \hline 139 \hline
138 \end{tabular} 140 \end{tabular}
139 \caption{実行結果} 141 \caption{result}
140 \end{center} 142 \end{center}
141 \end{table} 143 \end{table}
142 \end{tiny} 144 \end{tiny}
143 145
144 %\ref{table:result}より、mmap より Blocked Read \& IO\_0 の実行速度が 36 \% 改善された。 146 %\ref{table:result}より、mmap より Blocked Read \& IO\_0 の実行速度が 36 \% 改善された。
145 表1より、mmap より Blocked Read \& SPE\_ANY の実行速度が 31\% 改善された。 147 表1より、mmap より Blocked Read \& SPE\_ANY の実行速度が 31\% 改善された。
146 また、Blocked Read の CPU Type も SPE\_ANY から IO\_0 に変更することによって更に 4 \% の改善が見られた。 148 また、Blocked Read の CPU Type も SPE\_ANY から IO\_0 に変更することによって更に 4 \% の改善が見られた。
147 これより、I/O を含む並列処理を行う場合は、mmap で実装することによって自動的に読み込ませるのではなく、自分自身で読み込みを制御したほうが速くなることがわかる。 149 これより、I/O を含む並列処理を行う場合は、mmap で実装することによって自動的に読み込ませるのではなく、自分自身で読み込みを制御したほうが速くなることがわかる。
148 150
149 \section{まとめ} 151 \section{conclusion}
150 mmap で I/O を含む Task を実装するとき、mmap した領域に対して何らかの処理が加わった時にしか読み込みが行わないので、それぞれの Task に読み込みを任せてしまうことになる。 152 mmap で I/O を含む Task を実装するとき、mmap した領域に対して何らかの処理が加わった時にしか読み込みが行わないので、それぞれの Task に読み込みを任せてしまうことになる。
151 それを解決する方法として、Blocked Read と Task を並列に行う実装を行った。 153 それを解決する方法として、Blocked Read と Task を並列に行う実装を行った。
152 また、Blocked Read が、他の Task に割り込まれないように改善した結果、35 \% の実行速度の改善が見られた。 154 また、Blocked Read が、他の Task に割り込まれないように改善した結果、35 \% の実行速度の改善が見られた。
153 本研究より、I/O を含む Task は、チューニング次第で更に改善する余地があると考える。 155 本研究より、I/O を含む Task は、チューニング次第で更に改善する余地があると考える。
154 156