Mercurial > hg > Papers > 2014 > masakoha-thesis > final
view paper/chapter5.tex @ 69:3988365f6f03
add eclbkbox.sty
author | Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 25 Feb 2014 05:08:39 +0900 |
parents | 1ff5dde6decf |
children | eaa8a657efe2 |
line wrap: on
line source
\chapter{ベンチマーク} \label{chap:poordirection} \section{実験環境} \begin{itemize} \item Mac OS X 10.9.1 \item 2*2.66 GHz 6-Core Intel Xeon \item Memory 16GB 1333MHz DDR3 \item HHD 1TB \item file size 10 GB \item CPU num 12 \item Boyer-Moore String Search で pattern がいくつ含まれているか検索 \item ファイルを読み込みから結果が返ってくるまでを測定 \end{itemize} \section{結果} 以下の表に実行結果を示す。 \begin{tiny} \begin{table}[ht] \begin{center} \label{table:result} \small \begin{tabular}[t]{c|r} \hline 読み込み方法 & 平均実行速度(s)\\ \hline mmap & 154.6 \\ \hline Blocked Read \& SPE\_ANY & 106.0 \\ \hline Blocked Read \& IO\_0 & 99.2 \\ \hline \end{tabular} \caption{実行結果} \end{center} \end{table} \end{tiny} 実験結果より、mmap より Blocked Read \& IO\_0 の実行速度が 36 \% 改善された。 また、Blocked Read の CPU Type も SPE\_ANY から IO\_0 に変更することによって更に 4 \% の改善が見られた。 \section{考察} mmap より Blocked Read で実装したほうが速くなったが、これは mmap の読み込み方法が問題であると考える。 I/O を含む例題の場合、シングルコアでの逐次実行であれば、mmap や pread で実装しても、Task は 読み込みを行って文字列検索を行うというシンプルな動作になる。 しかし、マルチコアの並列実行であれば、mmap で実装してしまうと、Task それぞれで読み込みを行ってしまうので競合が発生してしまう。 読み込みの競合が起こらないように Blocked Read にて読み込み部分と文字列検索部分を分けた結果、こちらのほうが速度が向上した。