1
|
1 \chapter{TaskManagerを使った例題}
|
|
2 本章では、TaskManager を使った例題を紹介する
|
|
3 \section{WordCount}
|
|
4 例題としTaskManagerを使ったWordCountを実装した。Taskの構成は以下のである。
|
|
5 \begin{enumerate}
|
|
6 \item WordCountTask
|
|
7 \item PrintTask
|
|
8 \end{enumerate}
|
|
9 WordCountTaskは、input された data を word count し、単語数と行数を output に指定された data 領域に書きこむTaskである。
|
|
10 分割されたデータが送られてくるため、分割された前後のテキストがどうなっているかはわからない。そのため担当範囲であるデータの先頭と末尾のパラメータを単語数と行数の他に付け加える。後にそのデータを他のword count 結果と照らし合わせ、分割されたテキストを正しく整合する。
|
|
11 PrintTask は WordCountTask によって書き出された単語数と行数を集計し、出力するTaskである。WordCountTask を wait する設定で、すべてのWordCountTaskが終了したあとに、動作する。
|
|
12 word count 対象として入力されたファイルは、mmapを用いてメモリに展開する。その後データを16kbyteの大きさに分割しながら、WordCountTaskに割り当てていく。(\figref{wc-graf})
|
0
|
13
|
1
|
14 \begin{figure}[htb]
|
|
15 \begin{center}
|
|
16 \includegraphics[scale=0.70]{./images/wc_graf1.pdf}
|
|
17 \end{center}
|
|
18 \caption{wordcount flow}
|
|
19 \label{fig:wc-graf}
|
|
20 \end{figure}
|
0
|
21
|
1
|
22
|
|
23 \section{Sort}
|
|
24
|
|
25 \section{Prime}
|
|
26
|
|
27
|