13
|
1 title: Gears OS における並列処理
|
|
2 author: Takui Higashionna
|
|
3 profile:
|
|
4 lang: Japanese
|
|
5 code-engine: coderay
|
|
6
|
14
|
7 # メタ計算を使った並列処理
|
13
|
8
|
14
|
9 - 並列処理のプラグラミングは、処理のパイプライン
|
|
10
|
|
11
|
|
12 # Code Gear Data Gear
|
|
13
|
|
14 - Code Gear Data Gear とはプラグラムを分解し、処理の部分を Code Gear int や文字列などの部分を Data Gear という単位で分ける。
|
|
15 - Code Gearの処理あhその処理に必要な Data Gear が揃ってから行われる。
|
|
16 - Code Gear の処理の移行は goto を使って行い、この移行の仕方を継続という。
|
|
17 - goto による移行は戻り値を持たないため、スタックを積む必要のない、スタックに積まない継続を軽量継続と呼ぶ。
|
|
18
|
|
19 # Output Data Gear Input Data Gear
|
|
20
|
|
21 - Code Gear の処理の実行は、接続された Data Gear が揃ってから実行される。
|
|
22 - Data Gear には Output Data Gear と Input Data Gear があり、Code Gear は接続された Data Gear 以外を変更することはない。
|
|
23
|
|
24 # メタ計算
|
|
25
|
|
26 - メタ計算は通常の計算のための計算である
|
|
27 - 並列処理の依存関係の解決、GPUなどのアーキテクチャ実行のための処理を行う。
|
|
28 - Gears OSではメタ計算は Meta Code Gear、Meta Data Gear で表現される。
|
|
29
|
|
30 # Gears OS
|
|
31
|
|
32 - Gears OS はData Gear Code Gear というGear で構成される。
|
|
33 - Gears OS は Code Gear,Data Gearの単位を用いて開発されており、CbCで記述される。
|
|
34 - Meta Code Gearは ノーマルのCode Gearの直後に遷移され、メタ計算を実行する。
|
|
35 - Meta Code Gear でOSの機能であるメモリ管理やスレッド管理を行う。
|
|
36
|
|
37 # Gears OS の並列性
|
|
38
|
|
39 - Code Gear が処理するのに必要なinput Data Gear と処理実行後に出力される Input Data Gear の組を Task と呼ぶ。
|
|
40 - Code Gear は Task 以外とは依存関係がない
|
|
41 - 依存関係が明確化されている Code Gear Data Gear で記述することで、並列化し易い。
|
|
42
|
|
43 <div style="text-align: center;">
|
|
44 <img src="./images/codeGear_dataGear.svg" alt="message" width="800">
|
|
45 </div>
|
|
46
|
|
47 # |