annotate presen/alice-presen.ind @ 35:5f961785fb0c

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