# HG changeset patch # User Tatsuki IHA # Date 1465628357 -32400 # Node ID 8e98a8e122e64cc1c68e9729b557f7168a6f85d2 # Parent 216de41a6219e8bf5496b2a3656c978634690a38 Update diff -r 216de41a6219 -r 8e98a8e122e6 2016/2016_05_10/slide.md --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/2016/2016_05_10/slide.md Sat Jun 11 15:59:17 2016 +0900 @@ -0,0 +1,14 @@ +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 の依存関係の解決を目標とする + +# 今週 +- OS研究会を出しました + diff -r 216de41a6219 -r 8e98a8e122e6 2016/2016_05_17/slide.md --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/2016/2016_05_17/slide.md Sat Jun 11 15:59:17 2016 +0900 @@ -0,0 +1,58 @@ +title: Gears OS の依存関係の解決 +author: Tatsuki IHA +profile: +lang: Japanese +code-engine: coderay + +# 研究目的 +- 当研究室では 処理の単位を Code Gear、 データの単位を Data Gear を用いて 信頼性が高い並列処理を行う Gears OS を開発している +- Gears OS では Task を Code Gear と実行するときに必要な Input Data Gear と出力するための Output Data Gear の組で表現される。 Input Data Gear/Output Data Gear によって依存関係が決定し、それにそって並列実行を行う +- 現在のGears OS は 依存関係がある並列処理を行うことが出来ない。 この研究ではGears OS の依存関係の解決を目標とする + +# やったこと +- OS研究会を出しました +- まえけんと木曜日に torque しました +- OSC の申し込みしました +- Gears の meta data segment + +# OSC の申し込み +- 展示 + - 並列信頼研究室の研究内容について(Alice, Gears, TreeVNC, Jungle) +- セミナープログラム + - 「ソースコードリーディングの理想と現実」 + +# Gears の Meta Data Gear +- 現在 Gears では明確に Data Gear と Meta Data Gear 区分けをしていない +- 依存関係の解決のため、 DS にくっつく List が必要となった + - この List は Meta Data Gear +- そのため、今回 Data Gear と Meta Data Gear を区分けしたい + + +# context.h +- 完全に別の所におく + +``` c +struct Context { + enum Code next; + .... +}; + +union MetaData { + struct MetaDataGear { + } metaDataGear; +}; + +union Data { + struct Time { + enum Code next; + double time; + } time; + .... +}; +``` + +# allocate +- 通常のData Gear と同じでlinear allocate で allocate する +- その際、 Data Gear と Meta Data Gear を結びつける必要があるので、 それぞれにオフセットを付ける + +![meta allocate](./pictures/metaAllocate.svg) diff -r 216de41a6219 -r 8e98a8e122e6 2016/2016_05_24/slide.md --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/2016/2016_05_24/slide.md Sat Jun 11 15:59:17 2016 +0900 @@ -0,0 +1,31 @@ +title: Gears OS +author: Tatsuki IHA +profile: +lang: Japanese +code-engine: coderay + +# 研究目的 +- 当研究室では 処理の単位を Code Gear、 データの単位を Data Gear を用いて 信頼性が高い並列処理を行う Gears OS を開発している +- Gears OS では Task を Code Gear と実行するときに必要な Input Data Gear と出力するための Output Data Gear の組で表現される。 Input Data Gear/Output Data Gear によって依存関係が決定し、それにそって並列実行を行う +- 現在のGears OS は 依存関係がある並列処理を行うことが出来ない。 この研究ではGears OS の依存関係の解決を目標とする + +# やったこと +- いっくんとみつきくんと Gears をちょっと読みました +- ソフトウェアシステム論の準備(Tensorflow) +- OS研究会の発表スライド書き始めました + +# Gears 読み +- main から読む感じ +- 最初にContext を生成したので Context の説明 + - Context がすべての Data Gear , Code Gear stub の参照を持っている とか + - Code Gear への継続は Enum で指定しているとか +- linear Allocate +- stub + +# ソフトウェアシステム論 +- Tensorflow は Python のコードがら C++ のコードを呼び出している +- その際に swig(simplified Wrapper and interface Generator) というものを使っている +- Interface file を書けば、対応した言語から C, C++のコードを呼べる +- swig は python の他にも Java, Perl, Ruby, etc に対応 +- CbC 版が欲しい様な +- CbC から C++ のコードを呼んでかってに DS とか CS にする感じ diff -r 216de41a6219 -r 8e98a8e122e6 2016/2016_06_06/slide.md --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/2016/2016_06_06/slide.md Sat Jun 11 15:59:17 2016 +0900 @@ -0,0 +1,37 @@ +title: Gears OS +author: Tatsuki IHA +profile: +lang: Japanese +code-engine: coderay + +# 研究目的 +- 当研究室では 処理の単位を Code Gear、 データの単位を Data Gear を用いて 信頼性が高い並列処理を行う Gears OS を開発している +- Gears OS では Task を Code Gear と実行するときに必要な Input Data Gear と出力するための Output Data Gear の組で表現される。 Input Data Gear/Output Data Gear によって依存関係が決定し、それにそって並列実行を行う +- 現在のGears OS は 依存関係がある並列処理を行うことが出来ない。 今研究ではGears OS の依存関係の解決を目標とする + +# 今週 +- Synchronized Queue の要素を struct Task から union Data に変更 + +# 今までの Queue +- 今までは struct Task のみしか受け取れなかった + +``` c +struct Element { + struct Task* task; + struct Element* next; +} element; +``` + +# ってことで +- DS毎にqueueを定義するのは面倒なので union Data でDSを定義 + +``` c +struct Element { + union Data* data; + struct Element* next; +} element; +``` + +# まだよくわかってない +- DS の型はどう表現するかは未定(Element に持たせるが楽か) +- 今は決め打ちにDSの型を cast している