annotate Slide/prosym.md @ 4:c456e4d68e1a

add image file
author tobaru
date Sun, 20 May 2018 16:59:54 +0900
parents 7f5c0330e711
children 07b7aba92874
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
tobaru
parents:
diff changeset
1 title: Gears OS のモジュール化と並列 API
tobaru
parents:
diff changeset
2 author: Mitsuki Miyagi, Yu Tobaru, Shinji Kono
tobaru
parents:
diff changeset
3 profile: 琉球大学
tobaru
parents:
diff changeset
4 lang: Japanese
tobaru
parents:
diff changeset
5 code-engine: coderay
tobaru
parents:
diff changeset
6
3
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
7 % # OS の信頼性
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
8 % - コンピュータの信頼性の基本はメモリなどの資源管理を行う OS である。
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
9 % - OS は非決定的な実行を持つため、OS の信頼性を保証するには、証明を用いる方法とプログラムの可能な実行を全て数え上げるモデル検査を用いる必要がある。
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
10 % - 従来のテストとデバッグではテスト仕切れない部分が残ってしまい、不十分。
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
11 % - モデル検査は無限の状態でなくても巨大な状態を調べる事になり、状態を有限に制限したり、状態を抽象化したりする方法が用いられる。
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
12 %
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
13 % # OS の拡張性
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
14 % - 時代とともに進歩するハードウェア、サービスに対応するために OS 自体が拡張される必要がある。
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
15 % - OS を検証する際にも、1度ではなくアプリケーションやサービス、デバイスが新しくなる毎に検証をやり直す必要がある。
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
16 %
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
17 % # OS の拡張性と信頼性の両立
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
18 % - OSの拡張性と信頼性の観点から、OS は信頼性と拡張性を両立させることが重要であるといえる。
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
19 % - 本研究室では、OS の信頼性の保証と拡張性を実現することを目標に Gears OS を設計中である。
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
20
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
21 # Gears OS
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
22 - 現代のOS では拡張性と信頼性を両立させることが要求されている。
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
23 - 時代と共にハードウェア、サービスが進歩していき、その度に OS を検証できる必要があるため、拡張性が必要。
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
24 - OS は非決定的な実行を持ち、従来の OS ではテストしきれない部分が残ってしまうため、信頼性が欠けてしまう。
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
25 - 本研究室では、それらを実現することを目標に Gears OS の開発を行なっている。
0
tobaru
parents:
diff changeset
26
3
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
27 % APIと実装の分離が望ましい理由は?
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
28 # API と実装の分離
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
29 - Gears OS は Continuation based C(以下、CbC)によって記述されている。
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
30 - CbC は Code Gear と Data Gear の単位でプログラムを記述していて、システムやアプリケーションを作る際に、この2つは柔軟に再利用する必要がある。
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
31 - この時に、機能を接続する API と実装の分離が可能であることが望ましい。
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
32
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
33 % 上と繋がってない
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
34 % なんでモジュールシステムが必要?
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
35 # 並列API
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
36 - Geas OS 信頼性を保証するために、形式化されたモジュールシステムが必要である。
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
37 - 本研究では、モジュールシステムとその応用である並列APIについて考察する。
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
38 - 並列APIは継続を基本とした関数型プログラミングと両立する必要があり、ここでは CbC の goto 文を拡張した par goto を導入する。
0
tobaru
parents:
diff changeset
39
3
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
40 # スライドの流れ
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
41 - <font color="red">CbC</font>
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
42 - Gears OS における並列実行
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
43 - 比較
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
44 - 今後の課題
0
tobaru
parents:
diff changeset
45
3
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
46
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
47
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
48
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
49
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
50 # CbC
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
51 - ノーマルレベルとメタレベルの計算を1つの言語で表現できる言語として、本研究室で設計した CbC(Continuation based C) を用いる。
2
60405cc47b3a chapter1
tobaru
parents: 0
diff changeset
52 - ノーマルレベルの計算
60405cc47b3a chapter1
tobaru
parents: 0
diff changeset
53 - コンピュータの計算はプログラミング言語で計算される。
60405cc47b3a chapter1
tobaru
parents: 0
diff changeset
54 - その部分をノーマルレベルの計算と呼ぶ。
60405cc47b3a chapter1
tobaru
parents: 0
diff changeset
55 - メタレベルの計算
60405cc47b3a chapter1
tobaru
parents: 0
diff changeset
56 - コードが実行される際の以下の部分が、メタレベルの計算という。
60405cc47b3a chapter1
tobaru
parents: 0
diff changeset
57 - 処理系の詳細や使用する資源
60405cc47b3a chapter1
tobaru
parents: 0
diff changeset
58 - コードの仕様や型などの言語以外の部分
60405cc47b3a chapter1
tobaru
parents: 0
diff changeset
59
60405cc47b3a chapter1
tobaru
parents: 0
diff changeset
60 # CbC
60405cc47b3a chapter1
tobaru
parents: 0
diff changeset
61 - CbC を用いることで、ノーマルレベルの計算の信頼性をメタレベルから保証できるようになる。
60405cc47b3a chapter1
tobaru
parents: 0
diff changeset
62 - CbC を用いてCode Gear と Data Gear、メタ構造を導入する。
60405cc47b3a chapter1
tobaru
parents: 0
diff changeset
63
3
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
64 % - 検証には 定理証明支援系である Agda を用いる。
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
65 % - Gears の記述をモジュール化するために Interface を導入した。
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
66 % - さらに並列処理の記述用に par goto 構文を導入する。
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
67
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
68 % # par goto の実行
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
69 % - 本論文では Interface と par goto の実装を記述し、評価を行なった。
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
70 % - また、マルチ CPU と GPU 上での par goto 文の実行を確認した。
2
60405cc47b3a chapter1
tobaru
parents: 0
diff changeset
71
3
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
72 # CbC の構文
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
73 - CbC の Code Gear は __code という型を持つ関数として記述する。
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
74 - 継続で次の Code Gear に遷移するので、戻り値は持たない。
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
75 - 遷移は goto 文による継続で処理を行い、引数として入出力を行う。
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
76 ```c
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
77 __code cg0(int a, int b) {
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
78 goto cg1(a+b);
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
79 }
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
80 __code cg1(int c) {
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
81 goto cg2(c);
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
82 }
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
83 ```
0
tobaru
parents:
diff changeset
84 # スライドの流れ
3
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
85 - CbC
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
86 - <font color="red">Gears OS における並列実行</font>
0
tobaru
parents:
diff changeset
87 - 比較
tobaru
parents:
diff changeset
88 - 今後の課題
tobaru
parents:
diff changeset
89
3
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
90
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
91 # Gears における並列実行
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
92 - Gears OS ではメタ計算を柔軟に記述するためのプログラミングの単位として Code Gear と Data Gear を用いる。
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
93 - それぞれにメタレベルの単位が存在し、Meta Data Gear と Meta Code Gear と呼ぶ。
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
94 - メタレベルの計算は Perl スクリプトによって生成され、Code Gear で記述される。
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
95
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
96 # Interface
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
97 - この時、Code Gear と Deta Gear は Interface と呼ばれるまとまり(モジュール)で記述される。
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
98 - Interface 作成時に Code Gear の集合を指定することにより複数の実装を持つことができる。
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
99
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
100 # Context
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
101 - 1つのスレッド内で使われる Interface の Code Gear と Data Gear は Meta Data Gear に格納される。
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
102 - この Meta Data Gear を Context と呼ぶ。
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
103 - Context を複製して複数の CPU に割り当てることにより並列実行が可能になる。
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
104
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
105 # par goto
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
106 - Context の複製には par goto を用いる。
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
107 - 他に、入力の同期、タスクスケジューラへの Context の登録が行われる。
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
108
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
109 # Task
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
110 - Context は Task でもある。
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
111 - 実行する Code Gear と Data Gear を全て持っている。
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
112
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
113 % ここに入る前に __ の説明欲しい
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
114 # __exit
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
115 - par goto で生成された Task は __exit に継続することで終了する。
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
116 - GearsOS の Task は Output Data Gear を生成した時点で終了する。
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
117 - そのため、par goto では直接 __exit に継続せず、Output Data Gear への書き出し処理に継続される。
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
118 - Code Gear と Data Gear の依存関係をノーマルレベルで記述できるようになる。
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
119 ```c
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
120 __code code1(Integer *integer1, Integer * integer2, Integer *output) {
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
121 par goto add(integer1, integer2, output, __exit);
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
122 goto code2();
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
123 }
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
124 ```
0
tobaru
parents:
diff changeset
125
2
60405cc47b3a chapter1
tobaru
parents: 0
diff changeset
126
0
tobaru
parents:
diff changeset
127
3
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
128 % # Interface
0
tobaru
parents:
diff changeset
129
tobaru
parents:
diff changeset
130
3
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
131 % # Context
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
132
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
133 % # 並列構文
0
tobaru
parents:
diff changeset
134
3
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
135 # スライドの流れ
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
136 - CbC
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
137 - Gears OS における並列実行
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
138 - <font color="red">比較</font>
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
139 - 今後の課題
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
140
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
141
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
142 # Gears OS の評価
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
143 - CPU、GPU環境で Gears OS の測定を行う。
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
144 - 使用した環境は次のようになる。
4
c456e4d68e1a add image file
tobaru
parents: 3
diff changeset
145 - CPU 環境
c456e4d68e1a add image file
tobaru
parents: 3
diff changeset
146 - Model : Dell PowerEdgeR630
c456e4d68e1a add image file
tobaru
parents: 3
diff changeset
147 - Memory : 768GB
c456e4d68e1a add image file
tobaru
parents: 3
diff changeset
148 - CPU : 2 × 18-Core Intel Xeon 2.30GHz
c456e4d68e1a add image file
tobaru
parents: 3
diff changeset
149 - CPU 環境
c456e4d68e1a add image file
tobaru
parents: 3
diff changeset
150 - GPU : GeForce GTX 1070
c456e4d68e1a add image file
tobaru
parents: 3
diff changeset
151 - Cores : 1920
c456e4d68e1a add image file
tobaru
parents: 3
diff changeset
152 - ClockSpeed : 1683MHZ
c456e4d68e1a add image file
tobaru
parents: 3
diff changeset
153 - Memory Size : 8GB GDDR5
0
tobaru
parents:
diff changeset
154
3
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
155 # Twice
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
156 - 評価には与えられた整数配列の全ての要素を2倍にする例題である Twice を使う。
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
157 - Twice では 通信時間を考慮しなければ、CPU より コア数の多い GPU が有利となる。
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
158 - 要素数2^27のデータに対する Twice の実行結果を示す。
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
159 - CPU では2^27のデータを64個のデータに分割した。
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
160 - kernel only は 通信速度を除いた速度である。
4
c456e4d68e1a add image file
tobaru
parents: 3
diff changeset
161
c456e4d68e1a add image file
tobaru
parents: 3
diff changeset
162 <table border="1" align='center' width='50%'>
c456e4d68e1a add image file
tobaru
parents: 3
diff changeset
163 <tbody>
c456e4d68e1a add image file
tobaru
parents: 3
diff changeset
164 <tr>
c456e4d68e1a add image file
tobaru
parents: 3
diff changeset
165 <td style="text-align: center;">Processor</td>
c456e4d68e1a add image file
tobaru
parents: 3
diff changeset
166 <td style="text-align: center;">Time(ms)</td>
c456e4d68e1a add image file
tobaru
parents: 3
diff changeset
167 </tr>
c456e4d68e1a add image file
tobaru
parents: 3
diff changeset
168 <tr>
c456e4d68e1a add image file
tobaru
parents: 3
diff changeset
169 <td style="text-align: center;">1 CPU</td>
c456e4d68e1a add image file
tobaru
parents: 3
diff changeset
170 <td style="text-align: right;">1181.215</td>
c456e4d68e1a add image file
tobaru
parents: 3
diff changeset
171 </tr>
c456e4d68e1a add image file
tobaru
parents: 3
diff changeset
172 <tr>
c456e4d68e1a add image file
tobaru
parents: 3
diff changeset
173 <td style="text-align: center;">2 CPUs</td>
c456e4d68e1a add image file
tobaru
parents: 3
diff changeset
174 <td style="text-align: right;">627.914</td>
c456e4d68e1a add image file
tobaru
parents: 3
diff changeset
175 </tr>
c456e4d68e1a add image file
tobaru
parents: 3
diff changeset
176 <tr>
c456e4d68e1a add image file
tobaru
parents: 3
diff changeset
177 <td style="text-align: center;">4 CPUs</td>
c456e4d68e1a add image file
tobaru
parents: 3
diff changeset
178 <td style="text-align: right;">324.059</td>
c456e4d68e1a add image file
tobaru
parents: 3
diff changeset
179 </tr>
c456e4d68e1a add image file
tobaru
parents: 3
diff changeset
180 <tr>
c456e4d68e1a add image file
tobaru
parents: 3
diff changeset
181 <td style="text-align: center;">8 CPUs</td>
c456e4d68e1a add image file
tobaru
parents: 3
diff changeset
182 <td style="text-align: right;">159.932</td>
c456e4d68e1a add image file
tobaru
parents: 3
diff changeset
183 </tr>
c456e4d68e1a add image file
tobaru
parents: 3
diff changeset
184 <tr>
c456e4d68e1a add image file
tobaru
parents: 3
diff changeset
185 <td style="text-align: center;">16 CPUs</td>
c456e4d68e1a add image file
tobaru
parents: 3
diff changeset
186 <td style="text-align: right;">85.518</td>
c456e4d68e1a add image file
tobaru
parents: 3
diff changeset
187 </tr>
c456e4d68e1a add image file
tobaru
parents: 3
diff changeset
188 <tr>
c456e4d68e1a add image file
tobaru
parents: 3
diff changeset
189 <td style="text-align: center;">32 CPUs</td>
c456e4d68e1a add image file
tobaru
parents: 3
diff changeset
190 <td style="text-align: right;">43.496</td>
c456e4d68e1a add image file
tobaru
parents: 3
diff changeset
191 </tr>
c456e4d68e1a add image file
tobaru
parents: 3
diff changeset
192 <tr>
c456e4d68e1a add image file
tobaru
parents: 3
diff changeset
193 <td style="text-align: center;">GPU</td>
c456e4d68e1a add image file
tobaru
parents: 3
diff changeset
194 <td style="text-align: right;">127.018</td>
c456e4d68e1a add image file
tobaru
parents: 3
diff changeset
195 </tr>
c456e4d68e1a add image file
tobaru
parents: 3
diff changeset
196 <tr>
c456e4d68e1a add image file
tobaru
parents: 3
diff changeset
197 <td style="text-align: center;">GPU(kernel only)</td>
c456e4d68e1a add image file
tobaru
parents: 3
diff changeset
198 <td style="text-align: right;">6.018</td>
c456e4d68e1a add image file
tobaru
parents: 3
diff changeset
199 </tr>
c456e4d68e1a add image file
tobaru
parents: 3
diff changeset
200 </tbody>
c456e4d68e1a add image file
tobaru
parents: 3
diff changeset
201 </table>
3
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
202
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
203 # 評価の考察
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
204 - コア数が上がるごとに、処理速度が上がっている。
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
205 - GPUでの実行は 32CPU に比べて約7.2倍の速度向上が見られた。
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
206 - 通信速度を含めると 16CPU より遅い。
0
tobaru
parents:
diff changeset
207
3
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
208 % なんでGo言語?
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
209 # Go 言語との比較
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
210 - Go 言語でも Twice を用いた検証を行い、Gears OS との速度比較を行なった。
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
211 - 1CPU と 32CPU では約4.33倍の速度向上が見られた。
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
212 - CPU数による速度向上は、Gears OS の方が上だが、処理速度では Go言語の方が速い結果となった。
4
c456e4d68e1a add image file
tobaru
parents: 3
diff changeset
213 <div style="text-align: center;">
c456e4d68e1a add image file
tobaru
parents: 3
diff changeset
214 <img src="./image/vsgo.svg" alt="message" width="500">
c456e4d68e1a add image file
tobaru
parents: 3
diff changeset
215 </div>
c456e4d68e1a add image file
tobaru
parents: 3
diff changeset
216
3
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
217
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
218 # スライドの流れ
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
219 - CbC
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
220 - Gears OS における並列実行
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
221 - 比較
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
222 - <font color="red">今後の課題</font>
0
tobaru
parents:
diff changeset
223
tobaru
parents:
diff changeset
224 # 今後の課題
3
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
225 - Go 言語との比較から 1CPU での動作が遅いことがわかった。
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
226 - par goto 文を使用することで、Contextを生成し、並列処理を行う。
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
227 - しかし、Context はメモリ空間の確保や使用する全ての Code Gear Data Gear の設定をする必要があり、生成に時間がかかってしまう事が原因。
7f5c0330e711 add module API
tobaru
parents: 2
diff changeset
228 - 処理が軽い場合は Context を生成しないようなチューニングが必要である。