Mercurial > hg > Papers > 2012 > sugi-prosym
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 |
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 | 2 |
36
b7fb46ffac37
add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
35
diff
changeset
|
3 --author: 河野 真治, 杉本 優 |
35 | 4 |
39 | 5 --並列分散フレームワーク |
6 | |
7 本研究室では分散プログラミングと並列プログラミングのツールを開発してきた。 | |
8 | |
9 分散プログラミング用のFederated Lidna | |
10 並列プログラミング用のCerium | |
11 | |
12 これらの経験から並列分散を統一的に扱えるプログラミングフレームワークを考えたい。 | |
13 | |
14 --並列分散フレームワークには何が求められるのか | |
15 | |
16 並列実行単位の記述 | |
17 プロトコルの記述 | |
18 実用的な実装 | |
19 実験環境の用意 | |
20 多言語対応 | |
21 検証や証明への対応 | |
22 | |
23 --Federated Linda | |
24 | |
25 データの塊である Tuple を使って通信するフレームワーク | |
26 | |
27 in Tuple を取り出す | |
28 out Tuple 書きだす | |
35 | 29 |
39 | 30 --Federated Linda の Pros and Cons |
31 | |
32 --Cerium | |
33 | |
34 Task 単位で並列実行するツール | |
35 | |
36 --Cerium の Pros and Cons | |
37 | |
38 --Data segment と Code Segment | |
39 | |
40 --Java Implmentation : Alice | |
41 | |
42 --CS/DS API | |
43 | |
44 --Alice Architecture | |
45 | |
46 --Sample Application | |
47 | |
48 --Experiment | |
49 | |
50 --Ring | |
51 | |
52 | |
53 | |
54 | |
55 | |
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 | 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 | 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 | 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 | 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 | 105 |
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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 153 データがput、updateされる際に要求したデータがあるかどうかを再びチェックする。 |
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 | 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 | 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 | 178 MessagePack for javaのValueオブジェクトを使用</p> |
179 MessagePackのバイナリにシリアライズできる型のみで | |
180 構成されているため自己記述式のデータ形式 | |
36
b7fb46ffac37
add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
35
diff
changeset
|
181 </ul> |
35 | 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 | 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 | 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 | 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 | 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 | 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 | 212 Receiverの作成<br> |
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 | 217 第1引数 マシン名<br> |
218 第2引数 Data Segmentに関連付けられているKEY<br> | |
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 | 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 | 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 | 228 第1引数 マシン名<br> |
229 第2引数 Data Segmentに関連付けるKEY<br> | |
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 | 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 | 238 AliceにはCのmainに相当するStart Code SegmentというCode Segmentが存在する。<br> |
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 | 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 | 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 | 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 | 254 ユーザがCode Segmentを記述する際にはCode Segmentを継承する。<br> |
255 runの中に実際にさせたい処理を記述する。 | |
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 | 259 Alice同士の接続トポロジーを管理する。<br> |
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 | 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 | 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 | 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 | 274 DOT Languageはプレーンテキストを用いてデータ構造としてのグラフを表現するデータ記述言語の一つ。<br> |
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 | 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 | 282 |
36
b7fb46ffac37
add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
35
diff
changeset
|
283 </ul> |
35 | 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 | 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 | 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 | 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 | 309 AliceとFederated Linda で性能比較を行った。<br> |
310 Ring型のトポロジーを構成、メッセージが100周する時間を計測。 | |
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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 395 データ量が増えると差が縮まっている。これはここの通信の手間の影響が大きことを示している。 |
36
b7fb46ffac37
add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
35
diff
changeset
|
396 </ul> |
35 | 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 | 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 | 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 | 412 |
36
b7fb46ffac37
add ui directory to o2s5 directory
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
35
diff
changeset
|
413 </ul> |
35 | 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 | 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 | 428 |
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 | 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 | 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 | 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 | 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> |