view 2016/2016_09_13/slide.md @ 20:3d6b9e5ae730

Update
author Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
date Tue, 25 Oct 2016 19:50:03 +0900
parents
children
line wrap: on
line source

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 の依存関係の解決を目標とする

# 夏休みイベント
- ワークショップどうしよう

# ワークショップ
- M1 主催で研究計画書かしてよろしく!
- M1 が思ったより少ないので M2 もよろしく!

# Dependency は?
- 絶賛デバッグ中
- ``context->next`` を結構多用してるので直す
- 実行する CS 

``` c
__code add(struct Context* context, struct Integer* input1, struct Integer* input2, struct Integer* output) {
    output->value = input1->value + input2->value;
    printf("%d + %d = %d\n", input1->value, input2->value, output->value);
    goto meta(context, context->next);
}

__code add_stub(struct Context* context) {
    goto add(context,
            (struct Integer*)((struct Task*)(context->data[Element]->element.data))->iargs[0],
            (struct Integer*)((struct Task*)(context->data[Element]->element.data))->iargs[1],
            (struct Integer*)((struct Task*)(context->data[Element]->element.data))->oargs[0]);
}

// こう書きたい?
// input と output の区別を付けたい
//

__code add(struct Integer* input1, struct Integer* input2) {
    output->value = input1->value + input2->value;
    printf("%d + %d = %d\n", input1->value, input2->value, output->value);
    goto next
}
```

# 来週
- 東京にいます