annotate presen/index.html @ 18:21c68d67d7a5

presen finish
author kazz <kazz@cr.ie.u-ryukyu.ac.jp>
date Tue, 27 Sep 2011 15:27:47 +0900
parents 1ad07d67472f
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
16
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
1 <?xml version="1.0" encoding="utf-8"?>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
3 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
4 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
5 <head>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
6 <title>DataSegment API を用いた分散フレームワークの設計</title>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
7 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
8 <meta name="copyright" content="Copyright &#169; 2010 Kazuki AKAMINE" />
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
9 <meta name="font-size-adjustment" content="-1" />
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
10 <link rel="stylesheet" href="./res/w3c-blue2.css"
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
11 type="text/css" media="screen, projection, print" />
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
12 <script src="./res/slidy.js" type="text/javascript">
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
13 </script>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
14 </head>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
15 <body>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
16 <!-- this defines the slide background -->
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
17
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
18 <div class="background">
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
19 <div class="header">
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
20 <!-- sized and colored via CSS -->
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
21 </div>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
22 <!-- hidden style graphics to ensure they are saved with other content -->
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
23 <img class="hidden" src="./res/bullet.png" alt="" />
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
24 <img class="hidden" src="./res/fold.bmp" alt="" />
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
25 <img class="hidden" src="./res/unfold.bmp" alt="" />
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
26 <img class="hidden" src="./res/fold-dim.bmp" alt="" />
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
27 <img class="hidden" src="./res/nofold-dim.bmp" alt="" />
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
28 <img class="hidden" src="./res/unfold-dim.bmp" alt="" />
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
29 <img class="hidden" src="./res/bullet-fold.gif" alt="" />
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
30 <img class="hidden" src="./res/bullet-unfold.gif" alt="" />
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
31 <img class="hidden" src="./res/bullet-fold-dim.gif" alt="" />
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
32 <img class="hidden" src="./res/bullet-nofold-dim.gif" alt="" />
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
33 <img class="hidden" src="./res/bullet-unfold-dim.gif" alt="" />
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
34
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
35 <div class="footer">
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
36 <!-- modify the following text as appropriate -->
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
37 Presentation Name<br />
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
38 Event, Location, Month Year
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
39 </div>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
40 </div>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
41
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
42 <div class="slide cover">
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
43 <div class="header">
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
44 <div class="block">
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
45 <h1>DataSegment API を用いた分散フレームワークの設計</h1>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
46 <div class="name">琉球大学理工学研究科 情報工学専攻 並列信頼研 M2 赤嶺一樹</div>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
47 </div>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
48 </div>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
49 </div>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
50
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
51 <div class="slide">
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
52 <h1>研究目的</h1>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
53 <p class="subhead">スケーラブルな分散プログラミングモデルの提案</p>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
54 <ul>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
55 <li>ブロードバンド環境やモバイル端末の普及により、ネットワーク上におけるサービスの巨大化は必至である</li>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
56 <li>スケーラビリティ(サービスの大きさが増えてもリソースの追加のみでサービスの質を維持できること)を備えたプログラムを作成するためには、いろいろなプロトコルを提案し、実装し、検証していく必要がある</li>
18
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
57 <li>提案したプロトコルを<strong>シンプルに</strong>実験できるフレームワークが求められている</li>
16
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
58 </div>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
59
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
60 <div class="slide">
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
61 <h1>DataSegment API</h1>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
62 <p class="subhead">DataSegment API を用いた分散フレームワーク</p>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
63 <div style="float: left; width: 55%;">
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
64 <ul>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
65 <li>分散処理を CodeSegment と呼ばれる処理単位で記述し、そこで用いられるデータを DataSegment と呼ばれるデータ単位にまとめる。</li>
17
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
66 <li>必要な DataSegment を CodeSegment に記述していくことで、それらに依存関係が生まれ、自明に実行順序が決まる。</li>
16
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
67 <li>このフレームワークを設計するにあたって、 Federated Linda の実装から得られた見地が非常に役立った。</li>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
68 <li>まず、 Federated Linda について紹介する。</li>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
69 </ul>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
70 </div>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
71 <img src="img/csds.png" style="display: block; margin-right: 5%; width: 40%; float: right;" />
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
72 </div>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
73
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
74 <div class="slide">
17
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
75 <h1>Federated Linda</h1>
16
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
76 <p class="subhead">Federated Linda とは</p>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
77 <div style="float: left; width: 55%;">
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
78 <ul>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
79 <li>本研究室では、分散フレームワーク Federated Linda の開発を行なってきた。</li>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
80 <li>当初、並列言語 Linda を用いてアクセスできる Tuplespace を実装し、ネットワークゲームの通信ライブラリとして使用して来た。</li>
17
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
81 <li>それでは、クライアントが増えれば増えるほど通信がサーバー側に一極集中するため、スケールアウトできないという問題が発生した。</li>
16
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
82 </ul>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
83 </div>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
84 <img src="img/game.png" style="display: block; margin-right: 5%; width: 40%; float: right;" />
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
85 </div>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
86
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
87 <div class="slide">
17
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
88 <h1>Federated Linda</h1>
16
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
89 <p class="subhead">Linda とは</p>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
90 <div style="float: left; margin-left: 2em; width: 59%;">
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
91 <p>
17
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
92 Linda は、以下のAPIを用いてタプルスペース上のデータの更新を行う。
16
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
93 </p>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
94 <table>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
95 <tr>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
96 <th>in(id)</th>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
97 <td>データをタプルから取り出す<br>タプルにデータは残らない</td>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
98 </tr>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
99 <tr>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
100 <th>rd(id)</th>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
101 <td>データをタプルから取り出す<br>タプルにデータが残る</td>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
102 </tr>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
103 <tr>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
104 <th>out(id,data)</th>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
105 <td>データをタプルへ書き込む</td>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
106 </tr>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
107 </table>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
108 </div>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
109 <img src="./img/linda_server.png" style="display: block; width: 27%; margin-right: 10%; float: right;"/>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
110 </div>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
111
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
112 <div class="slide">
17
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
113 <h1>Federated Linda</h1>
16
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
114 <p class="subhead">Federated Linda とは</p>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
115 <div style="display: block; float: left; width: 60%;">
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
116 <p>
17
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
117 タプルスペースを複数個つなげて、タプルの伝搬を基にデータを共有するモデルである。
16
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
118 </p>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
119 <ul>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
120 <li>タプルスペース間には データの伝搬などを管理する Protocol Engine と呼ばれるプログラムが存在</li>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
121 <li>しかしタプルスペースと Protocol Engine は別プロセスであるため、同一サーバー上であってもソケットによる接続が必要だった。
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
122 </li>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
123 </ul>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
124 </div>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
125 <img src="./img/prefedlinda.png" style="display: block; width: 37%; margin: auto; float: right; margin-right: 3%; margin-top: 2%;"/>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
126 </div>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
127
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
128 <div class="slide">
17
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
129 <h1>Federated Linda</h1>
16
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
130 <p class="subhead">Meta Engine とは</p>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
131 <div style="display: block; float: left; width: 60%;">
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
132 <ul>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
133 <li>Meta Engine と呼ばれる Protocol Engine の代替となるプログラムを、タプルスペースと同プロセス上に設置</li>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
134 <li><strong>直接タプルスペースにアクセス可能になった</strong></li>
18
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
135 <li>ここまでが先行研究</li>
16
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
136 </ul>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
137 </div>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
138 <img src="./img/metafedlinda.png" style="display: block; width: 37%; margin: auto; float: right; margin-right: 3%; margin-top: 2%;"/>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
139 </div>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
140
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
141 <div class="slide">
17
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
142 <h1>Federated Linda の問題点</h1>
16
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
143 <p class="subhead">分散アプリケーションの3大構成要素</p>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
144 <div style="display: block; float: left; width: 90%;">
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
145 <ul>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
146 <li><strong>Configuration</strong></li>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
147 <ul>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
148 <li>各ノードの接続やルーティングを行う</li>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
149 </ul>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
150 <li><strong>Protocol Engine</strong></li>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
151 <ul>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
152 <li>Database へアクセスし、他のノードにデータを伝搬する</li>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
153 </ul>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
154 <li><strong>Database</strong></li>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
155 <ul>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
156 <li>通信した内容や計算結果などの各種データの保存領域</li>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
157 </ul>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
158 </ul>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
159 <ul>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
160 <li>しかし、 Federated Linda では Configuration も Protocol Engine 内で記述する必要があった。</li>
17
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
161 <li><strong>Protocol Engine の複雑化を招いていた</strong></li>
16
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
162 </ul>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
163 </div>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
164 </div>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
165
17
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
166 <div class="slide">
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
167 <h1>Federated Linda の問題点</h1>
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
168 <p class="subhead">Protocol Engine の実行方法</p>
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
169 <ul>
18
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
170 <li><strong>Polling based</strong></li>
17
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
171 <ul>
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
172 <li>メインループで定期的に Protocol Engine を実行し、 Tuplespace からデータを取得し、確認する。 </li>
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
173 <li>通信が発生する度、記述した Tuple へのアクセスが発生する</li>
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
174 </ul>
18
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
175 <li><strong>Callback function based</strong></li>
17
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
176 <ul>
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
177 <li>とある Tuple が更新される度にその Tuple に設定された Callback function が実行される。</li>
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
178 <li>その Tuple が更新された時に適切に呼び出される。</li>
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
179 <li>Callback function がツリー状に連鎖されるため、プログラマがツリーを管理する必要がある。</li>
18
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
180 <li>コードをシーケンシャルに読めない。</li>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
181 </ul>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
182 </ul>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
183 </div>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
184
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
185 <div class="slide">
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
186 <h1>DataSegment API を用いた新設計</h1>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
187 <p class="subhead">Geometric Routing</p>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
188 <ul>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
189 <li>分散アプリケーションにおいて Configuration が複雑になるという問題</li>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
190 <li>具体的には <strong>Connection</strong> と <strong>Routing</strong></li>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
191 <li>接続の自由度が高いと、記述するコード量が増えるため、トポロジーを固定的なものに限定することで簡単化</li>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
192 <li>予めトポロジーを構成するロジックを別に用意しておく</li>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
193 <ul>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
194 <li>Ring</li>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
195 <li>Tree</li>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
196 <li>Mesh</li>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
197 <li>etc...</li>
17
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
198 </ul>
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
199 </ul>
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
200 </div>
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
201
18
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
202 <div class="slide">
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
203 <h1>DataSegment API を用いた新設計</h1>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
204 <p class="subhead">Geometric Routing - Connection</p>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
205 <ul>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
206 <li>参加するサーバーのリストとトポロジーを参加するサーバー全体に渡す。</li>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
207 <li>個々のサーバーは、与えられたトポロジーに基づいて、接続を張る。</li>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
208 <li>接続したサーバーには分かりやすい GeoAddress でアクセスできる。</li>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
209 <li>ex) Ring Topology の場合、 RING_RIGHT 、 RING_LEFT などのアクセス可能な Address が得られる。</li>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
210 <li>ex) Hypercube Topology なら、 HC_0010 、 HC_0110 など。</li>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
211 </ul>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
212 </div>
16
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
213
18
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
214 <div class="slide">
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
215 <h1>DataSegment API を用いた新設計</h1>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
216 <p class="subhead">DataSegment API を用いた分散フレームワーク</p>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
217 <div style="float: left; width: 55%;">
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
218 <ul>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
219 <li>分散処理を CodeSegment と呼ばれる処理単位で記述し、そこで用いられるデータを DataSegment と呼ばれるデータ単位にまとめる。</li>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
220 <li>必要な DataSegment を CodeSegment に記述していくことで、それらに依存関係が生まれ、自明に実行順序が決まる。</li>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
221 </ul>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
222 </div>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
223 <img src="img/csds.png" style="display: block; margin-right: 5%; width: 40%; float: right;" />
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
224 </div>
16
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
225
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
226 <div class="slide">
18
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
227 <h1>DataSegment API を用いた新設計</h1>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
228 <p class="subhead">DataSegment の型</p>
16
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
229 <ul>
18
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
230 <li>Federated Linda では、 Tuple の型は単なる byte[] であり、内部のデータ構造を自分で決める必要があった。</li>
16
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
231 <ul>
18
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
232 <li>バイトオーダー</li>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
233 <li>浮動小数点</li>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
234 <li>構造体</li>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
235 </ul>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
236 <li>DataSegment はシリアライズライブラリ MessagePack で扱えるフォーマット(like JSON)で型付けを行う。</li>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
237 <li>list や hash のサポート</li>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
238 <li>データがシリアライズ可能になるため、リモートへのデータ転送も容易に。</li>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
239 </ul>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
240 </div>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
241
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
242 <div class="slide">
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
243 <h1>DataSegment API を用いた新設計</h1>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
244 <p class="subhead">DataSegment の API</p>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
245 <ul>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
246 <li>DataSegment には以下の API が用意されている</li>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
247 <ul>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
248 <li>create</li>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
249 <li>read</li>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
250 <li>update</li>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
251 <li>delete</li>
16
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
252 </ul>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
253 </ul>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
254 </div>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
255
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
256 <div class="slide">
18
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
257 <h1>DataSegment API を用いた新設計</h1>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
258 <p class="subhead">DataSegment の表現</p>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
259 <div style="float: left; width: 55%;">
16
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
260 <ul>
18
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
261 <li>DataSegment はデータ型と ID で表現される。</li>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
262 <li>データ型は MessagePack で表現できる構造体の名前</li>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
263 <li>ID は <strong>GeoAddress</strong> と <strong>LocalAddress</strong> の2つの部分に分けて表現される。</li>
16
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
264 </ul>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
265 </div>
18
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
266 <img src="img/datasegment.png" style="display: block; margin-right: 5%; width: 40%; float: right;" />
16
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
267 </div>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
268
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
269 <div class="slide">
18
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
270 <h1>DataSegment API を用いた新設計</h1>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
271 <p class="subhead">DataSegment の表現 - GeoAddress</p>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
272 <div style="float: left; width: 55%;">
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
273 <ul>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
274 <li>GeoAddress はトポロジー上のデータの所在を示す。</li>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
275 <ul>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
276 <li><strong>Persistent</strong></li>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
277 <ul>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
278 <li>KVS 上にある DataSegment</li>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
279 </ul>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
280 <li><strong>Remote</strong></li>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
281 <ul>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
282 <li>他のサーバー上にある DataSegment</li>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
283 </ul>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
284 <li><strong>Local</strong></li>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
285 <ul>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
286 <li>自サーバー上にある DataSegment</li>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
287 </ul>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
288 </ul>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
289 </ul>
16
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
290 </div>
18
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
291 <img src="img/datasegment.png" style="display: block; margin-right: 5%; width: 40%; float: right;" />
16
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
292 </div>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
293
18
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
294 <div class="slide">
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
295 <h1>DataSegment API を用いた新設計</h1>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
296 <p class="subhead">DataSegment の表現 - LocalAddress</p>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
297 <div style="float: left; width: 55%;">
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
298 <ul>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
299 <li>LocalAddress は、自サーバー上の所在を表すアドレスである。</li>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
300 </ul>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
301 </div>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
302 <img src="img/datasegment.png" style="display: block; margin-right: 5%; width: 40%; float: right;" />
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
303 </div>
16
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
304
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
305
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
306 <div class="slide">
18
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
307 <h1>DataSegment API を用いた新設計</h1>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
308 <p class="subhead">Protocol Engine の代わりに CodeSegment を利用</p>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
309 <div style="float: left; width: 55%;">
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
310 <ul>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
311 <li>Federated Linda における Protocol Engine は、 Callback function で記述し、その接続を管理する機構がなかった。</li>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
312 <li>シングルスレッドでつくられているため、 Protocol Engine の並列実行ができなかった。</li>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
313 </ul>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
314 </div>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
315 <img src="img/dsandcs.png" style="display: block; margin-right: 5%; width: 40%; float: right;" />
16
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
316 </div>
18
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
317
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
318 <div class="slide">
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
319 <h1>DataSegment API を用いた新設計</h1>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
320 <p class="subhead">Protocol Engine の代わりに CodeSegment を利用</p>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
321 <div style="float: left; width: 55%;">
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
322 <ul>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
323 <li>新設計では、 Protocol Engine に代わり、 CodeSegment という単位で処理を記述する。</li>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
324 <li>CodeSegment は InputDataSegment と OutputDataSegment それぞれのリストを持っている。</li>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
325 <li>InputDataSegment は CodeSegment が利用するデータ、 OutputDataSegment は CodeSegment が書きだすデータのことである。</li>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
326 </ul>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
327 </div>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
328 <img src="img/dsandcs.png" style="display: block; margin-right: 5%; width: 40%; float: right;" />
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
329 </div>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
330
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
331 <div class="slide">
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
332 <h1>DataSegment API を用いた新設計</h1>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
333 <p class="subhead">CodeSegment の利用方法</p>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
334 <div style="float: left; width: 55%;">
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
335 <ul>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
336 <li>InputDataSegment と OutputDataSegment の ID を指定</li>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
337 <li>OutputDataSegment の指定された ID が存在しない場合は新しく create を行う。</li>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
338 <li>存在する ID だった場合は、 update を行う。</li>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
339 </ul>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
340 </div>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
341 <img src="img/dsandcs.png" style="display: block; margin-right: 5%; width: 40%; float: right;" />
16
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
342 </div>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
343
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
344 <div class="slide">
18
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
345 <h1>DataSegment API を用いた新設計</h1>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
346 <p class="subhead">CodeSegment の利用方法</p>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
347 <div style="float: left; width: 55%;">
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
348 <ul>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
349 <li>OutputDataSegment が Remote サーバー上に存在する場合は、 Local のバッファーに書き出し、転送する CodeSegment を呼び出すことで表現できる。</li>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
350 </ul>
16
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
351 </div>
18
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
352 <img src="img/remoteds.png" style="display: block; margin-right: 5%; width: 40%; float: right;" />
16
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
353 </div>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
354
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
355 <div class="slide">
18
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
356 <h1>DataSegment API を用いた新設計</h1>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
357 <p class="subhead">CodeSegment の利用方法</p>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
358 <div style="float: left; width: 55%;">
16
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
359 <ul>
18
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
360 <li>TaskManager に CodeSegment を登録する。</li>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
361 <li>TaskManager は必要な InputDataSegment が揃った CodeSegment を Executor に投げる。</li>
16
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
362 </ul>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
363 </div>
18
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
364 <img src="img/dsandcs.png" style="display: block; margin-right: 5%; width: 40%; float: right;" />
16
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
365 </div>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
366
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
367 <div class="slide">
18
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
368 <h1>DataSegment API を用いた新設計</h1>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
369 <p class="subhead">競合的な DataSegment の書き出し</p>
16
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
370 <ul>
18
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
371 <li>DataSegment の update 方法にはいくつか種類がある。</li>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
372 <li><strong>FIFO</strong></li>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
373 <ul>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
374 <li>実行された順に update する</li>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
375 </ul>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
376 <li><strong>Priority</strong></li>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
377 <ul>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
378 <li>優先順位が高いものが update する</li>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
379 </ul>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
380 <li><strong>Queueing</strong></li>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
381 <ul>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
382 <li>上書き update せずに書きこみを Queue に格納して順番に取り出す</li>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
383 </ul>
16
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
384 </ul>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
385 </div>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
386
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
387 <div class="slide">
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
388 <h1>まとめと今後の課題</h1>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
389 <ul>
18
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
390 <li>本研究では、本研究室で開発しているマルチコア向け並列フレームワーク Cerium の新設計のアイディアを分散フレームワークに応用した。</li>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
391 <li>実際に実装して、実験してみないと分からないことが多い。</li>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
392 <li><strong>頑張って実装します。</strong></li>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
393 </ul>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
394 </div>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
395
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
396 <div class="slide">
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
397 <h1>まとめと今後の課題</h1>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
398 <p class="subhead">実装に用いる言語の使い勝手</p>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
399 <ul>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
400 <li><strong>Java, Scala</strong></li>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
401 <ul>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
402 <li>Java や Scala には、 java.util.concurrent などの並列処理用のライブラリが充実しているため、実装が比較的容易。</li>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
403 <li>Scala は言語レベルで並列処理を記述できる。(Actor を使ったメッセージ交換)</li>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
404 </ul>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
405 <li><strong>CbC</strong></li>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
406 <ul>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
407 <li>本研究室で開発している CbC (引数付き goto による継続ベースのC言語拡張)を使えば、 goto で CodeSegment 同士の繋がりを記述できる。</li>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
408 <li>しかし、並列処理サポートがまだなため、 TaskManager などの実行カーネルからまずは作らなくてはならない。</li>
21c68d67d7a5 presen finish
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
409 </ul>
16
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
410 </ul>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
411 </div>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
412
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
413
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
414 <!-- <div class="slide"> -->
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
415 <!-- <h1>ご清聴ありがとうございました</h1> -->
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
416 <!-- <img src="./img/nadeko.png" style="display: block; width: 80%; margin: auto"/> -->
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
417 <!-- </div> -->
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
418
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
419 </body>
f3ad837e1558 add presen init...
kazz <kazz@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
420 </html>