annotate presen/alice-presen.ind @ 39:fcf3b09ef1a3

fix
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Fri, 11 Jan 2013 09:58:57 +0900
parents b7fb46ffac37
children bb43d09406e1
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
36
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
1 -title: CodeSegmentとDataSegmentによるプログラミング手法
35
5f961785fb0c add o2s5
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
2
36
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
3 --author: 河野 真治, 杉本 優
35
5f961785fb0c add o2s5
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
4
39
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 36
diff changeset
5 --並列分散フレームワーク
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 36
diff changeset
6
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 36
diff changeset
7 本研究室では分散プログラミングと並列プログラミングのツールを開発してきた。
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 36
diff changeset
8
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 36
diff changeset
9 分散プログラミング用のFederated Lidna
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 36
diff changeset
10 並列プログラミング用のCerium
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 36
diff changeset
11
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 36
diff changeset
12 これらの経験から並列分散を統一的に扱えるプログラミングフレームワークを考えたい。
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 36
diff changeset
13
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 36
diff changeset
14 --並列分散フレームワークには何が求められるのか
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 36
diff changeset
15
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 36
diff changeset
16 並列実行単位の記述
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 36
diff changeset
17 プロトコルの記述
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 36
diff changeset
18 実用的な実装
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 36
diff changeset
19 実験環境の用意
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 36
diff changeset
20 多言語対応
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 36
diff changeset
21 検証や証明への対応
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 36
diff changeset
22
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 36
diff changeset
23 --Federated Linda
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 36
diff changeset
24
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 36
diff changeset
25 データの塊である Tuple を使って通信するフレームワーク
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 36
diff changeset
26
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 36
diff changeset
27 in Tuple を取り出す
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 36
diff changeset
28 out Tuple 書きだす
35
5f961785fb0c add o2s5
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
29
39
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 36
diff changeset
30 --Federated Linda の Pros and Cons
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 36
diff changeset
31
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 36
diff changeset
32 --Cerium
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 36
diff changeset
33
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 36
diff changeset
34 Task 単位で並列実行するツール
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 36
diff changeset
35
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 36
diff changeset
36 --Cerium の Pros and Cons
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 36
diff changeset
37
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 36
diff changeset
38 --Data segment と Code Segment
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 36
diff changeset
39
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 36
diff changeset
40 --Java Implmentation : Alice
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 36
diff changeset
41
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 36
diff changeset
42 --CS/DS API
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 36
diff changeset
43
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 36
diff changeset
44 --Alice Architecture
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 36
diff changeset
45
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 36
diff changeset
46 --Sample Application
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 36
diff changeset
47
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 36
diff changeset
48 --Experiment
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 36
diff changeset
49
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 36
diff changeset
50 --Ring
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 36
diff changeset
51
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 36
diff changeset
52
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 36
diff changeset
53
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 36
diff changeset
54
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 36
diff changeset
55
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 36
diff changeset
56 に置いて、タスクをCode Segment、データをData Segmentという単位に分割して記述する方法を提唱している。</p>
36
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
57 <p>しかし、前述したプログラムをプログラマーが一から記述していくことは大変である。</p>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
58 <p>そこで、本研究室の卒業生である赤嶺一樹氏が分散ネットフレームワークAliceのプロトタイプを作成した。</p>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
59 <p>本研究では実際にAliceを利用して、水族館の例題を作成した。また、Federated Lindaとの性能比較を行った。そして、Aliceの問題点の洗い出し、APIの見直しを行った。</p>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
60
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
61 --発表内容
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
62 <ul>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
63 <li>Aliceの紹介
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
64 <li>プログラムの記述方法
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
65 <li>水族館の例題と性能評価
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
66 <li>まとめと課題
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
67 </ul>
35
5f961785fb0c add o2s5
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
68
36
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
69 --Alice
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
70 <ul>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
71 <p>Alice は本研究室で開発を行なっている分散タスク管理フレームワークである。</p>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
72 <p>Cell用のOpen CL に似たTask管理用フレームワークCeriumと
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
73 Lindaを相互接続した分散フレームワークであるFederated Lindaの開発を通して得られた知見を生かされている。</p>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
74 <ul>
35
5f961785fb0c add o2s5
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
75
36
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
76 --Cerium
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
77 <ul>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
78 <p>Ceriumは当研究室で開発を行なっている並列プログラミングフレームワークである。</p>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
79 <p>CeriumではTaskを小さく分割して並列実行し、データ転送はパイプライン実行により隠される。</p>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
80 <p>Taskには依存関係がありデータの依存関係がそのままTaskの依存関係になることが多い。</p>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
81 <p>繰り返し使われるデータの管理が重要であり、実行時にわかるデータ構造間の依存関係がTaskを複雑にしている。</p>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
82 </ul>
35
5f961785fb0c add o2s5
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
83
36
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
84 --Data Segment API
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
85 <ul>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
86 <p>Data Segmentは数値や文字などのデータを構造体的に保持するが、分散プログラムにおいてData Segmentの相互参照が問題になってくる。</p>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
87 <p>AliceではData SegmentにユニークなKeyを持たせ、Key Value Storeとして扱っている。Key毎のキューがあり、Key毎に順に実行される。<br>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
88 <div align="center">
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
89 <img src="images/dataSegment_key.png">
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
90 </div>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
91
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
92 </ul>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
93
35
5f961785fb0c add o2s5
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
94
36
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
95 --Data Segment API
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
96 <ul>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
97 <p>Data Segmentを管理するのが、Data Segment Manager
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
98 各ノード毎に、Local DS ManagerとRemote DS Managerが存在する。</p>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
99 <p>Local DS Managerはノード固有のKey Value Storeであり、Remote DS Managerは他のノードのLocal DS Managerのproxyである。
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
100 AliceのTopology Managerが自動的に構成する。</p>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
101 <div align="center">
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
102 <img src="images/lrds.png" width=500>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
103 </div>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
104 </ul>
35
5f961785fb0c add o2s5
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
105
5f961785fb0c add o2s5
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
106
36
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
107 --Data Segment API
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
108 <ul>
35
5f961785fb0c add o2s5
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
109 以下が用意されているData Segment APIである。
36
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
110 <li>void put(String key, Value val)</li>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
111 <li>void update(String key, Value val)</li>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
112 <li>void peek(Receiver receiver, String key)</li>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
113 <li>void take(Receiver receiver, String key)</li>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
114 <p>これらを用いてデータの送受信を行う。</p>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
115 </ul>
35
5f961785fb0c add o2s5
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
116
36
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
117 --Data Segment API - put
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
118 <ul>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
119 <li>データを追加する</li>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
120 </ul>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
121 <div align="center">
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
122 <img src="images/put.png" width=70%>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
123 </div>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
124 <ul>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
125 <p>putを行うとデータがenqueueされる。</p>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
126 <p>putするたびにKeyが持つindexがincrementされる。</p>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
127 </ul>
35
5f961785fb0c add o2s5
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
128
36
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
129 --Data Segment API - update
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
130 <ul><li>データを置き換える</li></ul>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
131 <div align="center">
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
132 <img src="images/update.png" width=70%>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
133 </div>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
134 <ul>
35
5f961785fb0c add o2s5
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
135 putと異なる点は先頭データを削除し、データを追加する。
36
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
136 </ul>
35
5f961785fb0c add o2s5
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
137
36
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
138 --Data Segment API - peek
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
139 <ul><li>データを取得する</li></ul>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
140 <div align="center">
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
141 <img src="images/peek.png" width=50%><br>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
142 </div>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
143 <ul>
35
5f961785fb0c add o2s5
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
144 peekはデータを取得しreceiverに渡す。
36
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
145 </ul>
35
5f961785fb0c add o2s5
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
146
36
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
147 --Data Segment API - peek
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
148 <div align="center">
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
149 <img src="images/peek1.png" width=60%><br>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
150 </div>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
151 <ul>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
152 <p>要求したデータがない場合にはwaitListに登録する。</p>
35
5f961785fb0c add o2s5
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
153 データがput、updateされる際に要求したデータがあるかどうかを再びチェックする。
5f961785fb0c add o2s5
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
154
36
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
155 </ul>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
156
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
157 --Data Segment API - take
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
158 <ul><li>データを取得して取得されたデータはdequeueされる</li></ul>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
159 <div align="center">
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
160 <img src="images/take.png" width=50%><br>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
161 </div>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
162 <ul>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
163 <p>基本的な動作はpeekと同じである。</p>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
164 <p>peekと異なる点は取得されたデータがdequeueされる。</p>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
165 </ul>
35
5f961785fb0c add o2s5
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
166
36
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
167 --Data Segmentの実装
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
168 <ul>
35
5f961785fb0c add o2s5
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
169 Data Segmentのデータ表現はMessagePackを使用。
36
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
170 </ul>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
171 <ul><p>JavaにおけるMessagePackのデータ表現</p>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
172 <li>一般的なJavaのクラスオブジェクト</li>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
173 <li>MessagePack for JavaのValueオブジェクト</li>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
174 <li>byte[]で表現されたバイナリ</li>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
175 </ul>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
176 <ul>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
177 <p>Data Segment APIでは</p>
35
5f961785fb0c add o2s5
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
178 MessagePack for javaのValueオブジェクトを使用</p>
5f961785fb0c add o2s5
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
179 MessagePackのバイナリにシリアライズできる型のみで
5f961785fb0c add o2s5
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
180 構成されているため自己記述式のデータ形式
36
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
181 </ul>
35
5f961785fb0c add o2s5
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
182
36
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
183 --Data Segmentの実装
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
184 <ul>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
185 <p>Valueオブジェクトは通信に関わる際には、シリアライズ、デシリアライズを高速に行うことができる</p>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
186 <img src="images/FishPoint.png" width=700><br>
35
5f961785fb0c add o2s5
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
187 ユーザーが一般的なクラスをIDL(Interface Definition Language)のように用いてデータを記述することが可能
36
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
188 </ul>
35
5f961785fb0c add o2s5
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
189
36
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
190 --CodeSegment
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
191 <ul>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
192 <li>Code Segmentはタスクのこと</li>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
193 <li>ユーザーが記述する際にCode Segment内で使用する<br>Data Segmentの作成を記述</li>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
194 <li>Input Data SegmentとOutput Data Segmentを作るAPI</li>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
195 <li>必要なInput Data Segmentが揃った時に実行される</li>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
196 </ul>
35
5f961785fb0c add o2s5
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
197
36
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
198 --Input Data SegmentとOutput Data Segment
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
199 <ul>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
200 <li>localかremoteを指定</li>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
201 <li>Data Segmentに関連付けされているKEYを指定</li>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
202 </ul>
35
5f961785fb0c add o2s5
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
203
36
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
204 <ul>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
205 --Data Segmentの例
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
206 <img src="images/SendWidth.png" width=600>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
207 </ul>
35
5f961785fb0c add o2s5
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
208
36
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
209 --Input Data Segmentの例
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
210 <ul>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
211 <img src="images/ids.png" width=400><br>
35
5f961785fb0c add o2s5
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
212 Receiverの作成<br>
5f961785fb0c add o2s5
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
213 PEEK,TAKEのどちらかを選択
36
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
214 </ul>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
215 <ul>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
216 <img src="images/idsSetkey.png" width=600><br>
35
5f961785fb0c add o2s5
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
217 第1引数 マシン名<br>
5f961785fb0c add o2s5
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
218 第2引数 Data Segmentに関連付けられているKEY<br>
5f961785fb0c add o2s5
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
219 第3引数 index(指定しない場合は先頭データが取得される)<br>
36
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
220 </ul>
35
5f961785fb0c add o2s5
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
221
36
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
222 --Output Data Segmentの例
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
223 <ul>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
224 <img src="images/ods.png" width=400><br>
35
5f961785fb0c add o2s5
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
225 putかupdateのどちらかを選択
36
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
226 </ul>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
227 <ul>
35
5f961785fb0c add o2s5
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
228 第1引数 マシン名<br>
5f961785fb0c add o2s5
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
229 第2引数 Data Segmentに関連付けるKEY<br>
5f961785fb0c add o2s5
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
230 第3引数 Data Segment<br>
36
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
231 </ul>
35
5f961785fb0c add o2s5
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
232
36
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
233 --Code Segmentの実行方法
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
234 <ul>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
235 <img src="images/StartCS.png" width=600><br>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
236 </ul>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
237 <ul>
35
5f961785fb0c add o2s5
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
238 AliceにはCのmainに相当するStart Code SegmentというCode Segmentが存在する。<br>
5f961785fb0c add o2s5
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
239 Start Code SegmentはInput Data Segmentが存在しない。
36
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
240 </ul>
35
5f961785fb0c add o2s5
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
241
36
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
242 --Code Segmentの実行方法
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
243 <ul>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
244 <img src="images/execute.png" width=600><br>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
245 </ul>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
246 <ul>
35
5f961785fb0c add o2s5
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
247 このStart Code Segmentをnewし、executeメソッドを呼ぶことでCode Segmentを実行することができる。
36
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
248 </ul>
35
5f961785fb0c add o2s5
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
249
36
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
250 --Code Segmentの記述方法
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
251 <ul>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
252 <img src="images/TestCodeSegment.png" width=600><br>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
253 </ul>
35
5f961785fb0c add o2s5
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
254 ユーザがCode Segmentを記述する際にはCode Segmentを継承する。<br>
5f961785fb0c add o2s5
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
255 runの中に実際にさせたい処理を記述する。
5f961785fb0c add o2s5
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
256
36
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
257 --Topology Manager
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
258 <ul>
35
5f961785fb0c add o2s5
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
259 Alice同士の接続トポロジーを管理する。<br>
5f961785fb0c add o2s5
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
260 トポロジーファイルを読み込み、参加を表明したクライアントに接続すべきクライアントのIPアドレスやポート番号、接続名を送る。
36
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
261 <div align="center">
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
262 <img src="images/topology.png" width=350>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
263 </div>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
264 </ul>
35
5f961785fb0c add o2s5
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
265
36
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
266 --Topology Manager
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
267 <ul>
35
5f961785fb0c add o2s5
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
268 Topology Manager関連の通信は全て、Code Segmentで実装されている。
36
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
269 </ul>
35
5f961785fb0c add o2s5
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
270
36
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
271 --トポロジーファイル
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
272 <ul>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
273 <p>トポロジーファイルはDOT Languageと言う言語で記述される。</p>
35
5f961785fb0c add o2s5
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
274 DOT Languageはプレーンテキストを用いてデータ構造としてのグラフを表現するデータ記述言語の一つ。<br>
5f961785fb0c add o2s5
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
275 DOT Languageのグラフ構造を用いてTopology Node間の接続を表現する。<br>
36
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
276 </ul>
35
5f961785fb0c add o2s5
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
277
36
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
278 --トポロジーファイルの記述方法
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
279 <ul>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
280 <img src="images/topologyfile.png">
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
281 <p>dotコマンドを用いて、グラフの画像ファイルを生成することができるのでトポロジーが正しいか確認することができる。</p>
35
5f961785fb0c add o2s5
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
282
36
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
283 </ul>
35
5f961785fb0c add o2s5
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
284
36
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
285 --トポロジーファイルの確認方法
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
286 <ul>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
287 <p><strong>dot -T png ring.dot -o ring.png</strong></p>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
288 <div align="center">
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
289 <img src="images/dot.png">
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
290 </div>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
291 </ul>
35
5f961785fb0c add o2s5
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
292
36
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
293 --水族館の例題
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
294 <ul>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
295 <p>複数の魚が複数のディスプレイ上を移動する。</p>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
296 <p>魚のうち一匹はクライアントが操作することができる。</p>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
297 <p>トポロジーはツリー状に構成してある。</p>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
298 </ul>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
299 <div align="center">
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
300 <img src="images/aquarium.png" width=800>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
301 </div>
35
5f961785fb0c add o2s5
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
302
36
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
303 <div align="center">
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
304 <img src="images/commnuication.png" width=600>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
305 </div>
35
5f961785fb0c add o2s5
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
306
36
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
307 --性能比較 - 実験概要
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
308 <ul>
35
5f961785fb0c add o2s5
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
309 AliceとFederated Linda で性能比較を行った。<br>
5f961785fb0c add o2s5
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
310 Ring型のトポロジーを構成、メッセージが100周する時間を計測。
5f961785fb0c add o2s5
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
311 1周あたりの平均時間を求めた。
36
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
312 <div align="center">
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
313 <img src="images/ringTest.png">
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
314 </div>
35
5f961785fb0c add o2s5
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
315 パケットのサイズは10byte,10Kbyte,100kbtyeで実験
36
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
316 </ul>
35
5f961785fb0c add o2s5
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
317
36
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
318 --実験環境
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
319 <ul>
35
5f961785fb0c add o2s5
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
320 ブレードサーバー上の仮想マシンによる仮想クラスタ環境を用いて実験した。<br>
36
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
321 <p><strong>ブレードサーバー詳細</strong></p>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
322 <table style="font:Osaka;text-align:right;" border="2" >
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
323 <tr>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
324 <td>マシン台数</td>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
325 <td>8台</td>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
326 </tr>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
327 <tr>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
328 <td>CPU</td>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
329 <td>Intel(R) Xeon(R) X5650 @ 2.67GHz</td>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
330 </tr>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
331 <tr>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
332 <td>物理コア数</td>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
333 <td>12</td>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
334 </tr>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
335 <tr>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
336 <td>論理コア数</td>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
337 <td>24</td>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
338 </tr><tr>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
339 <td>CPU キャッシュ</td>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
340 <td>12MB</td>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
341 </tr>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
342 <tr>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
343 <td>Memory</td>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
344 <td>132GB</td>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
345 </tr>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
346 </table>
35
5f961785fb0c add o2s5
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
347
36
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
348 </ul>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
349 --実験環境
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
350 <ul>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
351 <p><strong>仮想クラスタ詳細</strong></p>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
352 <table style="font:Osaka;text-align:right;" border="2" >
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
353 <tr>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
354 <td>マシン台数</td>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
355 <td>48台</td>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
356 </tr>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
357 <tr>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
358 <td>CPU</td>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
359 <td>Intel(R) Xeon(R) X5650 @ 2.67GHz</td>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
360 </tr>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
361 <tr>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
362 <td>物理コア数</td>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
363 <td>2</td>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
364 </tr>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
365 <tr>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
366 <td>論理コア数</td>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
367 <td>4</td>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
368 </tr><tr>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
369 <td>CPU キャッシュ</td>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
370 <td>12MB</td>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
371 </tr>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
372 <tr>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
373 <td>Memory</td>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
374 <td>8GB</td>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
375 </tr>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
376 </table>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
377 </ul>
35
5f961785fb0c add o2s5
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
378
36
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
379 --実験結果
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
380 <ul>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
381 <strong>10byte</strong><br>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
382 <img src="images/ring10B.png" width=650>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
383 </ul>
35
5f961785fb0c add o2s5
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
384
36
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
385 --実験結果
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
386 <ul>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
387 <strong>10kbyte</strong><br>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
388 <img src="images/ring10KB.png" width=650>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
389 </ul>
35
5f961785fb0c add o2s5
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
390
36
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
391 --実験結果
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
392 <ul>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
393 <strong>100kbyte</strong>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
394 <img src="images/ring100KB.png" width=650><br>
35
5f961785fb0c add o2s5
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
395 データ量が増えると差が縮まっている。これはここの通信の手間の影響が大きことを示している。
36
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
396 </ul>
35
5f961785fb0c add o2s5
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
397
36
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
398 --評価と考察
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
399 <ul>
35
5f961785fb0c add o2s5
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
400 今回の実装はJavaによりCode SegmentとData Segmentに必要なAPIを洗い出すものだった。この実装でも問題をいくつか発見した。<br>
36
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
401 <p><strong>API</strong></p>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
402 <li>Class継承したりData Segmentの作成にFactory objectを使うのはJavaを使う際の技術的な問題</li>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
403 <li>JavaのObject指向な記述が全体を煩雑にしている部分がある</li>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
404 <li>updateはData Segmentの競合的な更新に使われるべきだと思われる</li>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
405 </ul>
35
5f961785fb0c add o2s5
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
406
36
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
407 --評価と考察
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
408 <p><strong>SEDA</strong></p>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
409 <ul>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
410 <li>Federated Lindaに比べ遅い原因の一つはSEDA architectureのせいと思われる</li>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
411 <li>SEDAはスループット重視の実装であり、多段パイプラインのせいでレスポンスが遅れてしまう</li>
35
5f961785fb0c add o2s5
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
412
36
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
413 </ul>
35
5f961785fb0c add o2s5
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
414
36
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
415 --評価と考察
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
416 <ul>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
417 <li>スレッドプールを使わないほうが、Ringの結果は良い</li>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
418 <img src="images/notp.png" width=650><br>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
419 </ul>
35
5f961785fb0c add o2s5
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
420
36
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
421 --評価と考察
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
422 <p><strong>MessagePack</strong></p>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
423 <ul>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
424 <li>今回の実装では単純なMessageの転送時にもMessagePackのdecode/encodeをしているが、overheadになってしまうため、decode/encode抜きに直接操作できるほうが望ましい</li>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
425 <li>Data Segmentの一部の修正をするたびにData Segmentが再構成されているがこれは望ましくない</li>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
426 <li>AliceもCeriumのようにInput Data SegmentとOutput Data SegmentをswapするAPIがあるとよいと思われる</li>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
427 </ul>
35
5f961785fb0c add o2s5
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
428
5f961785fb0c add o2s5
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
429
36
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
430 --評価と考察
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
431 <p><strong>Key</strong></p>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
432 <ul>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
433 <li>分散実装においてはData Segmentの相互参照はKey経由が打倒であるが、並列実装では全てのData SegmentをKey Value Storeに格納するのは、性能的な問題を引き起こす</li>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
434 <li>分散記述と並列記述を分ければ解決するが、2つの記述がかけ離れるのは好ましくない</li>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
435 <li>本来Key Value storeは持続性を持たせる必要がある</li>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
436 </ul>
35
5f961785fb0c add o2s5
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
437
36
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
438 --評価と考察
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
439 <p><strong>Java</strong></p>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
440 <ul>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
441 <li>Data SegmentはCode Segmentがactiveの時のみメモリ上にあり、その最大値はActive Taskの量を見積もればよいのでAliceにGarbage Collectionの機能は必要ない</li>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
442 <li>key Value Store 上のデータは決してGarbage Collectionの対象にはならないが、それがGarbage Collectionに負荷をかける結果となるためAliceとJavaの相性は悪い</li>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
443 </ul>
35
5f961785fb0c add o2s5
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
444
36
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
445 --評価と考察
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
446 <p><strong>拡張性</strong></p>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
447 <ul>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
448 <li>分散アプリケーションのプロトコルは常に変更されるため、Aliceもそれに対応する必要がある</li>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
449 <li>Keyとトポロジーマネージャーをプロトコル毎に別に用意すれば複数のプロトコルを同時に走らせることが可能</li>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
450 <li>Data SegmentとCode Segmentの結びつきは弱いため、Data Segmentに余計な値がある場合、値が足りない場合に適切な値を設定することで古いCode Segmentを変更するとこなしにプロトコルを拡張できる</li>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
451 </ul>
35
5f961785fb0c add o2s5
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
452
36
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
453 --まとめと課題
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
454 <ul>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
455 <p>今回Code SegmentとData Segmentによる並列分散フレームワークのJavaによる実装を示した。実装でしかえられない知見を得ることができた。</p>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
456 <p>今回Javaによる実装を行ったがJavaがAliceの実装に不向きであるということもわかった。</p>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
457 <p>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
458 <li>Code Segment/Data Segmentを見たコンパイラ的アプローチ</li>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
459 <li>実行時最適化</li>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
460 <li>CbCによる実装</li>
35
5f961785fb0c add o2s5
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
461 などが有効、効果的だと思われる。</p>
36
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
462 <p>今回はノード内の並列実行やGPGPUによる並列実行などは考慮していない。将来的にそれを含め実装をしていきたい。</p>
b7fb46ffac37 add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 35
diff changeset
463 </ul>