Mercurial > hg > Papers > 2012 > yutaka-master
view paper/chapter3.tex @ 3:181befc58e1d draft
add Prime explanation
author | Daichi TOMA <toma@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Thu, 09 Feb 2012 04:30:17 +0900 |
parents | 5dbcea03717e |
children | 20d87c5e225a |
line wrap: on
line source
\chapter{TaskManagerを使った例題} 本章では、TaskManager を使った例題を紹介する \section{WordCount} 例題としTaskManagerを使ったWordCountを実装した。Taskの構成は以下のである。 \begin{enumerate} \item WordCountTask \item PrintTask \end{enumerate} WordCountTaskは、input された data を word count し、単語数と行数を output に指定された data 領域に書きこむTaskである。 分割されたデータが送られてくるため、分割された前後のテキストがどうなっているかはわからない。そのため担当範囲であるデータの先頭と末尾のパラメータを単語数と行数の他に付け加える。後にそのデータを他のword count 結果と照らし合わせ、分割されたテキストを正しく整合する。 PrintTask は WordCountTask によって書き出された単語数と行数を集計し、出力するTaskである。WordCountTask を wait する設定で、すべてのWordCountTaskが終了したあとに、動作する。 word count 対象として入力されたファイルは、mmapを用いてメモリに展開する。その後データを16kbyteの大きさに分割しながら、WordCountTaskに割り当てていく。(\figref{wc-graf}) \begin{figure}[htb] \begin{center} \includegraphics[scale=0.70]{./images/wc_graf1.pdf} \end{center} \caption{wordcount flow} \label{fig:wc-graf} \end{figure} \section{Sort} 例題としてTaskManagerを使ったSortを実装した。Taskの構成は以下の通りである。 \begin{enumerate} \item QuickSortTask \item SortSimpleTask \end{enumerate} 指定された数の乱数を生成し、Sortする例題である。 \section{Prime} 例題としてTaskManagerを使ったPrimeを実装した。Taskの構成は以下の通りである。 \begin{enumerate} \item PrimeTask \item PrintTask \end{enumerate} PrimeTaskは、指示された範囲を素数判定し、渡された配列に結果を収めるTaskである。 ミラー-ラビン素数判定法を用いて、2, 3, 5, 7 及び 11 について調べることで、2,152,302,898,747以下において決定的アルゴリズムにしている。 % 参考文献 http://primes.utm.edu/prove/prove2_3.html % Jaeschkeによる PrintTaskは、PrimeTaskによって判定された素数を出力するTaskである。出力指示がされている場合のみ、素数を出力する。