changeset 103:05d7669c4a29

Fix
author Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
date Tue, 13 Feb 2018 13:22:51 +0900
parents c48b78793176
children 4b49908418e2
files slide/slide.html slide/slide.md
diffstat 2 files changed, 25 insertions(+), 22 deletions(-) [+]
line wrap: on
line diff
--- a/slide/slide.html	Tue Feb 13 11:48:44 2018 +0900
+++ b/slide/slide.html	Tue Feb 13 13:22:51 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 11:44:16 +0900 with Markdown engine kramdown (1.13.2)
+                on 2018-02-13 12:53:11 +0900 with Markdown engine kramdown (1.13.2)
                   using options {}
   -->
 
@@ -389,7 +389,7 @@
     Queue* queue = createSingleLinkedQueue(context);
     Node* node = new Node();
     node-&gt;color = Red;
-    goto queue-&gt;put(node, queueTest2);
+    goto queue-&gt;put(node, code2);
 }
 </code></pre>
 
@@ -415,7 +415,7 @@
     node-&gt;color = Red;
     Gearef(context, Queue)-&gt;queue = (union Data*) queue;
     Gearef(context, Queue)-&gt;data = (union Data*) node;
-    Gearef(context, Queue)-&gt;next = C_queueTest2;
+    Gearef(context, Queue)-&gt;next = C_code2;
     goto meta(context, queue-&gt;put);
 }
 </code></pre>
@@ -462,7 +462,6 @@
       <li>Worker
         <ul>
           <li>SynchronizedQueue から Task を一つずつ取得し、実行する</li>
-          <li>Worker は CPU、 GPU の数分生成する</li>
           <li>Worker 毎に POSIX Therad などを生成し、それぞれのスレッドで Code Gear を実行する</li>
         </ul>
       </li>
@@ -498,7 +497,11 @@
 <!-- _S9SLIDE_ -->
 <h2 id="taskmanger">TaskManger</h2>
 <ul>
-  <li>Worker を作成、終了処理を行う</li>
+  <li>Worker を作成、終了処理を行う
+    <ul>
+      <li>CPU、 GPU の数分生成する</li>
+    </ul>
+  </li>
   <li>依存関係を解決した Task を各 Worker の Queue に送信する</li>
 </ul>
 
@@ -520,7 +523,7 @@
 <!-- _S9SLIDE_ -->
 <h2 id="worker">Worker</h2>
 <ul>
-  <li>初期化時に Worker 用の Context を生成する</li>
+  <li>初期化時に Worker 用の Context を生成し、Code Gear を実行していく</li>
   <li>TaskManager から送信された Task を一つずつ取得して実行する</li>
 </ul>
 
@@ -528,7 +531,7 @@
     <img src="./images/workerRun.svg" alt="message" style="float: left;width: 50%;" />
     <div style="float: left; width: 50%;">
         <ol>
-            <li>Worker は Queue から Task を取得する</li>
+            <li>Worker は Queue から Task(Context)を取得する</li>
             <li>Worker の Context からTask の Context へ入れ替える</li>
                 
             <li>Task に設定されている Code Gear を実行</li>
@@ -739,8 +742,8 @@
   <li>Twice は与えられた整数配列を2倍にする例題である</li>
   <li>並列実行の依存関係がなく、並列度が高い課題である</li>
   <li>要素数 2^27</li>
-  <li>CPU での実行時は 2^27 を 2^6 個に分割して Task を生成する</li>
-  <li>GPU での実行時は1次元の block 数を 2^15、 block 内の thread 数を 2^10 で展開</li>
+  <li>CPU での実行時は要素数 2^27 を 2^6 個に分割して Task を生成する</li>
+  <li>GPU での実行時は1次元の block 数を 2^15、 block 内の thread 数を 2^10 で kernel を実行</li>
 </ul>
 
 
@@ -803,10 +806,10 @@
 <h2 id="bitonicsort">BitonicSort</h2>
 <ul>
   <li>並列処理向けのソートアルゴリズム</li>
-  <li>決まった2点間の要素の入れ替えをステージ毎に並列に実行し、 Output Data Gear として書き出し、次のステージの Code Gear の Input Data Gear とする</li>
+  <li>決まった2点間の要素の入れ替えを並列に行うことでソーティングを進めていく</li>
   <li>要素数 2^24</li>
