changeset 90:a9885c038bb6

Add TaskManager describe
author Tatsuki IHA <innparusu@cr.ie.u-ryukyu.ac.jp>
date Mon, 12 Feb 2018 15:23:35 +0900
parents bc7d11285a4a
children 66b8451005cd
files slide/slide.html slide/slide.md
diffstat 2 files changed, 44 insertions(+), 16 deletions(-) [+]
line wrap: on
line diff
--- a/slide/slide.html	Mon Feb 12 14:48:30 2018 +0900
+++ b/slide/slide.html	Mon Feb 12 15:23:35 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-12 14:45:13 +0900 with Markdown engine kramdown (1.13.2)
+                on 2018-02-12 15:22:18 +0900 with Markdown engine kramdown (1.13.2)
                   using options {}
   -->
 
@@ -534,8 +534,20 @@
   <li>Worker を作成、終了処理も行う</li>
 </ul>
 
-<div style="text-align: center;">
-    <img src="./images/sendTask.svg" alt="message" width="800" />
+<div>
+    <div style="float: left;">
+        <img src="./images/sendTask.svg" alt="message" width="600" />
+    </div>
+    <div style="float: left; font-size=100%;">
+        <ol>
+            <li>Task を Input Data Gear として</li>
+                TaskManager の spawn を呼び出す
+            <li>Input Data Gear が揃っているかを確認する</li>
+            <li>揃っている場合、 Worker の Queue に</li>
+                Task を送信する
+        </ol>
+    </div>
+    <div style="clear: both;"></div>
 </div>
 
 
@@ -555,10 +567,12 @@
     <div style="float: left; font-size=100%;">
         <ol>
             <li>Worker は Queue から Task を取得する</li>
-            <li>Worker Context から Task へ入れ替える</li>
+            <li>Worker の Context から</li>
+                Task の Context へ入れ替える
             <li>Task の Code Gear を実行</li>
             <li>Task の Output Data Gear の書き出し</li>
-            <li>Task から WorkerContext へ入れ替える</li>
+            <li>Task Context から</li>
+                Worker の Context へ入れ替える
             <li>Worker は再び Queue から Task を取得する</li>
         </ol>
     </div>
@@ -992,17 +1006,17 @@
       <li>モデル検査は CbC で記述された モデル検査器である akasha を使用して行う。 モデル検査の方針としては Code Gear の並列実行を擬似並列で実行し、全ての組合せを列挙する方法で行う</li>
     </ul>
   </li>
+  <li>現在の CUDA 実装では CPU、GPU 間のデータの通信コストがかかってしまうことが例題からわかった
+    <ul>
+      <li>Meta Data Gear に Data Gear が CPU、 GPU のどこで所持されているのかを持たせ、 GPU の Data Gear が CPU で必要になったときに始めてデータの通信を行う</li>
+    </ul>
+  </li>
   <li>OpenMP、 Goとの比較から、 Gears OS が 1CPU での動作が遅いということがわかった。
     <ul>
       <li>par goto 文を使用する度に Context を生成するため、 ある程度の時間がかかってしまう</li>
       <li>モデル検査で par goto の Code Gear のフローを解析し、処理がかる場合は Context を生成せずに関数呼出しを行う等の最適化が必要</li>
     </ul>
   </li>
-  <li>現在の CUDA 実装では CPU、GPU 間のデータの通信コストがかかってしまうことが例題からわかった
-    <ul>
-      <li>Meta Data Gear に Data Gear が CPU、 GPU のどこで所持されているのかを持たせ、 GPU の Data Gear が CPU で必要になったときに始めてデータの通信を行う</li>
-    </ul>
-  </li>
 </ul>
 <!-- === end markdown block === -->
 </div>
--- a/slide/slide.md	Mon Feb 12 14:48:30 2018 +0900
+++ b/slide/slide.md	Mon Feb 12 15:23:35 2018 +0900
@@ -283,8 +283,20 @@
 - 依存関係を解決した Task を各 Worker の Queue に送信する
 - Worker を作成、終了処理も行う
 
-<div style="text-align: center;">
-    <img src="./images/sendTask.svg" alt="message" width="800">
+<div>
+    <div style="float: left;">
+        <img src="./images/sendTask.svg" alt="message" width="600">
+    </div>
+    <div style="float: left; font-size=100%;">
+        <ol>
+            <li>Task を Input Data Gear として</li>
+                TaskManager の spawn を呼び出す
+            <li>Input Data Gear が揃っているかを確認する</li>
+            <li>揃っている場合、 Worker の Queue に</li>
+                Task を送信する
+        </ol>
+    </div>
+    <div style="clear: both;"></div>
 </div>
 
 ## Worker
@@ -298,10 +310,12 @@
     <div style="float: left; font-size=100%;">
         <ol>
             <li>Worker は Queue から Task を取得する</li>
-            <li>Worker Context から Task へ入れ替える</li>
+            <li>Worker の Context から</li>
+                Task の Context へ入れ替える
             <li>Task の Code Gear を実行</li>
             <li>Task の Output Data Gear の書き出し</li>
-            <li>Task から WorkerContext へ入れ替える</li>
+            <li>Task Context から</li>
+                Worker の Context へ入れ替える
             <li>Worker は再び Queue から Task を取得する</li>
         </ol>
     </div>
@@ -602,8 +616,8 @@
 - Gears OS では検証とモデル検査をメタレベルで実現することで信頼性を保証する
     - 証明は CbC のプログラムを証明支援系の Agda に対応して行う。 並列処理の信頼性を保証するには SynchronizedQueue の証明を行う必要がある
     - モデル検査は CbC で記述された モデル検査器である akasha を使用して行う。 モデル検査の方針としては Code Gear の並列実行を擬似並列で実行し、全ての組合せを列挙する方法で行う
+- 現在の CUDA 実装では CPU、GPU 間のデータの通信コストがかかってしまうことが例題からわかった
+    - Meta Data Gear に Data Gear が CPU、 GPU のどこで所持されているのかを持たせ、 GPU の Data Gear が CPU で必要になったときに始めてデータの通信を行う
 - OpenMP、 Goとの比較から、 Gears OS が 1CPU での動作が遅いということがわかった。 
     - par goto 文を使用する度に Context を生成するため、 ある程度の時間がかかってしまう
     - モデル検査で par goto の Code Gear のフローを解析し、処理がかる場合は Context を生成せずに関数呼出しを行う等の最適化が必要
-- 現在の CUDA 実装では CPU、GPU 間のデータの通信コストがかかってしまうことが例題からわかった
-    - Meta Data Gear に Data Gear が CPU、 GPU のどこで所持されているのかを持たせ、 GPU の Data Gear が CPU で必要になったときに始めてデータの通信を行う