changeset 16:216de41a6219

Update
author Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
date Fri, 06 May 2016 01:53:06 +0900
parents 374be92a8d73
children 8e98a8e122e6
files 2016/2016_04_26/slide.md 2016/2016_05_03/slide.md
diffstat 2 files changed, 79 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/2016/2016_04_26/slide.md	Fri May 06 01:53:06 2016 +0900
@@ -0,0 +1,39 @@
+title: Gears OS の依存関係の解決
+author: Tatsuki IHA
+profile:
+lang: Japanese
+code-engine: coderay
+# 研究目的
+- 当研究室では  処理の単位を Code Segment、 データの単位を Data Segment を用いて 信頼性が高い並列処理を行う Gears OS を開発している
+- Gears OS では Task を Code Segment と実行するときに必要な Input Data Segment と出力するための Output Data Segment の組で表現される。 Input Data Segment/Output Data Segment によって依存関係が決定し、それにそって並列実行を行う
+- 現在のGears OS は 依存関係がある並列処理を行うことが出来ない。 この研究ではGears OS の依存関係の解決を目標とする
+
+# 今週
+- dependency を書いてます
+
+# Cerium の wait_for
+- Cerium は依存関係を解決するためにwait_me, wait_i という2つのQueueInfo<TaskQueue>をtaskが持っている
+- task a を実行してから task bを実行する場合
+- task a の wait_me に slave の task を add する
+- task b の wait_i に  master の task を add する
+
+# Cerium の spawn_task
+- spawn_task 時にwait_i にtaskが入ってないかチェック
+- empty の場合 activeTaskQueueにtaskを入れる
+- empty ではない場合 waitTaskQueueにtaskを入れる
+
+# Cerium の例
+- つまり a -> b -> c という依存の場合
+- b の wait_i には a がaddされる
+- b wait_me には c がaddされる
+
+# Gears で実装する場合
+- wait_me, wait_i 的なものを用意する
+- wait_me , wait_i に task を入れる
+- しかし、Gears では ds も考慮しなければならない
+    - ds は llrb にputされる
+- 木のkeyでも入れる用のlistをTaskに持たせるか
+- IDS の数を保持して wait_i に 終わった task の ODS のstruct を入れる
+    - 展開して ods を取る
+- schedulerがsingle thread で走らせ、 依存関係を監視する(wait task と active task)
+    - task cs が終わったthread は scheduler に終了を伝える
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/2016/2016_05_03/slide.md	Fri May 06 01:53:06 2016 +0900
@@ -0,0 +1,40 @@
+title: Gears OS の依存関係の解決
+author: Tatsuki IHA
+profile:
+lang: Japanese
+code-engine: coderay
+
+# 研究目的
+- 当研究室では  処理の単位を Code Segment、 データの単位を Data Segment を用いて 信頼性が高い並列処理を行う Gears OS を開発している
+- Gears OS では Task を Code Segment と実行するときに必要な Input Data Segment と出力するための Output Data Segment の組で表現される。 Input Data Segment/Output Data Segment によって依存関係が決定し、それにそって並列実行を行う
+- 現在のGears OS は 依存関係がある並列処理を行うことが出来ない。 この研究ではGears OS の依存関係の解決を目標とする
+
+# 今週
+- dependency を書いてます
+
+# Cerium の wait_for
+- Cerium は依存関係を解決するためにwait_me, wait_i という2つのQueueInfo<TaskQueue>をtaskが持っている
+- task a を実行してから task bを実行する場合
+- task a の wait_me に slave の task を add する
+- task b の wait_i に  master の task を add する
+
+# Cerium の spawn_task
+- spawn_task 時にwait_i にtaskが入ってないかチェック
+- empty の場合 activeTaskQueueにtaskを入れる
+- empty ではない場合 waitTaskQueueにtaskを入れる
+
+# Cerium の例
+- つまり a -> b -> c という依存の場合
+- b の wait_i には a がaddされる
+- b wait_me には c がaddされる
+
+# Gears で実装する場合
+- wait_me, wait_i 的なものを用意する
+- wait_me , wait_i に task を入れる
+- しかし、Gears では ds も考慮しなければならない
+    - ds は llrb にputされる
+- 木のkeyでも入れる用のlistをTaskに持たせるか
+- IDS の数を保持して wait_i に 終わった task の ODS のstruct を入れる
+    - 展開して ods を取る
+- schedulerがsingle thread で走らせ、 依存関係を監視する(wait task と active task)
+    - task cs が終わったthread は scheduler に終了を伝える