Mercurial > hg > Papers > 2014 > masakoha-thesis > final
changeset 76:e13727d01f7a
fix slide
author | Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp> |
---|---|
date | Wed, 26 Feb 2014 19:24:11 +0900 |
parents | eaa8a657efe2 |
children | 5903492cd498 |
files | paper/bibliography.tex paper/chapter3.tex paper/chapter4.tex paper/chapter6.tex paper/fig/blockread.graffle paper/thanks.tex paper/thesis-paper.pdf slide/images/IO_0blockread.png slide/index.html |
diffstat | 9 files changed, 2310 insertions(+), 153 deletions(-) [+] |
line wrap: on
line diff
--- a/paper/bibliography.tex Wed Feb 26 04:15:25 2014 +0900 +++ b/paper/bibliography.tex Wed Feb 26 19:24:11 2014 +0900 @@ -11,5 +11,10 @@ \bibitem{kinjyo}金城裕、河野真治、多賀野海人、小林佑亮 (琉球大学)\\ ゲームフレームワーク Cerium Task Manager の改良\\ 情報処理学会システムソフトウェアとオペレーティング・システム研究会 (OS), April 2011 - +\bibitem{bmsearch}金城裕、河野真治、多賀野海人、小林佑亮 (琉球大学)\\ +ゲームフレームワーク Cerium Task Manager の改良\\ +情報処理学会システムソフトウェアとオペレーティング・システム研究会 (OS), April 2011 +J.S.Moore, R.S. Boyer.\\ +A Fast String Searching Algorithm\\ +Communications of the Association for Computing Machinery, pp.762-772, 1977 \end{thebibliography}
--- a/paper/chapter3.tex Wed Feb 26 04:15:25 2014 +0900 +++ b/paper/chapter3.tex Wed Feb 26 19:24:11 2014 +0900 @@ -82,7 +82,7 @@ \end{breakbox} 生成時に設定したデータ群を受け取り、それらのデータを pread の引数に渡す。読み込まれたファイルは read\_text に格納される。 -ハードディスクに保存されている 10GB のテキストファイルを分割して読み込み終わるまでの時間を表\ref{table:preaddata}に示す。 +ハードディスクに保存されている 10GB のテキストファイルを分割して読み込み終わるまでの時間を下記に示す。 分割サイズとは、1回の読み込み量である。 \begin{tiny} \begin{table}[ht] @@ -98,7 +98,6 @@ 16MB & 123.6 \\ \hline \end{tabular} - \caption{file read の実行結果} \end{center} \end{table} \end{tiny} @@ -109,8 +108,9 @@ \section{ファイルに対して処理を行う例題} 読み込んだテキストファイルに対して文字列検索を行う例題として、力任せ法と Boyer-Moore String Search を実装した。 -Boyer-Moore String Search は 1977 年に Robert S. Boyer と J Strother Moore が開発した効率的なアルゴリズムである。 -なお、テキストファイルに含まれている文字列を text、検索する文字列を pattern と定義する。 +Boyer-Moore String Search は 1977 年に Robert S. Boyer と J Strother Moore が開発した効率的なアルゴリズムである。\cite{bmsearch} + +以下、テキストファイルに含まれている文字列を text、検索する文字列を pattern と定義する。 \subsection{力任せ法} 力任せ法(総当り法とも呼ばれる)は、text と pattern を先頭から比較していき、 @@ -181,7 +181,7 @@ (a) のように、a で不一致が起こった場合は、着目点を右に1つか3つ移動できる。 しかし、着目点を右に3つずらしてしまうと、(b-1)のように text の途中にある "abac" という文字列を見逃してしまう。着目点を右に1つずらせば、(b-2)のように検索漏れを起こすことはなくなる。 -このように、pattern に同じ文字が複数入っている場合は、末尾から一番近いほうを適用する。よって、図\ref{fig:bmsearchinclude}では、不一致時の文字が a であれば右に1つ、b であれば右に2つ着目点をずらすことができる。 +このように、pattern に同じ文字が複数入っている場合は、末尾から一番近いほうを適用する。よって、図\ref{fig:bmsearchsame}では、不一致時の文字が a であれば右に1つ、b であれば右に2つ着目点をずらすことができる。 \begin{figure}[htbp] \begin{center} @@ -306,24 +306,25 @@ ファイルを分割したときに、分割される部分で pattern が含まれる場合が存在する。 その場合は、本来の読み込み部分の text の長さ $L$ に加えて、pattern の長さ $s$ だけ多く読みこむように設計することでこの問題は解決できる。 しかし、1 つの Search Task の text の長さが $L+s$ の場合だと、pattern が Search Task 1 に含まれ、Search Task 2 にも含まれてしまう。 -(図\ref{fig:includeiotask}) +(図\ref{fig:iodivfail}) \begin{figure}[htbp] \begin{center} \includegraphics[width=1.0\textwidth]{fig/iodivfail.pdf} \end{center} \caption{分割周りの処理・失敗時 (例:doing の検索)} -\label{fig:includeiotask} +\label{fig:iodivfail} \end{figure} それを解決するために、1つの Search task の text の長さに pattern の長さを加えてから 1 引いた数だけ読み込むようにすればそのような問題は起こらない。よって、読み込むデータ量は $ L + s -1 $となる。 +(図\ref{fig:iodivsuc}) \begin{figure}[htbp] \begin{center} \includegraphics[width=1.0\textwidth]{fig/iodivsuc.pdf} \end{center} \caption{分割周りの処理・成功時 (例:doing の検索)} -\label{fig:includeiotask} +\label{fig:iodivsuc} \end{figure} \newpage
--- a/paper/chapter4.tex Wed Feb 26 04:15:25 2014 +0900 +++ b/paper/chapter4.tex Wed Feb 26 19:24:11 2014 +0900 @@ -1,14 +1,18 @@ \chapter{並列処理向け I/O の設計と実装} \label{chap:poordirection} -\section{map reduce の設計} +\section{map reduce} +Cerium 側でファイルの分割読み込みを行い、それらに対して何らかの処理を行う map 処理、map 処理を行ったあとのデータ を集計する reduce 処理をユーザーが記述する。 +(図\ref{fig:mapreduce}) + \begin{figure}[htbp] \begin{center} \includegraphics[width=0.8\textwidth]{fig/mapreduce.pdf} \end{center} \caption{map reduce image} -\label{fig:mmap} \end{figure} +\label{fig:mapreduce} +\end{figure} \newpage @@ -130,11 +134,9 @@ \newpage \section{I/O 専用 thread の実装} -Cerium Task Manager では、各種 Task にデバイスを設定することができる。デバイスとは、GPU や CPU であり、GPUを利用するときは GPU\_ANY、CPU を利用するときは SPE\_ANYと設定することによってデバイスを利用できる。 - +Cerium Task Manager では、各種 Task にデバイスを設定することができる。 SPE\_ANY を使用すると、Task Manager で CPU の割り振りを自動的に行う。しかし、この機能を使用すると、Blocked Read に影響を与えてしまう。 - -Blocked Read 、Task それぞれに SPE\_ANY で CPUを自動的に割り振ると、Task Manager 側で自動的に CPU を割り当てる。このように CPU を割り当ててしまうと、本来 Blocked Read は連続で読み込むはずが、他の Task を割り当てられてしまう。 +Blocked Read 、Task それぞれに SPE\_ANY にてデバイスの設定を行うと、Task Manager 側で自動的に CPU を割り当てられ、本来 Blocked Read は連続で読み込むはずが、他の Task を割り当てられてしまう。 (図\ref{fig:speany}) \begin{figure}[htbp]
--- a/paper/chapter6.tex Wed Feb 26 04:15:25 2014 +0900 +++ b/paper/chapter6.tex Wed Feb 26 19:24:11 2014 +0900 @@ -40,7 +40,3 @@ キャッシュが無効になってしまうと、Blocked Read で実装した文字列検索は複数回実行するときに不利となる。 なぜこのようなことが起こるのか調査して、それが起こらないように実装していきたい。 - -\subsection{Blocked Read を Cerium API化} -現段階での Blocked Read の実装は、複雑な書き方で実装しなければならない。 -この実装を Cerium の API に落としこむことによって、簡単に実装できるようにしたい。
--- a/paper/fig/blockread.graffle Wed Feb 26 04:15:25 2014 +0900 +++ b/paper/fig/blockread.graffle Wed Feb 26 19:24:11 2014 +0900 @@ -26,7 +26,7 @@ <key>MasterSheets</key> <array/> <key>ModificationDate</key> - <string>2014-02-25 17:59:41 +0000</string> + <string>2014-02-26 09:31:22 +0000</string> <key>Modifier</key> <string>masataka kohagura</string> <key>NotesVisible</key> @@ -5066,7 +5066,7 @@ </dict> <dict> <key>Bounds</key> - <string>{{45.069235120500835, 41.95830045427595}, {66.857142857142861, 14}}</string> + <string>{{42.7835124905002, 41.958292824881418}, {66.857142857142861, 14}}</string> <key>Class</key> <string>ShapedGraphic</string> <key>FitText</key> @@ -7299,6 +7299,20 @@ <key>Draws</key> <string>NO</string> </dict> + <key>stroke</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>0</string> + <key>g</key> + <string>0</string> + <key>r</key> + <string>1</string> + </dict> + <key>Width</key> + <real>3</real> + </dict> </dict> <key>Text</key> <dict> @@ -37082,8 +37096,8 @@ <integer>69</integer> <key>Points</key> <array> - <string>{293.77336668065089, 261.76210954640061}</string> - <string>{264.53048820004096, 269.97740650994837}</string> + <string>{293.77846579980275, 261.76212813807018}</string> + <string>{264.53262369012168, 269.97947652475108}</string> </array> <key>Style</key> <dict> @@ -37117,8 +37131,8 @@ <integer>68</integer> <key>Points</key> <array> - <string>{287.36645562654638, 234.7032853856476}</string> - <string>{267.69540837965349, 235.6672055667959}</string> + <string>{287.36645619768007, 234.70423472999425}</string> + <string>{267.69565814955092, 235.66859563418629}</string> </array> <key>Style</key> <dict> @@ -37152,8 +37166,8 @@ <integer>67</integer> <key>Points</key> <array> - <string>{287.36642220845039, 159.77561736965555}</string> - <string>{267.69542393572857, 158.81171150147918}</string> + <string>{287.3664227323024, 159.77466803033002}</string> + <string>{267.69567370098628, 158.81032144567882}</string> </array> <key>Style</key> <dict> @@ -37187,8 +37201,8 @@ <integer>66</integer> <key>Points</key> <array> - <string>{293.77328244680677, 132.71676848016759}</string> - <string>{264.53050935538141, 124.50151658384615}</string> + <string>{293.77838159875608, 132.71674987976888}</string> + <string>{264.53264486400514, 124.49944655172419}</string> </array> <key>Style</key> <dict> @@ -38288,8 +38302,8 @@ <integer>69</integer> <key>Points</key> <array> - <string>{293.77972128175168, 261.76213271651505}</string> - <string>{264.53314945889986, 269.97998629484528}</string> + <string>{293.78003035295183, 261.76213384633485}</string> + <string>{264.53327890884083, 269.98011179435275}</string> </array> <key>Style</key> <dict> @@ -38323,8 +38337,8 @@ <integer>68</integer> <key>Points</key> <array> - <string>{287.36645641602695, 234.70460873750284}</string> - <string>{267.69575650613575, 235.66914326922986}</string> + <string>{287.36645647847138, 234.70475608509545}</string> + <string>{267.69579522431462, 235.66935902013489}</string> </array> <key>Style</key> <dict> @@ -38358,8 +38372,8 @@ <integer>67</integer> <key>Points</key> <array> - <string>{287.36642299774809, 159.77429402731738}</string> - <string>{267.69577205475645, 158.80977381411248}</string> + <string>{287.36642306020735, 159.77414668030892}</string> + <string>{267.69581077352484, 158.80955806424976}</string> </array> <key>Style</key> <dict> @@ -38393,8 +38407,8 @@ <integer>66</integer> <key>Points</key> <array> - <string>{293.77963710187345, 132.71674530119205}</string> - <string>{264.53317063951829, 124.49893677491676}</string> + <string>{293.77994620896135, 132.71674417955032}</string> + <string>{264.53330006218465, 124.49881126487408}</string> </array> <key>Style</key> <dict> @@ -39266,6 +39280,2155 @@ <key>Head</key> <dict> <key>ID</key> + <integer>11</integer> + </dict> + <key>ID</key> + <integer>15</integer> + <key>Points</key> + <array> + <string>{292.9807554294768, 96.558044277146266}</string> + <string>{238.73188730179959, 129.8897293955992}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>0</string> + <key>g</key> + <string>0</string> + <key>r</key> + <string>1</string> + </dict> + <key>HeadArrow</key> + <string>FilledBall</string> + <key>Legacy</key> + <true/> + <key>LineType</key> + <integer>1</integer> + <key>TailArrow</key> + <string>FilledBall</string> + <key>Width</key> + <real>2</real> + </dict> + </dict> + <key>Tail</key> + <dict> + <key>ID</key> + <integer>10</integer> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>Head</key> + <dict> + <key>ID</key> + <integer>11</integer> + </dict> + <key>ID</key> + <integer>14</integer> + <key>Points</key> + <array> + <string>{236.37841313639538, 96.734415048325062}</string> + <string>{218.24309752474687, 129.71188104893596}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>FilledBall</string> + <key>Legacy</key> + <true/> + <key>LineType</key> + <integer>1</integer> + <key>TailArrow</key> + <string>FilledBall</string> + </dict> + </dict> + <key>Tail</key> + <dict> + <key>ID</key> + <integer>7</integer> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>Head</key> + <dict> + <key>ID</key> + <integer>11</integer> + </dict> + <key>ID</key> + <integer>13</integer> + <key>Points</key> + <array> + <string>{180.06149680284955, 96.738562124096788}</string> + <string>{197.44889096837204, 129.70763933348272}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>FilledBall</string> + <key>Legacy</key> + <true/> + <key>LineType</key> + <integer>1</integer> + <key>TailArrow</key> + <string>FilledBall</string> + </dict> + </dict> + <key>Tail</key> + <dict> + <key>ID</key> + <integer>6</integer> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>Head</key> + <dict> + <key>ID</key> + <integer>11</integer> + </dict> + <key>ID</key> + <integer>12</integer> + <key>Points</key> + <array> + <string>{123.46512194080368, 96.560698006030975}</string> + <string>{176.95379290708831, 129.88708453810307}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>FilledBall</string> + <key>Legacy</key> + <true/> + <key>LineType</key> + <integer>1</integer> + <key>TailArrow</key> + <string>FilledBall</string> + </dict> + </dict> + <key>Tail</key> + <dict> + <key>ID</key> + <integer>5</integer> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{163.85184600421925, 130.14814588497052}, {87.555557250976562, 37.037036895751953}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>11</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 Cerium\ +Task Manager}</string> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{285.06002299166397, 71.851854207411748}, {56.47795071315111, 24.444438926962349}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>10</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>0</string> + <key>g</key> + <string>0</string> + <key>r</key> + <string>1</string> + </dict> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 I/O CPU}</string> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{215.10174551794825, 71.851855305326183}, {56.47795071315111, 24.444438926962349}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>7</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 GPU}</string> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{145.14346380267656, 71.851859124931906}, {56.47795071315111, 24.444438926962349}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>6</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 CPU}</string> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{75.185180446902166, 71.851853395522255}, {56.47795071315111, 24.444438926962349}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>5</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 Cell}</string> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{69.629628399926148, 53.925924408419505}, {62.222221123338258, 14}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FitText</key> + <string>Vertical</string> + <key>Flow</key> + <string>Resize</string> + <key>ID</key> + <integer>4</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Pad</key> + <integer>0</integer> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs24 \cf0 Resources}</string> + <key>VerticalPad</key> + <integer>0</integer> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{64.666665489290935, 46.888888025480028}, {285.92592546805753, 57.777778625488281}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>ID</key> + <integer>1</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + </dict> + </array> + <key>GridInfo</key> + <dict/> + <key>HPages</key> + <integer>1</integer> + <key>KeepToScale</key> + <false/> + <key>Layers</key> + <array> + <dict> + <key>Lock</key> + <string>NO</string> + <key>Name</key> + <string>レイヤー 1</string> + <key>Print</key> + <string>YES</string> + <key>View</key> + <string>YES</string> + </dict> + </array> + <key>LayoutInfo</key> + <dict> + <key>Animate</key> + <string>NO</string> + <key>circoMinDist</key> + <real>18</real> + <key>circoSeparation</key> + <real>0.0</real> + <key>layoutEngine</key> + <string>dot</string> + <key>neatoSeparation</key> + <real>0.0</real> + <key>twopiSeparation</key> + <real>0.0</real> + </dict> + <key>Orientation</key> + <integer>2</integer> + <key>PrintOnePage</key> + <false/> + <key>RowAlign</key> + <integer>1</integer> + <key>RowSpacing</key> + <real>36</real> + <key>SheetTitle</key> + <string>キャンバス 23</string> + <key>UniqueID</key> + <integer>25</integer> + <key>VPages</key> + <integer>1</integer> + </dict> + <dict> + <key>ActiveLayerIndex</key> + <integer>0</integer> + <key>AutoAdjust</key> + <true/> + <key>BackgroundGraphic</key> + <dict> + <key>Bounds</key> + <string>{{0, 0}, {1117.9999465942383, 783}}</string> + <key>Class</key> + <string>SolidGraphic</string> + <key>ID</key> + <integer>2</integer> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + </dict> + <key>BaseZoom</key> + <integer>0</integer> + <key>CanvasOrigin</key> + <string>{0, 0}</string> + <key>ColumnAlign</key> + <integer>1</integer> + <key>ColumnSpacing</key> + <real>36</real> + <key>DisplayScale</key> + <string>1 0/72 in = 1.0000 in</string> + <key>GraphicsList</key> + <array> + <dict> + <key>Bounds</key> + <string>{{496.95308511623472, 523.33340681923926}, {66.0860595703125, 42.153620024593849}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FontInfo</key> + <dict> + <key>Font</key> + <string>Helvetica</string> + <key>Size</key> + <real>12</real> + </dict> + <key>ID</key> + <integer>91</integer> + <key>Magnets</key> + <array> + <string>{0, 1}</string> + <string>{0, -1}</string> + <string>{1, 0}</string> + <string>{-1, 0}</string> + <string>{1, 1}</string> + <string>{1, -1}</string> + <string>{-1, 1}</string> + <string>{-1, -1}</string> + </array> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs48 \cf0 CPU}</string> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{500.12163376514968, 448.35551807975861}, {144.65531914893614, 56.453257790368269}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FontInfo</key> + <dict> + <key>Font</key> + <string>Helvetica</string> + <key>Size</key> + <real>12</real> + </dict> + <key>ID</key> + <integer>90</integer> + <key>Magnets</key> + <array> + <string>{0, 1}</string> + <string>{0, -1}</string> + <string>{1, 0}</string> + <string>{-1, 0}</string> + <string>{1, 1}</string> + <string>{1, -1}</string> + <string>{-1, 1}</string> + <string>{-1, -1}</string> + </array> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs48 \cf0 Scheduler}</string> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{485.97056993536319, 437.54531977947596}, {144.65531914893614, 56.453257790368269}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FontInfo</key> + <dict> + <key>Font</key> + <string>Helvetica</string> + <key>Size</key> + <real>12</real> + </dict> + <key>ID</key> + <integer>89</integer> + <key>Magnets</key> + <array> + <string>{0, 1}</string> + <string>{0, -1}</string> + <string>{1, 0}</string> + <string>{-1, 0}</string> + <string>{1, 1}</string> + <string>{1, -1}</string> + <string>{-1, 1}</string> + <string>{-1, -1}</string> + </array> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs48 \cf0 Scheduler}</string> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{471.81950610557584, 426.73512147919206}, {144.65531914893614, 56.453257790368269}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FontInfo</key> + <dict> + <key>Font</key> + <string>Helvetica</string> + <key>Size</key> + <real>12</real> + </dict> + <key>ID</key> + <integer>88</integer> + <key>Magnets</key> + <array> + <string>{0, 1}</string> + <string>{0, -1}</string> + <string>{1, 0}</string> + <string>{-1, 0}</string> + <string>{1, 1}</string> + <string>{1, -1}</string> + <string>{-1, 1}</string> + <string>{-1, -1}</string> + </array> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs48 \cf0 Scheduler}</string> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>FontInfo</key> + <dict> + <key>Font</key> + <string>Helvetica</string> + <key>Size</key> + <real>12</real> + </dict> + <key>Head</key> + <dict> + <key>ID</key> + <integer>85</integer> + </dict> + <key>ID</key> + <integer>87</integer> + <key>Points</key> + <array> + <string>{529.99610185025688, 398.82563938830287}</string> + <string>{529.99610185025688, 415.92492317890918}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>0</string> + <key>Legacy</key> + <true/> + <key>TailArrow</key> + <string>0</string> + </dict> + </dict> + <key>Tail</key> + <dict> + <key>ID</key> + <integer>84</integer> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>FontInfo</key> + <dict> + <key>Font</key> + <string>Helvetica</string> + <key>Size</key> + <real>12</real> + </dict> + <key>Head</key> + <dict> + <key>ID</key> + <integer>84</integer> + <key>Info</key> + <integer>2</integer> + </dict> + <key>ID</key> + <integer>86</integer> + <key>Points</key> + <array> + <string>{439.66790870921221, 226.13121748991347}</string> + <string>{529.99610185025688, 341.87238158120221}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>0</string> + <key>Legacy</key> + <true/> + <key>TailArrow</key> + <string>0</string> + </dict> + </dict> + <key>Tail</key> + <dict> + <key>ID</key> + <integer>3</integer> + <key>Info</key> + <integer>1</integer> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{457.66844227578878, 415.92492317890918}, {144.65531914893614, 56.453257790368269}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FontInfo</key> + <dict> + <key>Font</key> + <string>Helvetica</string> + <key>Size</key> + <real>12</real> + </dict> + <key>ID</key> + <integer>85</integer> + <key>Magnets</key> + <array> + <string>{0, 1}</string> + <string>{0, -1}</string> + <string>{1, 0}</string> + <string>{-1, 0}</string> + <string>{1, 1}</string> + <string>{1, -1}</string> + <string>{-1, 1}</string> + <string>{-1, -1}</string> + </array> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs48 \cf0 Scheduler}</string> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{457.66844227578878, 341.87238158120221}, {144.65531914893614, 56.453257790368269}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FontInfo</key> + <dict> + <key>Font</key> + <string>Helvetica</string> + <key>Size</key> + <real>12</real> + </dict> + <key>ID</key> + <integer>84</integer> + <key>Magnets</key> + <array> + <string>{0, 1}</string> + <string>{0, -1}</string> + <string>{1, 0}</string> + <string>{-1, 0}</string> + <string>{1, 1}</string> + <string>{1, -1}</string> + <string>{-1, 1}</string> + <string>{-1, -1}</string> + </array> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs48 \cf0 CpuThreads}</string> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>FontInfo</key> + <dict> + <key>Font</key> + <string>Helvetica</string> + <key>Size</key> + <real>12</real> + </dict> + <key>Head</key> + <dict> + <key>ID</key> + <integer>91</integer> + </dict> + <key>ID</key> + <integer>83</integer> + <key>Points</key> + <array> + <string>{529.99611490139091, 472.87818095899161}</string> + <string>{529.99611490139091, 523.33340681923926}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>0</string> + <key>Legacy</key> + <true/> + <key>TailArrow</key> + <string>0</string> + </dict> + </dict> + <key>Tail</key> + <dict> + <key>ID</key> + <integer>85</integer> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{282.52900808223831, 523.33340681923926}, {66.0860595703125, 42.153620024593849}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FontInfo</key> + <dict> + <key>Font</key> + <string>Helvetica</string> + <key>Size</key> + <real>12</real> + </dict> + <key>ID</key> + <integer>73</integer> + <key>Magnets</key> + <array> + <string>{0, 1}</string> + <string>{0, -1}</string> + <string>{1, 0}</string> + <string>{-1, 0}</string> + <string>{1, 1}</string> + <string>{1, -1}</string> + <string>{-1, 1}</string> + <string>{-1, -1}</string> + </array> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs48 \cf0 CPU}</string> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>FontInfo</key> + <dict> + <key>Font</key> + <string>Helvetica</string> + <key>Size</key> + <real>12</real> + </dict> + <key>Head</key> + <dict> + <key>ID</key> + <integer>71</integer> + </dict> + <key>ID</key> + <integer>72</integer> + <key>Points</key> + <array> + <string>{749.35982182696557, 486.60164284443653}</string> + <string>{749.35984333356021, 523.33342096695287}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>0</string> + <key>Legacy</key> + <true/> + <key>TailArrow</key> + <string>0</string> + </dict> + </dict> + <key>Tail</key> + <dict> + <key>ID</key> + <integer>66</integer> + <key>Info</key> + <integer>1</integer> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{716.31681354840396, 523.33342096695287}, {66.0860595703125, 42.153620024593849}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FontInfo</key> + <dict> + <key>Font</key> + <string>Helvetica</string> + <key>Size</key> + <real>12</real> + </dict> + <key>ID</key> + <integer>71</integer> + <key>Magnets</key> + <array> + <string>{0, 1}</string> + <string>{0, -1}</string> + <string>{1, 0}</string> + <string>{-1, 0}</string> + <string>{1, 1}</string> + <string>{1, -1}</string> + <string>{-1, 1}</string> + <string>{-1, -1}</string> + </array> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs48 \cf0 GPU}</string> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>FontInfo</key> + <dict> + <key>Font</key> + <string>Helvetica</string> + <key>Size</key> + <real>12</real> + </dict> + <key>Head</key> + <dict> + <key>ID</key> + <integer>62</integer> + </dict> + <key>ID</key> + <integer>63</integer> + <key>Points</key> + <array> + <string>{122.55555298593305, 400.3256400956065}</string> + <string>{122.5555538336436, 430.51983577544144}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>0</string> + <key>Legacy</key> + <true/> + <key>TailArrow</key> + <string>0</string> + </dict> + </dict> + <key>Tail</key> + <dict> + <key>ID</key> + <integer>56</integer> + <key>Info</key> + <integer>1</integer> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>FontInfo</key> + <dict> + <key>Font</key> + <string>Helvetica</string> + <key>Size</key> + <real>12</real> + </dict> + <key>Head</key> + <dict> + <key>ID</key> + <integer>56</integer> + <key>Info</key> + <integer>2</integer> + </dict> + <key>ID</key> + <integer>57</integer> + <key>Points</key> + <array> + <string>{439.66790870921221, 226.13121748991347}</string> + <string>{122.55555298593305, 342.87237776650494}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>0</string> + <key>Legacy</key> + <true/> + <key>TailArrow</key> + <string>0</string> + </dict> + </dict> + <key>Tail</key> + <dict> + <key>ID</key> + <integer>3</integer> + <key>Info</key> + <integer>1</integer> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{43.333331611421443, 430.51983577544144}, {158.44444444444431, 48.883853912353487}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FontInfo</key> + <dict> + <key>Font</key> + <string>Helvetica</string> + <key>Size</key> + <real>12</real> + </dict> + <key>ID</key> + <integer>62</integer> + <key>Magnets</key> + <array> + <string>{0, 1}</string> + <string>{0, -1}</string> + <string>{1, 0}</string> + <string>{-1, 0}</string> + <string>{1, 1}</string> + <string>{1, -1}</string> + <string>{-1, 1}</string> + <string>{-1, -1}</string> + </array> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs48 \cf0 FifoScheduler}</string> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{47.555552985933048, 342.87237776650494}, {150, 57.453262329101562}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FontInfo</key> + <dict> + <key>Font</key> + <string>Helvetica</string> + <key>Size</key> + <real>12</real> + </dict> + <key>ID</key> + <integer>56</integer> + <key>Magnets</key> + <array> + <string>{0, 1}</string> + <string>{0, -1}</string> + <string>{1, 0}</string> + <string>{-1, 0}</string> + <string>{1, 1}</string> + <string>{1, -1}</string> + <string>{-1, 1}</string> + <string>{-1, -1}</string> + </array> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs48 \cf0 FifoManager}</string> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{169.66525715372563, 169.28135913297294}, {166.66808510638282, 34.832861189801683}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FontInfo</key> + <dict> + <key>Font</key> + <string>Helvetica</string> + <key>Size</key> + <real>12</real> + </dict> + <key>ID</key> + <integer>48</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Pad</key> + <integer>0</integer> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs48 \cf0 2:spawn()}</string> + <key>VerticalPad</key> + <integer>0</integer> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{158.33333161142099, 150.66662825478599}, {231.1340425531917, 34.832861189801683}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FontInfo</key> + <dict> + <key>Font</key> + <string>Helvetica</string> + <key>Size</key> + <real>12</real> + </dict> + <key>ID</key> + <integer>47</integer> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>fill</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Pad</key> + <integer>0</integer> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs48 \cf0 1:createtask()}</string> + <key>VerticalPad</key> + <integer>0</integer> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>FontInfo</key> + <dict> + <key>Font</key> + <string>Helvetica</string> + <key>Size</key> + <real>12</real> + </dict> + <key>ID</key> + <integer>46</integer> + <key>Points</key> + <array> + <string>{267.31523650566163, 217.72328547858194}</string> + <string>{330.35991735672542, 189.09722315563587}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>FilledArrow</string> + <key>Legacy</key> + <true/> + <key>TailArrow</key> + <string>0</string> + </dict> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>FontInfo</key> + <dict> + <key>Font</key> + <string>Helvetica</string> + <key>Size</key> + <real>12</real> + </dict> + <key>ID</key> + <integer>31</integer> + <key>Points</key> + <array> + <string>{269.17693863332096, 231.13121748991355}</string> + <string>{338.22161948438463, 197.5051551669674}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>FilledArrow</string> + <key>Legacy</key> + <true/> + <key>TailArrow</key> + <string>0</string> + </dict> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>FontInfo</key> + <dict> + <key>Font</key> + <string>Helvetica</string> + <key>Size</key> + <real>12</real> + </dict> + <key>Head</key> + <dict> + <key>ID</key> + <integer>66</integer> + </dict> + <key>ID</key> + <integer>67</integer> + <key>Points</key> + <array> + <string>{749.56480347890249, 400.98600924461738}</string> + <string>{749.35982182696557, 437.71778511738574}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>0</string> + <key>Legacy</key> + <true/> + <key>TailArrow</key> + <string>0</string> + </dict> + </dict> + <key>Tail</key> + <dict> + <key>ID</key> + <integer>60</integer> + <key>Info</key> + <integer>1</integer> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>FontInfo</key> + <dict> + <key>Font</key> + <string>Helvetica</string> + <key>Size</key> + <real>12</real> + </dict> + <key>Head</key> + <dict> + <key>ID</key> + <integer>64</integer> + </dict> + <key>ID</key> + <integer>65</integer> + <key>Points</key> + <array> + <string>{315.57204007504924, 399.82563931014363}</string> + <string>{315.57204007504924, 430.51983284687793}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>0</string> + <key>Legacy</key> + <true/> + <key>TailArrow</key> + <string>0</string> + </dict> + </dict> + <key>Tail</key> + <dict> + <key>ID</key> + <integer>58</integer> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>FontInfo</key> + <dict> + <key>Font</key> + <string>Helvetica</string> + <key>Size</key> + <real>12</real> + </dict> + <key>Head</key> + <dict> + <key>ID</key> + <integer>60</integer> + <key>Info</key> + <integer>2</integer> + </dict> + <key>ID</key> + <integer>61</integer> + <key>Points</key> + <array> + <string>{439.66790870921221, 226.13121748991347}</string> + <string>{749.09773309542913, 344.35429903731324}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>0</string> + <key>Legacy</key> + <true/> + <key>TailArrow</key> + <string>0</string> + </dict> + </dict> + <key>Tail</key> + <dict> + <key>ID</key> + <integer>57</integer> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>FontInfo</key> + <dict> + <key>Font</key> + <string>Helvetica</string> + <key>Size</key> + <real>12</real> + </dict> + <key>Head</key> + <dict> + <key>ID</key> + <integer>58</integer> + <key>Info</key> + <integer>2</integer> + </dict> + <key>ID</key> + <integer>59</integer> + <key>Points</key> + <array> + <string>{439.30226108693046, 226.47224803279849}</string> + <string>{315.57204007504924, 341.87238158120221}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>0</string> + <key>g</key> + <string>0</string> + <key>r</key> + <string>1</string> + </dict> + <key>HeadArrow</key> + <string>0</string> + <key>Legacy</key> + <true/> + <key>TailArrow</key> + <string>0</string> + <key>Width</key> + <real>2</real> + </dict> + </dict> + <key>Tail</key> + <dict> + <key>ID</key> + <integer>3</integer> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>FontInfo</key> + <dict> + <key>Font</key> + <string>Helvetica</string> + <key>Size</key> + <real>12</real> + </dict> + <key>Head</key> + <dict> + <key>ID</key> + <integer>5</integer> + <key>Info</key> + <integer>4</integer> + </dict> + <key>ID</key> + <integer>41</integer> + <key>Points</key> + <array> + <string>{519.33333687083348, 197.90458859472932}</string> + <string>{573.57904783625304, 253.16521228887061}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>0</string> + <key>Legacy</key> + <true/> + <key>TailArrow</key> + <string>0</string> + </dict> + </dict> + <key>Tail</key> + <dict> + <key>ID</key> + <integer>3</integer> + <key>Info</key> + <integer>3</integer> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>FontInfo</key> + <dict> + <key>Font</key> + <string>Helvetica</string> + <key>Size</key> + <real>12</real> + </dict> + <key>Head</key> + <dict> + <key>ID</key> + <integer>4</integer> + <key>Info</key> + <integer>4</integer> + </dict> + <key>ID</key> + <integer>40</integer> + <key>Points</key> + <array> + <string>{519.33333687083348, 197.90458859472932}</string> + <string>{573.57904783625327, 197.90459047506155}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>0</string> + <key>Legacy</key> + <true/> + <key>TailArrow</key> + <string>0</string> + </dict> + </dict> + <key>Tail</key> + <dict> + <key>ID</key> + <integer>3</integer> + <key>Info</key> + <integer>3</integer> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>FontInfo</key> + <dict> + <key>Font</key> + <string>Helvetica</string> + <key>Size</key> + <real>12</real> + </dict> + <key>Head</key> + <dict> + <key>ID</key> + <integer>3</integer> + <key>Info</key> + <integer>4</integer> + </dict> + <key>ID</key> + <integer>39</integer> + <key>Points</key> + <array> + <string>{248.12056565397415, 254.35784638509779}</string> + <string>{360.00248054759112, 197.90458859472932}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>0</string> + <key>Legacy</key> + <true/> + <key>TailArrow</key> + <string>0</string> + </dict> + </dict> + <key>Tail</key> + <dict> + <key>ID</key> + <integer>1</integer> + <key>Info</key> + <integer>3</integer> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{666.02577927377422, 437.71778511738574}, {166.66808510638282, 48.883857727050781}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FontInfo</key> + <dict> + <key>Font</key> + <string>Helvetica</string> + <key>Size</key> + <real>12</real> + </dict> + <key>ID</key> + <integer>66</integer> + <key>Magnets</key> + <array> + <string>{0, 1}</string> + <string>{0, -1}</string> + <string>{1, 0}</string> + <string>{-1, 0}</string> + <string>{1, 1}</string> + <string>{1, -1}</string> + <string>{-1, 1}</string> + <string>{-1, -1}</string> + </array> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs48 \cf0 GpuScheduler}</string> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{243.2443805005812, 430.51983284687793}, {144.65531914893614, 52.668544769287109}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FontInfo</key> + <dict> + <key>Font</key> + <string>Helvetica</string> + <key>Size</key> + <real>12</real> + </dict> + <key>ID</key> + <integer>64</integer> + <key>Magnets</key> + <array> + <string>{0, 1}</string> + <string>{0, -1}</string> + <string>{1, 0}</string> + <string>{-1, 0}</string> + <string>{1, 1}</string> + <string>{1, -1}</string> + <string>{-1, 1}</string> + <string>{-1, -1}</string> + </array> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs48 \cf0 Scheduler}</string> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{677.23714390443445, 344.53275145424908}, {144.65531914893614, 56.453257790368269}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FontInfo</key> + <dict> + <key>Font</key> + <string>Helvetica</string> + <key>Size</key> + <real>12</real> + </dict> + <key>ID</key> + <integer>60</integer> + <key>Magnets</key> + <array> + <string>{0, 1}</string> + <string>{0, -1}</string> + <string>{1, 0}</string> + <string>{-1, 0}</string> + <string>{1, 1}</string> + <string>{1, -1}</string> + <string>{-1, 1}</string> + <string>{-1, -1}</string> + </array> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs48 \cf0 GpuThreads}</string> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{243.2443805005812, 341.87238158120221}, {144.65531914893614, 56.453257790368269}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FontInfo</key> + <dict> + <key>Font</key> + <string>Helvetica</string> + <key>Size</key> + <real>12</real> + </dict> + <key>ID</key> + <integer>58</integer> + <key>Magnets</key> + <array> + <string>{0, 1}</string> + <string>{0, -1}</string> + <string>{1, 0}</string> + <string>{-1, 0}</string> + <string>{1, 1}</string> + <string>{1, -1}</string> + <string>{-1, 1}</string> + <string>{-1, -1}</string> + </array> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Color</key> + <dict> + <key>b</key> + <string>0</string> + <key>g</key> + <string>0</string> + <key>r</key> + <string>1</string> + </dict> + <key>Width</key> + <real>3</real> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs48 \cf0 IO Threads}</string> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{573.57904783625315, 231.544815688304}, {166.66808510638288, 43.240793201133194}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FontInfo</key> + <dict> + <key>Font</key> + <string>Helvetica</string> + <key>Size</key> + <real>12</real> + </dict> + <key>ID</key> + <integer>5</integer> + <key>Magnets</key> + <array> + <string>{0, 1}</string> + <string>{0, -1}</string> + <string>{1, 0}</string> + <string>{-1, 0}</string> + <string>{1, 1}</string> + <string>{1, -1}</string> + <string>{-1, 1}</string> + <string>{-1, -1}</string> + </array> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs48 \cf0 WaitTaskList}</string> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{573.57904783625315, 176.28419387449495}, {166.66808510638288, 43.240793201133194}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FontInfo</key> + <dict> + <key>Font</key> + <string>Helvetica</string> + <key>Size</key> + <real>12</real> + </dict> + <key>ID</key> + <integer>4</integer> + <key>Magnets</key> + <array> + <string>{0, 1}</string> + <string>{0, -1}</string> + <string>{1, 0}</string> + <string>{-1, 0}</string> + <string>{1, 1}</string> + <string>{1, -1}</string> + <string>{-1, 1}</string> + <string>{-1, -1}</string> + </array> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;\f1\fnil\fcharset128 HiraKakuProN-W3;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs48 \cf0 Ac +\f1 t +\f0 iveTaskList}</string> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{360.00248054759112, 169.6779596995452}, {159.33085632324219, 56.453257790368269}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FontInfo</key> + <dict> + <key>Font</key> + <string>Helvetica</string> + <key>Size</key> + <real>12</real> + </dict> + <key>ID</key> + <integer>3</integer> + <key>Magnets</key> + <array> + <string>{0, 1}</string> + <string>{0, -1}</string> + <string>{1, 0}</string> + <string>{-1, 0}</string> + <string>{1, 1}</string> + <string>{1, -1}</string> + <string>{-1, 1}</string> + <string>{-1, -1}</string> + </array> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs48 \cf0 TaskManager}</string> + </dict> + </dict> + <dict> + <key>Bounds</key> + <string>{{122.33333161142099, 226.13121748991367}, {125.78723404255315, 56.453257790368269}}</string> + <key>Class</key> + <string>ShapedGraphic</string> + <key>FontInfo</key> + <dict> + <key>Font</key> + <string>Helvetica</string> + <key>Size</key> + <real>12</real> + </dict> + <key>ID</key> + <integer>1</integer> + <key>Magnets</key> + <array> + <string>{0, 1}</string> + <string>{0, -1}</string> + <string>{1, 0}</string> + <string>{-1, 0}</string> + <string>{1, 1}</string> + <string>{1, -1}</string> + <string>{-1, 1}</string> + <string>{-1, -1}</string> + </array> + <key>Shape</key> + <string>Rectangle</string> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + <key>Text</key> + <dict> + <key>Text</key> + <string>{\rtf1\ansi\ansicpg932\cocoartf1265 +\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc + +\f0\fs48 \cf0 User Task}</string> + </dict> + </dict> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>FontInfo</key> + <dict> + <key>Font</key> + <string>Helvetica</string> + <key>Size</key> + <real>12</real> + </dict> + <key>Head</key> + <dict> + <key>ID</key> + <integer>73</integer> + </dict> + <key>ID</key> + <integer>74</integer> + <key>Points</key> + <array> + <string>{315.57204007504924, 483.1883776161651}</string> + <string>{315.57203786739456, 523.33340681923926}</string> + </array> + <key>Style</key> + <dict> + <key>stroke</key> + <dict> + <key>HeadArrow</key> + <string>0</string> + <key>Legacy</key> + <true/> + <key>TailArrow</key> + <string>0</string> + </dict> + </dict> + <key>Tail</key> + <dict> + <key>ID</key> + <integer>64</integer> + </dict> + </dict> + </array> + <key>GridInfo</key> + <dict/> + <key>HPages</key> + <integer>2</integer> + <key>KeepToScale</key> + <false/> + <key>Layers</key> + <array> + <dict> + <key>Lock</key> + <string>NO</string> + <key>Name</key> + <string>レイヤー 1</string> + <key>Print</key> + <string>YES</string> + <key>View</key> + <string>YES</string> + </dict> + </array> + <key>LayoutInfo</key> + <dict> + <key>Animate</key> + <string>NO</string> + <key>circoMinDist</key> + <real>18</real> + <key>circoSeparation</key> + <real>0.0</real> + <key>layoutEngine</key> + <string>dot</string> + <key>neatoSeparation</key> + <real>0.0</real> + <key>twopiSeparation</key> + <real>0.0</real> + </dict> + <key>Orientation</key> + <integer>2</integer> + <key>PrintOnePage</key> + <false/> + <key>RowAlign</key> + <integer>1</integer> + <key>RowSpacing</key> + <real>36</real> + <key>SheetTitle</key> + <string>キャンバス 24</string> + <key>UniqueID</key> + <integer>26</integer> + <key>VPages</key> + <integer>1</integer> + </dict> + <dict> + <key>ActiveLayerIndex</key> + <integer>0</integer> + <key>AutoAdjust</key> + <true/> + <key>BackgroundGraphic</key> + <dict> + <key>Bounds</key> + <string>{{0, 0}, {558.99997329711914, 783}}</string> + <key>Class</key> + <string>SolidGraphic</string> + <key>ID</key> + <integer>2</integer> + <key>Style</key> + <dict> + <key>shadow</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + <key>stroke</key> + <dict> + <key>Draws</key> + <string>NO</string> + </dict> + </dict> + </dict> + <key>BaseZoom</key> + <integer>0</integer> + <key>CanvasOrigin</key> + <string>{0, 0}</string> + <key>ColumnAlign</key> + <integer>1</integer> + <key>ColumnSpacing</key> + <real>36</real> + <key>DisplayScale</key> + <string>1 0/72 in = 1.0000 in</string> + <key>GraphicsList</key> + <array> + <dict> + <key>Class</key> + <string>LineGraphic</string> + <key>Head</key> + <dict> + <key>ID</key> <integer>8</integer> </dict> <key>ID</key> @@ -39307,8 +41470,8 @@ <integer>51</integer> <key>Points</key> <array> - <string>{121.35419690447667, 177.313627049985}</string> - <string>{123.14535318667582, 203.20489465062303}</string> + <string>{121.35419460694261, 177.31362705067815}</string> + <string>{123.14534691074978, 203.20489468729605}</string> </array> <key>Style</key> <dict> @@ -39405,8 +41568,8 @@ <integer>48</integer> <key>Points</key> <array> - <string>{124.30637353461616, 233.09257366832279}</string> - <string>{124.55962647283349, 262.8333406015845}</string> + <string>{124.30637349961843, 233.09257366832279}</string> + <string>{124.55962636818707, 262.8333406015845}</string> </array> <key>Style</key> <dict> @@ -39552,8 +41715,8 @@ <integer>40</integer> <key>Points</key> <array> - <string>{403.59396363602571, 292.35182848870994}</string> - <string>{403.6446716642937, 316.72218908966272}</string> + <string>{403.59398321789575, 292.35182848870966}</string> + <string>{403.64472317891733, 316.72218908964658}</string> </array> <key>Style</key> <dict> @@ -39734,8 +41897,8 @@ <integer>30</integer> <key>Points</key> <array> - <string>{403.56288853323679, 233.46295594362397}</string> - <string>{403.56292769396885, 262.46294025487464}</string> + <string>{403.56287521561268, 233.46295594362397}</string> + <string>{403.56287521561268, 262.46294025487464}</string> </array> <key>Style</key> <dict> @@ -39860,8 +42023,8 @@ <integer>26</integer> <key>Points</key> <array> - <string>{322.4174582106013, 218.29040313965595}</string> - <string>{352.95783888363394, 218.37625531686001}</string> + <string>{322.4174582106013, 218.29040313779441}</string> + <string>{352.95783888363394, 218.37625531387505}</string> </array> <key>Style</key> <dict> @@ -39979,8 +42142,8 @@ <integer>15</integer> <key>Points</key> <array> - <string>{221.22318776784829, 136.3985670559714}</string> - <string>{167.05098451030736, 150.34218939749883}</string> + <string>{221.22318776784829, 136.39856705597245}</string> + <string>{167.05098451030736, 150.34218939750116}</string> </array> <key>Style</key> <dict> @@ -40014,8 +42177,8 @@ <integer>14</integer> <key>Points</key> <array> - <string>{360.6778899855093, 149.63755189528572}</string> - <string>{314.68250063891441, 137.10456144123449}</string> + <string>{360.67789088236265, 149.6372122094283}</string> + <string>{314.68250239440016, 137.10388739400713}</string> </array> <key>Style</key> <dict> @@ -40586,8 +42749,8 @@ <integer>40</integer> <key>Points</key> <array> - <string>{403.5939860473419, 292.35182848870966}</string> - <string>{403.64473062242774, 316.72218908964658}</string> + <string>{403.5939864561775, 292.35182848870966}</string> + <string>{403.644731697964, 316.72218908964658}</string> </array> <key>Style</key> <dict> @@ -40894,8 +43057,8 @@ <integer>26</integer> <key>Points</key> <array> - <string>{322.4174582106013, 218.29040313707046}</string> - <string>{352.95783888363394, 218.37625531271416}</string> + <string>{322.4174582106013, 218.29040313678888}</string> + <string>{352.95783888363394, 218.37625531226266}</string> </array> <key>Style</key> <dict> @@ -41013,8 +43176,8 @@ <integer>15</integer> <key>Points</key> <array> - <string>{221.22318776784829, 136.39856705597271}</string> - <string>{167.05098451030736, 150.34218939750167}</string> + <string>{221.22318776784829, 136.39856705597273}</string> + <string>{167.05098451030736, 150.34218939750178}</string> </array> <key>Style</key> <dict> @@ -41048,8 +43211,8 @@ <integer>14</integer> <key>Points</key> <array> - <string>{360.67789111602877, 149.63712594094957}</string> - <string>{314.68250282392256, 137.10371620165293}</string> + <string>{360.6778911554448, 149.63710402589672}</string> + <string>{314.68250294095174, 137.10367272606146}</string> </array> <key>Style</key> <dict> @@ -41544,11 +43707,11 @@ <key>WindowInfo</key> <dict> <key>CurrentSheet</key> - <integer>19</integer> + <integer>6</integer> <key>ExpandedCanvases</key> <array/> <key>Frame</key> - <string>{{1499, 1365}, {1184, 874}}</string> + <string>{{1535, 1133}, {952, 850}}</string> <key>ListView</key> <true/> <key>OutlineWidth</key> @@ -41562,9 +43725,9 @@ <key>SidebarWidth</key> <integer>120</integer> <key>VisibleRegion</key> - <string>{{-108.99999999999999, 0}, {777.03702331406942, 544.44443482920974}}</string> + <string>{{-28, 0}, {614.28569446444953, 534.58644891581844}}</string> <key>Zoom</key> - <real>1.3500000238418579</real> + <real>1.3300000429153442</real> <key>ZoomValues</key> <array> <array> @@ -41677,6 +43840,16 @@ <real>1.3500000238418579</real> <real>1</real> </array> + <array> + <string>キャンバス 23</string> + <real>1.3500000238418579</real> + <real>1</real> + </array> + <array> + <string>キャンバス 24</string> + <real>0.60000002384185791</real> + <real>0.62999999523162842</real> + </array> </array> </dict> </dict>
--- a/paper/thanks.tex Wed Feb 26 04:15:25 2014 +0900 +++ b/paper/thanks.tex Wed Feb 26 19:24:11 2014 +0900 @@ -6,18 +6,15 @@ %GISゼミや英語ゼミに参加した人はその分も入れておく. %順番は重要なので気を付けるように.(提出前に周りの人に確認してもらう.) -\hspace{1zw}本研究の遂行,また本論文の作成にあたり、御多忙にも関わらず終始懇切なる御指導と御教授を賜わりましたhoge助教授に深く感謝したします。 - -また、本研究の遂行及び本論文の作成にあたり、日頃より終始懇切なる御教授と御指導を賜わりましたhoge教授に心より深く感謝致します。 +\hspace{1zw}本研究の遂行,また本論文の作成にあたり、御多忙にも関わらず終始懇切なる御指導と御教授を賜わりました河野准教授に深く感謝したします。 -数々の貴重な御助言と細かな御配慮を戴いたhoge研究室のhoge氏に深く感謝致します。 -また一年間共に研究を行い、暖かな気遣いと励ましをもって支えてくれたhoge研究室のhoge君、hoge君、hogeさん並びにhoge研究室のhoge、hoge君、hoge君、hoge君、hoge君に感謝致します。 +一年間共に研究を行い、ご指導や暖かな気遣いと励ましをもって支えてくれた河野研究室の大城氏、當間氏、谷成氏、渡真利氏、杉本氏、平良氏、小久保、徳森君の皆様に感謝しています。 最後に、有意義な時間を共に過ごした情報工学科の学友、並びに物心両面で支えてくれた両親に深く感謝致します。 \begin{flushright} - 2010年 3月 \\ hoge + 2014年 2月 \\ 古波倉 正隆 \end{flushright}
--- a/slide/index.html Wed Feb 26 04:15:25 2014 +0900 +++ b/slide/index.html Wed Feb 26 19:24:11 2014 +0900 @@ -24,53 +24,61 @@ --> <article > <h1>Cerium による並列処理向け I/O の設計と実装</h1> - <h3 class="title">Masataka Kohagura 12th, February</h3> + <h3 class="title">Masataka Kohagura 27th, February</h3> <div align="right">担当教官 : 河野 真治</div> </article> <article> - <h3>研究背景と目的</h3> + <h3>研究概要</h3> + <p> + 当研究室ではCellおよびLinux、 Mac OS X上で動く並列プログラミングフレームワーク、 Ceriumの開発・改良を行っている + </p> + <img src='images/resources.png' style="height:200px" align="middle"> <p> - 近年のCPUのほとんどはマルチコアであり、それらの性能を引き出すためには並列プログラミングが必須となっている。 - そこで当研究室では、並列プログラミング用フレームワーク、Cerium 及び Cerium Task Manager の開発を行い、提供することによって並列プログラミングを容易にしている。 + 本研究では + <font color=red> + <ul> + <li>ファイル読み込みと文字列検索の分離 + </li> + <li>I/O専用の Threadを追加 + </li> + </ul> + </font> </p> <p> - 先行研究では Task の並列化によって、プログラム全体の処理速度は向上している。しかし、ファイル読み込み等の I/O処理 と Task が並列に動作するようにはされていない。 + I/0 を含む Task の動作改善を行った </p> - <p> - 本研究では I/O処理 と Task が並列に動作するような設計、実装によってプログラム全体の並列度、及び処理速度を上げていく。 - </p> + + </article> - <article> - <h3>Cerium Task Manager について</h3> - <ul> - <li> - 当研究室で開発している並列プログラミングフレームワーク。 - </li> - <li> - PS3 に搭載されている Cell 向けに開発を行っていた。近年では、Mac OS X、Linux でも使用ができるように改良された。 - </li> - </ul> - </article> - <article> - <h3>並列処理向け I/O の 設計と実装</h3> - <br> - <ul> - <li>I/O を含む Task の説明</li> - <li>mmap の説明</li> - <li>Blocked Read の設計と実装</li> - <li>IO専用 therad の追加</li> - <li>ベンチマーク</li> - </ul> + <h3>Cerium Task Manager</h3> + <table border="0" cellpadding="0" cellspacing="0"> + <tbody> + <tr> + <td><img src='images/ceriumtaskmanager.png' style="height:280px"></td> + <td> + <ol> + <li>Taskを生成</li> + <li>依存関係のチェック</li> + <li>Schedulerに転送</li> + <li>並列実行</li> + </ol> + </td> + </tr> + </tbody> + </table> + <p> + I/O 専用の Thread を用意することにより、読み込みに専念させることができる + </p> </article> <article> <h3>I/O を含む Task の説明</h3> <br> - <img src='images/includeIOTask.png' style="height:250px" align="middle"> + <img src='images/includeIOTask.png' style="height:270px" align="middle"> <ol> <li>テキストファイルの読み込み後、ファイルをある一定の大きさに分割する</li> <li>分割したテキストファイルに対して、それぞれ計算を行う</li> @@ -112,7 +120,9 @@ </li> <li> ファイルがメモリに展開されるタイミングは、そのファイルに対して文字列検索を行うときである。<br><br> + <font color=red> →つまり、文字列検索が行われるときに初めてメモリにファイルが格納されるので、ファイル読み込みと文字列検索が分離できない。 + </font> </li> </ul> </article> @@ -129,10 +139,10 @@ メモリへの呼び出しを自分で書ける(制御できる) </li> </ul> - 以後、ファイルに対して文字列検索を行う処理を Task と定義する。 + 以後、文字列検索を行う処理を Task と定義する。 </article> - <article class='smaller'> + <article> <h3>Blocked Read の実装</h3> <br> <img src='images/blockread.png' style="height:250px"align="middle"> @@ -140,21 +150,16 @@ <ul> <li> - Task を 1 つずつ生成するのではなく、ブロック単位で生成する。<br> - この図では、1 Block 当たり n 個の Task を生成する。<br> + Task を 1 つずつ生成するのではなく、ブロック単位で生成して起動する<br> (1つずつ生成すると、生成された Task でメモリを圧迫するため) </li> <li> - Task 1つ当たりの読み込む領域を L とする。<br> - Blocked Read Task 1つ当たり、メモリに格納する大きさは L × n となる。 - </li> - <li> - Blocked Read Task が読み込み終わるまで、Task Block に wait を掛ける。<br> - (Read Task がファイルをメモリに格納する前に走ると、まだ格納していない領域を読みこんでしまう。) + Blocked Read Task が読み込み終わるまで、Task Blockを待たせる<br> </li> </ul> </article> +<!-- <article class = 'smaller'> <h3>I/O 専用の therad を追加 (1/2)</h3> <br> @@ -171,24 +176,22 @@ </li> </ul> </article> +--> - <article class='smaller'> - <h3>I/O 専用の therad を追加 (2/2)</h3> + <article> + <h3>I/O 専用の therad を追加</h3> <br> <img src='images/IO_0blockread.png' style="height:350px"> <ul> - <li>IO_0 という I/O 専用の Thread を追加した。</li> <li>Blocked Read Task が最優先されるので、他の Task に割り込まれなくなる<br> - これにより、Blocked Read Task が連続で動作する。 </li> </ul> </article> <article> - <h3>ベンチマーク(1/2)</h3> + <h3>実験環境</h3> <br> - <h3 class="yellow">実験環境</h3> <ul> <li> Mac OS X 10.9.1</li> <li> 2*2.66 GHz 6-Core Intel Xeon</li> @@ -200,71 +203,51 @@ </ul> </article> - <article class = 'smaller'> - <h3>ベンチマーク(2/2)</h3> - <ul> - <li> - ファイルがキャッシュに残っていない状態での測定 - </li> - <li> - one task size 128KByte - </li> - <li> - Task Blocks 48 - </li> - <li> - CPU num 12 - </li> - </ul> - <br> - <h3 class="yellow">結果</h3> + <article> + <h3>実験結果</h3> <table border="0" cellpadding="0" cellspacing="0"> <tbody> <tr> <td>read mode</td> + <td>CPU num</td> <td>ave time(s)</td> </tr> <tr> <td>mmap</td> - <td>154.6</td> + <td>2</td> + <td>106.2</td> + </tr> + <tr> + <td bgcolor="#ffffcc">mmap</td> + <td bgcolor="#ffffcc">12</td> + <td bgcolor="#ffffcc">154.6</td> </tr> <tr> <td>一括Read</td> + <td>12</td> <td>114.9</td> </tr> <tr> - <td>Blocked Read & SPE_ANY</td> + <td>Blocked Read(SPE_ANY)</td> + <td>12</td> <td>106.0</td> </tr> <tr> - <td>Blocked Read & IO_0</td> - <td>99.2</td> - </tr> - <tr> - <td>[参考] mmap (CPU num:2)</td> - <td>106.2</td> + <td bgcolor="#ffffcc">Blocked Read(IO_0)</td> + <td bgcolor="#ffffcc">(I/0) 1 + (Task) 11</td> + <td bgcolor="#ffffcc">99.2</td> </tr> </tbody> </table> - </article> - - - <article> - <h3>考察</h3> - <br> <ul> <li> - 実験結果から、mmap より、Blocked Read & IO_0 の実行速度が36%改善された。<br> + Blocked Read & IO_0 が mmap より<font color=red>1.55倍</font>実行速度が向上した。<br> </li> <li> - mmap では 1つ1つの Task がファイルの読み込みを行うが、Blocked Read だと複数 Task 分のファイルを読み込んでいるので、メモリへの呼び出し回数が少ない Blocked Read のほうが速くなったと考えられる。 - </li> - <li> - I/Oを含む並列処理を mmap で実装すると遅くなるので、このような例題の場合は Blocked Read で読み込む必要がある。 + mmap では 1つ1つの Task がファイルの読み込みを行ってしまうため、読み込み回数が多くなり実行速度が遅くなったと考えられる。 </li> </ul> - </article> <article>