# HG changeset patch # User Masataka Kohagura # Date 1393351004 -32400 # Node ID 17c93faef65b34566c0371b1af295a5deb4c00c5 # Parent 3bf281002f7247942acbe35e890a6b6bb9f3aa8a fix diff -r 3bf281002f72 -r 17c93faef65b paper/chapter2.tex --- a/paper/chapter2.tex Wed Feb 26 02:25:32 2014 +0900 +++ b/paper/chapter2.tex Wed Feb 26 02:56:44 2014 +0900 @@ -5,7 +5,7 @@ Cerium Task Manager は並列プログラミングフレームワークであり、内部では C や C++ で実装されている。 Cerium Task Manager は、User が並列処理を Task 単位で記述し、関数やサブルーチンを Task として扱い、その Task に対して Input Data、Output Data 及び依存関係を設定する。 そして、それに基づいた設定の元で Task Manager にて管理し実行される。 -Cerium Task Manager は PlayStation 3/Cell、Mac OS X 及び Linux 上で利用することが可能で、近年では GPU へ の利用も可能となった。 +Cerium Task Manager は PlayStation 3/Cell、Mac OS X 及び Linux 上で利用することが可能である。 図\ref{fig:createTask} では、 User が Task を生成して、CPU や GPU の各デバイスに Task が割り振られる様子を表している。 User が設定を行った Task は Task Manager にて生成される。その生成した Task に HTask にて Input Data 、Output Data や依存関係などを設定して Task の集合体である TaskList に Set する。 diff -r 3bf281002f72 -r 17c93faef65b paper/chapter3.tex --- a/paper/chapter3.tex Wed Feb 26 02:25:32 2014 +0900 +++ b/paper/chapter3.tex Wed Feb 26 02:56:44 2014 +0900 @@ -220,7 +220,7 @@ \begin{center} \includegraphics[width=0.8\textwidth]{fig/bmskiptable1.pdf} \end{center} -\caption{BMsearch skip table} +\caption{BMsearch skip table のまとめ} \label{fig:bmskiptable1} \end{figure} @@ -286,6 +286,7 @@ もし途中で不一致が起こった場合は、その不一致が起こった時の text[i] の文字列か pattern の長さから j 引いたものの最大値の分だけ text の参照先をずらす。 +\newpage \subsection{ファイル分割時の処理の注意点} この例題ではファイルを読み込んで一定の大きさでファイルを分割する。分割したものにそれぞれ文字列検索を行う。 それぞれの結果は pattern が含まれている個数が返ってくるので、最後に集計をして個数を表示する。このような一つ一つの処理を Task と呼ぶ。 @@ -315,7 +316,6 @@ \label{fig:includeiotask} \end{figure} -\newpage それを解決するために、1つの Search task の text の長さに pattern の長さを加えてから 1 引いた数だけ読み込むようにすればそのような問題は起こらない。よって、読み込むデータ量は $ L + s -1 $となる。 \begin{figure}[htbp] @@ -326,7 +326,10 @@ \label{fig:includeiotask} \end{figure} +\newpage + 力任せ法と Boyer-Moore String Search を比較してみた。以下に実験環境と結果を示す。(表\ref{table:search}) + \begin{itemize} \item Mac OS X 10.9.1 \item 2*2.66 GHz 6-Core Intel Xeon diff -r 3bf281002f72 -r 17c93faef65b paper/chapter4.tex --- a/paper/chapter4.tex Wed Feb 26 02:25:32 2014 +0900 +++ b/paper/chapter4.tex Wed Feb 26 02:56:44 2014 +0900 @@ -145,10 +145,11 @@ \label{fig:speany} \end{figure} -この問題を解決するために、Task Manager に新しく I/O 専用の thread を用意した。(図\ref{fig:addio0}) +この問題を解決するために、Task Manager に新しく I/O 専用の thread 、 IO\_0 の追加を行った。 + +(図\ref{fig:addio0}) %この問題を解決するために、Task Manager に IO\_0という新しいデバイス設定を追加した。 -この設定は他のデバイス設定よりも priority を高く設定している。 \begin{figure}[htbp] \begin{center} @@ -169,29 +170,3 @@ \label{fig:io0} \end{figure} -\newpage -IO\_0 の priority を高く実装したソースコードは以下のようになる。 -\begin{breakbox} -\begin{verbatim} -void * -CpuThreads::cpu_thread_run(void *args) -{ - cpu_thread_arg_t *argt = (cpu_thread_arg_t *) args; - - ・・・ - - if (argt->cpuid >= argt->cpu_num) { - // set IO thread priory maximum - int policy; - struct sched_param param; - pthread_getschedparam(pthread_self(), &policy, ¶m); - param.sched_priority = 1; - pthread_setschedparam(pthread_self(), policy, ¶m); - } - - return NULL; -} -\end{verbatim} -\end{breakbox} - -(ソース説明) diff -r 3bf281002f72 -r 17c93faef65b paper/fig/blockread.graffle --- a/paper/fig/blockread.graffle Wed Feb 26 02:25:32 2014 +0900 +++ b/paper/fig/blockread.graffle Wed Feb 26 02:56:44 2014 +0900 @@ -26,7 +26,7 @@ MasterSheets ModificationDate - 2014-02-25 12:26:02 +0000 + 2014-02-25 17:43:44 +0000 Modifier masataka kohagura NotesVisible @@ -38672,7 +38672,7 @@ {\colortbl;\red255\green255\blue255;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc -\f0\fs24 \cf0 CPU Threads} +\f0\fs24 \cf0 GPU Threads} @@ -39706,7 +39706,7 @@ {\colortbl;\red255\green255\blue255;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc -\f0\fs24 \cf0 CPU Threads} +\f0\fs24 \cf0 GPU Threads} @@ -40308,11 +40308,11 @@ WindowInfo CurrentSheet - 18 + 20 ExpandedCanvases Frame - {{746, 1266}, {1184, 874}} + {{1499, 1365}, {1184, 874}} ListView OutlineWidth diff -r 3bf281002f72 -r 17c93faef65b paper/fig/ceriumtaskmanager.bb --- a/paper/fig/ceriumtaskmanager.bb Wed Feb 26 02:25:32 2014 +0900 +++ b/paper/fig/ceriumtaskmanager.bb Wed Feb 26 02:56:44 2014 +0900 @@ -1,5 +1,5 @@ %%Title: ./fig/ceriumtaskmanager.pdf %%Creator: extractbb 20090506 %%BoundingBox: 0 0 392 302 -%%CreationDate: Mon Feb 24 12:34:04 2014 +%%CreationDate: Wed Feb 26 02:44:40 2014 diff -r 3bf281002f72 -r 17c93faef65b paper/fig/ceriumtaskmanager.pdf Binary file paper/fig/ceriumtaskmanager.pdf has changed diff -r 3bf281002f72 -r 17c93faef65b paper/fig/includeiotask.bb --- a/paper/fig/includeiotask.bb Wed Feb 26 02:25:32 2014 +0900 +++ b/paper/fig/includeiotask.bb Wed Feb 26 02:56:44 2014 +0900 @@ -1,5 +1,5 @@ %%Title: ./fig/includeiotask.pdf -%%Creator: extractbb 20120420 -%%BoundingBox: 0 0 435 180 -%%CreationDate: Tue Feb 18 01:15:42 2014 +%%Creator: extractbb 20090506 +%%BoundingBox: 0 0 385 245 +%%CreationDate: Wed Feb 26 02:39:56 2014 diff -r 3bf281002f72 -r 17c93faef65b paper/fig/includeiotask.pdf Binary file paper/fig/includeiotask.pdf has changed diff -r 3bf281002f72 -r 17c93faef65b paper/thesis-paper.pdf Binary file paper/thesis-paper.pdf has changed diff -r 3bf281002f72 -r 17c93faef65b preliminary/final-thesis.pdf Binary file preliminary/final-thesis.pdf has changed diff -r 3bf281002f72 -r 17c93faef65b preliminary/final-thesis.tex --- a/preliminary/final-thesis.tex Wed Feb 26 02:25:32 2014 +0900 +++ b/preliminary/final-thesis.tex Wed Feb 26 02:56:44 2014 +0900 @@ -33,8 +33,7 @@ 先行研究による Task の並列化によって、プログラム全体の処理速度は飛躍的に向上しているが\cite{kinjyo} 、 ファイル読み込み等の I/O 処理と Task が並列で動作するようには実装されていない。 -本研究では、 I/O と Task の並列化の設計・実装によって既存の正規表現の処理速度、処理効率を上げることを目指す。 - +本研究では I/O処理 と Task が並列に動作するような設計、実装によってプログラム全体の並列度、及び処理速度を上げていく。 \section{Cerium Task Manager} Cerium Task Managerは、並列処理をTask単位で記述する。関数やサブルーチンをTaskとして扱い、そのTaskに対してInput Data、Output Data及び依存関係を設定する。そして、それに基づいた設定の元で Task Manager に管理され実行される。本稿で述べるInput Dataとは、検索対象となるテキストファイルのことである。