Mercurial > hg > Members > innparusu > slides
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 に終了を伝える