annotate preliminary/final-thesis.tex @ 1:3520a4a36c6f

fix
author MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
date Sun, 14 Jun 2015 10:07:04 +0900
parents 7e7094064d57
children c0933fa26c81
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
1 \documentclass[twocolumn,twoside,9.5pt]{jarticle}
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
2 \usepackage[dvipdfmx]{graphicx}
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
3 \usepackage{picins}
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
4 \usepackage{fancyhdr}
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
5 \pagestyle{fancy}
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
6 \lhead{\parpic{\includegraphics[height=1zw,clip,keepaspectratio]{pic/emblem-bitmap.pdf}}琉球大学主催 工学部情報工学科 卒業研究発表会}
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
7 \rhead{}
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
8 \cfoot{}
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
9
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
10 \setlength{\topmargin}{-1in \addtolength{\topmargin}{15mm}}
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
11 \setlength{\headheight}{0mm}
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
12 \setlength{\headsep}{5mm}
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
13 \setlength{\oddsidemargin}{-1in \addtolength{\oddsidemargin}{11mm}}
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
14 \setlength{\evensidemargin}{-1in \addtolength{\evensidemargin}{21mm}}
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
15 \setlength{\textwidth}{181mm}
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
16 \setlength{\textheight}{261mm}
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
17 \setlength{\footskip}{0mm}
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
18 \pagestyle{empty}
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
19
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
20 \begin{document}
1
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
21 \title{Implement asynchronous read of Cerium}
0
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
22 \author{085726C {古波倉}{正隆} 指導教員 : 河野真治}
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
23 \date{}
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
24 \maketitle
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
25 \thispagestyle{fancy}
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
26
1
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
27 \section{Abstract}
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
28 We are developing a Parallel task manager Cerium.
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
29 I/O Included programming, read times is more heavy than processing time of Task.
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
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.
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
31 In the conventional implementation, we implemented file read with "mmap()" or "read()".
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
32 Inplementation this function down the degree of parallelism because another CPU stop while reading files.
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
33 In real read situation, asynchronous read sometimes gives good result on word count example. We gives the result and analysis.
0
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
34 \section{Cerium Task Manager}
1
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
35 We program parallel per tashk with Task Manager.
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
36 関数やサブルーチンをTaskとして扱い、そのTaskに対してInput Data、Output Data及び依存関係を設定する。そして、それに基づいた設定の元で Task Manager に管理され実行される。本稿で述べるInput Dataとは、検索対象となるテキストファイルのことである。
0
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
37
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
38 Cerium Task ManagerはPlayStation 3/Cell、Mac OS X及びLinux上で利用することができる。
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
39
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
40 \section{I/O を含む Task の概要}
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
41 ファイルを読み込んで一定の大きさでファイルを分割し (File Read)、それらに対してそれぞれ文字列検索等の処理 (Task)を行う。
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
42 そしてそれぞれの処理から返されたの結果 (Output Data)を最後に集計をして結果を返す(Result Task)。(図\ref{fig:includeio})
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
43
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
44 \begin{figure}[htbp]
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
45 \begin{center}
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
46 \includegraphics[width=0.5\textwidth]{pic/includeio.pdf}
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
47 \end{center}
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
48 \caption{I/O を含む Task}
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
49 \label{fig:includeio}
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
50 \end{figure}
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
51
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
52 \section{並列処理向け I/O の設計と実装}
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
53
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
54 \subsection{mmap での実装の問題点}
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
55 先行研究では mmap によるファイルの読み込みを行っていた。
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
56 mmap でファイルを読み込むタイミングは、mmap 関数が呼ばれたときではなく、mmap した領域に対して何らかのアクセスをしたときに初めてファイルが読み込まれる。
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
57 つまり、分割された Task は文字列検索をすぐに行うのではなく、文字列検索を行おうとした時に初めてファイルが格納される。
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
58 Task は複数一斉に実行されることが望ましいが、mmap ではそれぞれの Task で読み込みが起こってしまうため、I/O ネックによる Task の待ちが発生する。
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
59
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
60 \subsection{Blocked Read の設計と実装}
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
61 Blocked Read とは、あるサイズずつで読み込む処理と、それらに文字列検索を行う処理を分離させるための実装方法である。
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
62 この方法では、読み込み専用の Blocked Read と、文字列検索を行う Task Blocks を別々に生成し処理を行う。
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
63 Read Task はファイル全体を一度に読み込むのではなく、ある程度の大きさで分割を行い、読み込みされ次第それぞれの文字列検索が行われる。
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
64
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
65 Task は 1つずつ起動すると、起動した Task でメモリを圧迫してしまうため、Task を複数まとめたブロック単位で起動を行う。
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
66 この1つのブロックで処理されるテキストファイルを、Blocked Read で読み込んでいき、読み込みが終わったら読み込まれた範囲の Task Blocks を起動する。
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
67 もし、Blocked Read で読み込まれる前にその範囲を担当する Task が起動してしまうと、正しい結果が返ってこない。
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
68 それを防止するために、Task Blocks は必ず Blocked Read が行われてから起動するように wait をかけている。
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
69 (図\ref{fig:blockedreadwait})
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
70
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
71 \begin{figure}[htbp]
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
72 \begin{center}
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
73 \includegraphics[width=0.5\textwidth]{pic/blockedreadwait.pdf}
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
74 \end{center}
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
75 \caption{Wait for Blocked Read}
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
76 \label{fig:blockedreadwait}
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
77 \end{figure}
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
78
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
79 \subsection{I/O 専用 thread の実装}
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
80 Cerium Task Manager では Task 単位で CPU Type の設定を変更することができる。
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
81 SPE\_ANY という Type を設定すると、Cerium Task Manager 側が自動的に CPU を割り振る。
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
82 しかし、今回の実装でこの Type を使用してしまうと、Blocked Read Task に割り込んで Task が割り振られてしまう問題がある。
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
83 その問題を解決するために、IO\_0 という I/O 専用の thread を実装した。
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
84 この Thread は I/O を最優先に実行されるようにチューニングを行った。
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
85 (図\ref{fig:io0})
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
86 %%
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
87 %(図\ref{fig:speany})
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
88 %
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
89 %\begin{figure}[htbp]
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
90 %\begin{center}
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
91 %\includegraphics[width=0.4\textwidth]{pic/speany.pdf}
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
92 %\end{center}
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
93 %\caption{SPE\_ANYでの設定時}
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
94 %\label{fig:speany}
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
95 %\end{figure}
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
96
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
97
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
98 \begin{figure}[htbp]
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
99 \begin{center}
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
100 \includegraphics[width=0.4\textwidth]{pic/io0.pdf}
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
101 \end{center}
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
102 \caption{IO\_0 での実装時}
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
103 \label{fig:io0}
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
104 \end{figure}
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
105
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
106 \newpage
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
107
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
108 \section{ベンチマーク}
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
109
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
110 \begin{itemize}
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
111 \item Mac OS X Mavericks (10.9.1)
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
112 \item HDD 1TB、Memory 16GB、CPU 2*2.66 GHz 6-Core Intel Xeon
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
113 \item CPU NUM 12
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
114 \item 10GB のファイルに対して Booye-Moore String Search をかけ、検索文字列がいくつ含まれているのかカウント
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
115 \item 測定はファイルの読み込みから結果が返ってくるまでの時間
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
116 \end{itemize}
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
117
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
118 %以下の表\ref{table:result}に実行結果を示す。
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
119 以下の表1に実行結果を示す。
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
120
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
121 \begin{tiny}
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
122 \begin{table}[ht]
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
123 \begin{center}
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
124 \label{table:result}
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
125 \small
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
126 \begin{tabular}[t]{c|r}
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
127 \hline
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
128 読み込み方法 & 平均実行速度(s)\\
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
129 \hline
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
130 mmap & 154.6 \\
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
131 \hline
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
132 一括 Read & 114.9 \\
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
133 \hline
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
134 Blocked Read \& SPE\_ANY & 106.0 \\
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
135 \hline
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
136 Blocked Read \& IO\_0 & 99.2 \\
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
137 \hline
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
138 \end{tabular}
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
139 \caption{実行結果}
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
140 \end{center}
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
141 \end{table}
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
142 \end{tiny}
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
143
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
144 %\ref{table:result}より、mmap より Blocked Read \& IO\_0 の実行速度が 36 \% 改善された。
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
145 表1より、mmap より Blocked Read \& SPE\_ANY の実行速度が 31\% 改善された。
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
146 また、Blocked Read の CPU Type も SPE\_ANY から IO\_0 に変更することによって更に 4 \% の改善が見られた。
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
147 これより、I/O を含む並列処理を行う場合は、mmap で実装することによって自動的に読み込ませるのではなく、自分自身で読み込みを制御したほうが速くなることがわかる。
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
148
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
149 \section{まとめ}
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
150 mmap で I/O を含む Task を実装するとき、mmap した領域に対して何らかの処理が加わった時にしか読み込みが行わないので、それぞれの Task に読み込みを任せてしまうことになる。
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
151 それを解決する方法として、Blocked Read と Task を並列に行う実装を行った。
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
152 また、Blocked Read が、他の Task に割り込まれないように改善した結果、35 \% の実行速度の改善が見られた。
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
153 本研究より、I/O を含む Task は、チューニング次第で更に改善する余地があると考える。
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
154
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
155
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
156 \thispagestyle{fancy}
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
157 \begin{thebibliography}{9}
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
158
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
159 \bibitem{kinjyo}金城裕、河野真治、多賀野海人、小林佑亮 (琉球大学)\\
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
160 ゲームフレームワーク Cerium Task Manager の改良\\
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
161 情報処理学会システムソフトウェアとオペレーティング・システム研究会 (OS), April 2011
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
162
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
163 \end{thebibliography}
7e7094064d57 add somefiles
MasaKoha <kogagura@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
164 \end{document}