view presen/slide.md @ 27:a11d90aa9fbc

update
author ikkun
date Mon, 15 May 2017 10:03:38 +0900
parents 478dfbb6d20a
children 5d927ae5167b
line wrap: on
line source

title: Gears OS における並列処理 
author: Takui Higashionna
profile:
lang: Japanese
code-engine: coderay

# メタ計算を使った並列処理

- 並列処理のプラグラミングは、処理のパイプライン


# Code Gear Data Gear

- Code Gear Data Gear とはプラグラムを分解し、処理の部分を Code Gear int や文字列などの部分を Data Gear という単位で分ける。
- Code Gearの処理はその処理に必要な Data Gear が揃ってから行われる。
- Code Gear の処理の移行は goto を使って行い、この移行の仕方を継続という。
- goto による移行は戻り値を持たないため、スタックを積む必要のない、スタックに積まない継続を軽量継続と呼ぶ。

# Output Data Gear Input Data Gear

- Code Gear の処理の実行は、接続された Data Gear が揃ってから実行される。
- Data Gear には Output Data Gear と Input Data Gear があり、Code Gear は接続された Data Gear 以外を変更することはない。

# メタ計算

- メタ計算は通常の計算のための計算である
- 並列処理の依存関係の解決、GPUなどのアーキテクチャ実行のための処理を行う。
- Gears OSではメタ計算は Meta Code Gear、Meta Data Gear で表現される。

# 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 が処理するのに必要なinput Data Gear と処理実行後に出力される Input Data Gear の組を Task と呼ぶ。
- Code Gear は Task 以外とは依存関係がない
- 依存関係が明確化されている Code Gear Data Gear で記述することで、並列化し易い。

<div style="text-align: center;">
    <img src="./images/codeGear_dataGear.svg" alt="message" width="800">
</div>

#