changeset 16:86c8e88c6562

update slide
author mir3636
date Mon, 15 May 2017 08:07:49 +0900
parents 8ed35c355bde
children 538a2bff1ffb 5d927ae5167b
files presen/slide.md
diffstat 1 files changed, 48 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/presen/slide.md	Mon May 15 08:01:28 2017 +0900
+++ b/presen/slide.md	Mon May 15 08:07:49 2017 +0900
@@ -4,17 +4,28 @@
 lang: Japanese
 code-engine: coderay
 
+# メタ計算を使った並列処理
+
+- 並列処理のプログラミングはチューニングや信頼性の確保が困難である。
+- これらのチューニングや信頼性の確保を、アルゴリズムから分離しメタ計算で行う
+- 並列処理のプラグラミングは、処理のパイプライン
+- 当研究室ではメタ計算をサポートする言語として Continuation based C (CbC) を開発している
+- CbC は Code Gear と Data Gear という処理とデータの単位を持っており、メタ計算を行うための Meta Code Gear、Meta Data Gear がある。
+- Gears OS は CbC を用いて記述されている。
+
 # Code Gear Data Gear
 
-- Code Gear Data Gear とはプラグラムを分解し、処理の部分を Code Gear int や文字列などの部分を Data Gear という単位で分ける。
-- Code Gearの処理あhその処理に必要な Data Gear が揃ってから行われる。
+- Code Gear、Data Gear とはプラグラムを分解し、処理の部分を Code Gear、int や文字列などの部分を Data Gear という単位で分割したものである。
 - Code Gear の処理の移行は goto を使って行い、この移行の仕方を継続という。
 - goto による移行は戻り値を持たないため、スタックを積む必要のない、スタックに積まない継続を軽量継続と呼ぶ。
 
-# Output Data Gear Input Data Gear
+# Code Gear Data Gear を用いた計算
 
 - Code Gear の処理の実行は、接続された Data Gear が揃ってから実行される。
 - Data Gear には Output Data Gear と Input Data Gear があり、Code Gear は接続された Data Gear 以外を変更することはない。
+- そのため通常の計算ではポインタを気にすることはなく、ポインタ演算はメタ計算部分で行われる。
+- Code Gear の処理は tail call のみで遷移を行う関数型プログラミングである。
+- agda に変換することができ、プログラムの正しさを証明できる。
 
 # メタ計算
 
@@ -24,12 +35,11 @@
 
 # Gears OS
 
-- Gears OS はData Gear Code Gear というGear で構成される。
-- Gears OS は Code Gear,Data Gearの単位を用いて開発されており、CbCで記述される。
-- Meta Code Gearは ノーマルのCode Gearの直後に遷移され、メタ計算を実行する。
-- Meta Code Gear でOSの機能であるメモリ管理やスレッド管理を行う。
+- Gears OS は Code Gear、Data Gearの単位を用いて開発されており、CbCで記述される。
+- Meta Code Gear は 通常の Code Gear の直後に遷移され、メタ計算を実行する。
+- Meta Code Gear で OS の機能であるメモリ管理やスレッド管理を行う。
 
-# Gears OS の並列性
+# Gears OS の並列性
 
 - Code Gear が処理するのに必要なinput Data Gear と処理実行後に出力される Input Data Gear の組を Task と呼ぶ。
 - Code Gear は Task 以外とは依存関係がない
@@ -50,4 +60,34 @@
     <img src="./images/meta_gear.svg" alt="message" width="800">
 </div>
 
+# Gears OS の構成
 
+- Gears OS は以下の要素で構成される。
+
+# Context
+
+- Gears OS は Context と呼ばれる接続可能な Code Gear、Data Gear のリスト、Temporal Data Gear のためのメモリ空間等を持っている Meta Data Gear を持つ。
+- Gears OS は必要な Code Gear、Data Gear に参照したい場合、この Context を通す必要がある。
+- Context は 接続に必要な Code/Data Gear のリスト、 Data Gear を確保するためのメモリ空間、実行する Code Gear、Code Gear の実行に必要な Input Data Gear のカウンタ等をもっている。
+
+# TaskManager
+
+- TaskManager は Task、Worker の生成、Worker に生成した Task の送信、生成した Worker の終了処理等を行う。
+
+# Worker
+
+- Worker は thread と実行する Task が入っている Queue を持っている。
+- Worker は TaskManager から送信された Task を Queue から取り出し、Code Gear を実行する。
+- Task は Context なので、Code Gear の実行に必要な Input Data Gear はその Context から参照される。
+- Code Gear を実行した後は出力される Output Data Gear から依存関係を解決する。
+
+# 依存関係の解決
+
+
+
+
+
+
+
+
+