Mercurial > hg > Papers > 2018 > parusu-master
diff slide/slide.html @ 101:cf36d04d11e7
Fix
author | Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 13 Feb 2018 11:04:20 +0900 |
parents | d340d73e3cd6 |
children | c48b78793176 |
line wrap: on
line diff
--- a/slide/slide.html Tue Feb 13 05:51:03 2018 +0900 +++ b/slide/slide.html Tue Feb 13 11:04:20 2018 +0900 @@ -87,7 +87,7 @@ <!-- === begin markdown block === generated by markdown/1.2.0 on Ruby 2.3.0 (2015-12-25) [x86_64-darwin16] - on 2018-02-13 05:49:42 +0900 with Markdown engine kramdown (1.13.2) + on 2018-02-13 11:03:08 +0900 with Markdown engine kramdown (1.13.2) using options {} --> @@ -125,7 +125,7 @@ <!-- _S9SLIDE_ --> <h2 id="gears-os-1">Gears OS</h2> <ul> - <li>本研究ではGears OS の並列処理機構、並列処理構文(par goto)の実装、Gears OS を実装するにつれて必要なったモジュール化の導入を行う</li> + <li>本研究では Gears OS の並列処理機構、並列処理構文(par goto)の実装、Gears OS を実装するにつれて必要なったモジュール化の導入を行う</li> <li>また、並列処理を行う例題を用いて評価、 OpenMP、 Go 言語との比較を行う</li> </ul> @@ -139,7 +139,7 @@ <li>Code Gear はプログラムの処理そのものを表す</li> <li>Data Gear はデータそのものを表す</li> <li>Code Gear は必要な Input Data Gear が揃ったら実行し、Output Data Gear を生成する</li> - <li>Code Gear と Input / Output Data Gear の対応から依存関係を解決し、Input Data Gear が揃った Code Gear の並列実行を行う</li> + <li>Code Gear と Input/Output Data Gear の対応から依存関係を解決し、Input Data Gear が揃った Code Gear の並列実行を行う</li> </ul> <div style="text-align: center;"> @@ -262,7 +262,7 @@ <li>Data Gear の型情報</li> </ul> </li> - <li>Gears OS ではメタ計算で Context を経由して Code/Data Gear にアクセスする</li> + <li>Gears OS ではメタ計算で Context を経由して Code/Data Gear に番号でアクセスする</li> </ul> @@ -273,7 +273,7 @@ <ul> <li>Data Gear にアクセスするには Context から番号を指定して行う</li> <li>だが、通常の Code Gear では Meta Data Gear である Context の参照は避ける必要がある</li> - <li>Gears OS ではメタレベルで通常の Code Gear で必要な Data Gear を Context から取り出す処理を行う stub Code Gear を用意している</li> + <li>Gears OS では Code Gear に接続する Data Gear を メタレベルである Context から取り出す処理を行う stub Code Gear を用意している</li> </ul> <div style="text-align: center;"> @@ -306,11 +306,8 @@ <li>操作(API)自体のCode Gear の型</li> </ul> </li> - <li><strong>__code next(…)</strong> は一種のクロージャであり、 引数で Code Gear を渡すことが出来る - <ul> - <li>… は可変長引数のような扱いで、Code Gear が複数の値をInput Data Gear とする可能性がある</li> - </ul> - </li> + <li><strong>__code next(…)</strong> は一種のクロージャであり、 引数で Code Gear を渡すことが出来る</li> + <li>… は可変長引数のような扱いで、Code Gear が複数の値をInput Data Gear とする可能性がある</li> </ul> <pre lang="c"><code>typedef struct Queue<Impl>{ @@ -361,7 +358,7 @@ <h2 id="interface--code-gear-">Interface を利用した Code Gear の呼び出し</h2> <ul> <li>Interface を利用した Code Gear への継続は <code>goto interface->method</code> で行われる</li> - <li>ここでの <strong>interface</strong> は Interfaceの型で包んだData Gear、 <strong>method</strong> は実装した Code Gear に対応する</li> + <li><strong>interface</strong> は Interfaceの型で包んだData Gear、 <strong>method</strong> は実装した Code Gear に対応する</li> </ul> <pre lang="c"><code>__code code1() { @@ -409,14 +406,10 @@ <li>Interface を実装した Code Gear は Interface の定義から stub Code Gear の自動生成が可能</li> </ul> -<pre lang="c"><code>__code putSingleLinkedQueue(struct Context *context,struct SingleLinkedQueue* queue, +<pre lang="c"><code>// implement put code gear +__code putSingleLinkedQueue(struct Context *context,struct SingleLinkedQueue* queue, union Data* data, enum Code next) { - Element* element = &ALLOCATE(context, Element)->Element; - element->data = data; - element->next = NULL; - queue->last->next = element; - queue->last = element; - goto meta(context, next); + ... } // generated by script @@ -456,7 +449,7 @@ </li> </ul> </li> - <li>をInterface で実装した</li> + <li>をInterface を用いて実装した</li> </ul> @@ -600,6 +593,7 @@ <li>Gears OS は Task はOutput Data Gear を書き出す処理で終了するため<strong>__exit</strong> に直接継続せずに Data Gear を書き出す処理に継続する</li> </ul> </li> + <li>par goto 構文は通常のプログラミングの関数呼び出しのように扱える</li> </ul> <pre lang="c"><code>__code code1(Integer *integer1, Integer * integer2, Integer *output) { @@ -628,7 +622,7 @@ <h2 id="cudaworker">CUDAWorker</h2> <ul> <li>CUDA で実行する Task を受け取る Worker</li> - <li>初期化の際に CUDA ライブラリの初期化等を行う</li> + <li>初期化の際に CUDA ライブラリの初期化や CUDAExecutor の生成を行う</li> </ul> @@ -637,7 +631,8 @@ <!-- _S9SLIDE_ --> <h2 id="cudaexecutor">CUDAExecutor</h2> <ul> - <li>CUDAExecutor は Executor Interface を実装した以下の Code Gear を持つ + <li>CUDAExecutor は Executor Interface を実装した Data Gear</li> + <li>以下の Code Gear を実装している <ul> <li>HostからDevice へのデータの送信(read)</li> <li>kernel の実行(exec)</li> @@ -870,7 +865,7 @@ <h2 id="go-">Go 言語との比較</h2> <ul> <li>Go 言語は並列実行を <strong>go funciton(argv)</strong> の構文で行う。 この実行を goroutine と呼ぶ</li> - <li>データの待ち合わせはチャネルというデータ構造で行う</li> + <li>goroutine 間のデータの待ち合わせはチャネルというデータ構造で行う</li> <li>チャネルでのデータの送受信は <strong><-</strong> を使用して行うため、簡潔に書くことが出来る</li> <li>しかし、 チャネルは複数の goroutine で共有されるため、データの送信元が推測しづらい</li> <li>Gears OS では goroutine は par goto 文とほぼ同等に扱える</li>