annotate abst.txt @ 19:f311c7a14a62 default tip

add src
author mir3636
date Mon, 15 May 2017 18:50:34 +0900
parents 581d76326ace
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
mir3636
parents:
diff changeset
1 198417651
mir3636
parents:
diff changeset
2
mir3636
parents:
diff changeset
3 Gears OS におけるコード記述
mir3636
parents:
diff changeset
4
mir3636
parents:
diff changeset
5 宮城光希 河野真治
mir3636
parents:
diff changeset
6
mir3636
parents:
diff changeset
7 Gears OS は Continuation based C によってアプリケーションとOSそのものを記述する。
mir3636
parents:
diff changeset
8 OSの下ではプログラムの記述は通常の処理の他に、メモリ管理、スレッドの待ち合わせやネットワークの管理、エラーハンドリング等、記述しなければならない処理が存在する。これらの計算を Meta Computation と呼ぶ。
mir3636
parents:
diff changeset
9 Meta Computation を通常の計算から切り離して記述するために、Code Gear、Data Gear という単位を提案している。
mir3636
parents:
diff changeset
10 Code Gear、Data Gear にはそれぞれメタレベルの単位である Meta Code Gear、Meta Data Gear が存在する。
mir3636
parents:
diff changeset
11
mir3636
parents:
diff changeset
12 code gear 間の接続はつぎのcode gearの番号とthread structure に相当するcontextによって行われる。
mir3636
parents:
diff changeset
13 ユーザーレベルではmeta構造を直接見ることはなく、継続を用いた関数型プログラミングに見える。
mir3636
parents:
diff changeset
14 metaレベルから見たdata gearをユーザーレベルのcode gearに接続するにはstub というmeta code gear を用いる。
mir3636
parents:
diff changeset
15 stubとmetaはユーザーレベルcodegear とdatagearからスクリプトにより作成される。
mir3636
parents:
diff changeset
16
mir3636
parents:
diff changeset
17 変換に必要な情報はプログラムを構成するcode gearとdata gearの集まりから得る。この集まりをinterfaceとして定義している。
mir3636
parents:
diff changeset
18 interfaceはオブジェクト指向言語のクラスや関数型言語の型クラスに対応し再利用や実装の切り分けに使うことができる。
mir3636
parents:
diff changeset
19
mir3636
parents:
diff changeset
20 本論文では、interfaceを用いたプログラミングと、メタ計算の実例を示す。
mir3636
parents:
diff changeset
21
mir3636
parents:
diff changeset
22
mir3636
parents:
diff changeset
23
mir3636
parents:
diff changeset
24 Gears OS における並列処理
mir3636
parents:
diff changeset
25
mir3636
parents:
diff changeset
26 東恩納琢偉 伊波立樹 河野真治
mir3636
parents:
diff changeset
27
mir3636
parents:
diff changeset
28 Gears OS は継続を中心とした言語で記述されており、メタ計算をノーマルレベルと分けて記述することができる。
mir3636
parents:
diff changeset
29 並列処理はメタ計算によって記述されており、CbC自体には並列処理の機能はない。
mir3636
parents:
diff changeset
30 Gears OS のプログラムはCode Gear とData Gear の集まりであるinterfaceによって行われる。
mir3636
parents:
diff changeset
31 Gears OSでのスレッドはinterfaceの集合で出来ており、code gear data gearを接続するcontextというmeta data gear を持つ。
mir3636
parents:
diff changeset
32 並行実行する場合は新しくcontextを生成し、それを時分割または、物理的なCPUに割り当てることによって実現される。
mir3636
parents:
diff changeset
33 つまり、contextそのものがスレッドとなる。
mir3636
parents:
diff changeset
34
mir3636
parents:
diff changeset
35 Gears OSでの同期機構はdata gear を待ち合わせることによって行われる。
mir3636
parents:
diff changeset
36 例えば、GPU上で実行する場合は必要なdata gearをGPU内部に転送し、それらが揃った時点で並列実行される。
mir3636
parents:
diff changeset
37 data gear の待ち合わせはメモリ上のdata gear のmeta data gear に待ち合わせ用のキューを作ることによって行われる。
mir3636
parents:
diff changeset
38 キューにはGears OSのスレッドつまりcontext meta data gearが入る。
mir3636
parents:
diff changeset
39 本論文ではGears OSでの並列処理の構成方法について述べる。並列処理をメタレベルで行うことにより、並列処理で重要なチューニングや性能測定あるいはデバッグをメタ計算を切り替えることにより、ノーマルレベルの計算を変更することなく行うことができることを示す。
mir3636
parents:
diff changeset
40
mir3636
parents:
diff changeset
41
mir3636
parents:
diff changeset
42
mir3636
parents:
diff changeset
43 非破壊木構造データベース Jungle のサービス利用法にそった改良
mir3636
parents:
diff changeset
44
mir3636
parents:
diff changeset
45
mir3636
parents:
diff changeset
46 仲松栞 照屋のぞみ 河野真治
mir3636
parents:
diff changeset
47
mir3636
parents:
diff changeset
48 プログラムからデータを分離して扱うデータベースには、
mir3636
parents:
diff changeset
49 プログラム中のデータ構造と表構造とのインピーダンスミスマッチという問題がある。
mir3636
parents:
diff changeset
50 データベースのレコードをプログラム中のオブジェクトとして使えるOR Mapperや、
mir3636
parents:
diff changeset
51 データベース自体も、表に特化したKey Value Store、Jsonなどの不定形のデータ構造を格納するように機能拡張されてきている。
mir3636
parents:
diff changeset
52 しかし、プログラム中のデータは複雑な構造をメモリ上に構築しており、これらの方法でもまだギャップがある。
mir3636
parents:
diff changeset
53
mir3636
parents:
diff changeset
54 そこで当研究室では、これらの問題を解決するためにプログラム内部に木構造を格納できるデータベース Jungle を提案している。
mir3636
parents:
diff changeset
55 Jungleは、木構造の変更を非破壊的に行う。
mir3636
parents:
diff changeset
56 Jungleは、読み込みは高速に行える反面、書き込みの手間は木の形・大きさに依存しており、最悪の場合O(n)となってしまう。
mir3636
parents:
diff changeset
57 実際にJungleを使用したアプリケーションを作成した場合、アプリケーションにそった木構造の変更アルゴリズムを採用する必要がある。
mir3636
parents:
diff changeset
58 いくつかの方法を提案し、PostgreSQLとMongoDBとの比較を行った。
mir3636
parents:
diff changeset
59