-  <li>CPU での実行時は 2^24 を 2^6 個に分割して Task を生成する</li>
-  <li>GPU での実行時は1次元の block 数を 2^14、 block 内の thread 数を 2^10 で展開</li>
+  <li>CPU での実行時は要素数 2^24 を 2^6 個に分割して Task を生成する</li>
+  <li>GPU での実行時は1次元の block 数を 2^14、 block 内の thread 数を 2^10 で kernel を実行</li>
 </ul>
 
 
--- a/slide/slide.md	Tue Feb 13 11:48:44 2018 +0900
+++ b/slide/slide.md	Tue Feb 13 13:22:51 2018 +0900
@@ -191,7 +191,7 @@
     Queue* queue = createSingleLinkedQueue(context);
     Node* node = new Node();
     node->color = Red;
-    goto queue->put(node, queueTest2);
+    goto queue->put(node, code2);
 }
 ```
 
@@ -209,7 +209,7 @@
     node->color = Red;
     Gearef(context, Queue)->queue = (union Data*) queue;
     Gearef(context, Queue)->data = (union Data*) node;
-    Gearef(context, Queue)->next = C_queueTest2;
+    Gearef(context, Queue)->next = C_code2;
     goto meta(context, queue->put);
 }
 ```
@@ -241,7 +241,6 @@
         - Worker の生成、依存関係を解決したTask を Worker に送信する
     - Worker
         - SynchronizedQueue から Task を一つずつ取得し、実行する
-        - Worker は CPU、 GPU の数分生成する
         - Worker 毎に POSIX Therad などを生成し、それぞれのスレッドで Code Gear を実行する
     - SynchronizedQueue
         - マルチスレッド環境でもデータの同期が行われる Queue
@@ -256,6 +255,7 @@
 
 ## TaskManger
 - Worker を作成、終了処理を行う
+    - CPU、 GPU の数分生成する
 - 依存関係を解決した Task を各 Worker の Queue に送信する
 
 <div>
@@ -271,14 +271,14 @@
 </div>
 
 ## Worker
-- 初期化時に Worker 用の Context を生成する 
+- 初期化時に Worker 用の Context を生成し、Code Gear を実行していく
 - TaskManager から送信された Task を一つずつ取得して実行する
 
 <div>
     <img src="./images/workerRun.svg" alt="message" style="float: left;width: 50%;">
     <div style="float: left; width: 50%;">
         <ol>
-            <li>Worker は Queue から Task を取得する</li>
+            <li>Worker は Queue から Task(Context)を取得する</li>
             <li>Worker の Context からTask の Context へ入れ替える</li>
                 
             <li>Task に設定されている Code Gear を実行</li>
@@ -406,8 +406,8 @@
 - Twice は与えられた整数配列を2倍にする例題である
 - 並列実行の依存関係がなく、並列度が高い課題である
 - 要素数 2^27
-- CPU での実行時は 2^27 を 2^6 個に分割して Task を生成する
-- GPU での実行時は1次元の block 数を 2^15、 block 内の thread 数を 2^10 で展開
+- CPU での実行時は要素数 2^27 を 2^6 個に分割して Task を生成する
+- GPU での実行時は1次元の block 数を 2^15、 block 内の thread 数を 2^10 で kernel を実行
 
 ## Twice の結果
 - GPU は CPU との通信時間を含めた時間、 GPU(kernel only) は kernel のみの実行時間を示している
@@ -458,10 +458,10 @@
 
 ## BitonicSort
 - 並列処理向けのソートアルゴリズム
-- 決まった2点間の要素の入れ替えをステージ毎に並列に実行し、 Output Data Gear として書き出し、次のステージの Code Gear の Input Data Gear とする
+- 決まった2点間の要素の入れ替えを並列に行うことでソーティングを進めていく
 - 要素数 2^24
-- CPU での実行時は 2^24 を 2^6 個に分割して Task を生成する
-- GPU での実行時は1次元の block 数を 2^14、 block 内の thread 数を 2^10 で展開
+- CPU での実行時は要素数 2^24 を 2^6 個に分割して Task を生成する
+- GPU での実行時は1次元の block 数を 2^14、 block 内の thread 数を 2^10 で kernel を実行
 
 ## BitonicSort の結果
 - 1 CPU と 32 CPU で約22.12倍の速度向上