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&lt;Impl&gt;{
@@ -361,7 +358,7 @@
 <h2 id="interface--code-gear-">Interface を利用した Code Gear の呼び出し</h2>
 <ul>
   <li>Interface を利用した Code Gear への継続は <code>goto interface-&gt;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 = &amp;ALLOCATE(context, Element)-&gt;Element;
-    element-&gt;data = data;
-    element-&gt;next = NULL;
-    queue-&gt;last-&gt;next  = element;
-    queue-&gt;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>&lt;-</strong> を使用して行うため、簡潔に書くことが出来る</li>
   <li>しかし、 チャネルは複数の goroutine で共有されるため、データの送信元が推測しづらい</li>
   <li>Gears OS では goroutine は par goto 文とほぼ同等に扱える</li>