annotate presen/index.html @ 14:524e601d34c4

fixed
author sugi
date Thu, 25 Apr 2013 03:34:35 +0900
parents 85b22f56ef00
children af044626736a
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
10
5c57e35e19b6 add presen
sugi
parents:
diff changeset
1 <!--
5c57e35e19b6 add presen
sugi
parents:
diff changeset
2 Google IO 2012/2013 HTML5 Slide Template
5c57e35e19b6 add presen
sugi
parents:
diff changeset
3
5c57e35e19b6 add presen
sugi
parents:
diff changeset
4 Authors: Eric Bidelman <ebidel@gmail.com>
5c57e35e19b6 add presen
sugi
parents:
diff changeset
5 Luke Mahé <lukem@google.com>
5c57e35e19b6 add presen
sugi
parents:
diff changeset
6
5c57e35e19b6 add presen
sugi
parents:
diff changeset
7 URL: https://code.google.com/p/io-2012-slides
5c57e35e19b6 add presen
sugi
parents:
diff changeset
8 -->
5c57e35e19b6 add presen
sugi
parents:
diff changeset
9 <!DOCTYPE html>
5c57e35e19b6 add presen
sugi
parents:
diff changeset
10 <html>
5c57e35e19b6 add presen
sugi
parents:
diff changeset
11 <head>
5c57e35e19b6 add presen
sugi
parents:
diff changeset
12 <title></title>
5c57e35e19b6 add presen
sugi
parents:
diff changeset
13 <meta charset="utf-8">
5c57e35e19b6 add presen
sugi
parents:
diff changeset
14 <meta http-equiv="X-UA-Compatible" content="chrome=1">
5c57e35e19b6 add presen
sugi
parents:
diff changeset
15 <!--<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0">-->
5c57e35e19b6 add presen
sugi
parents:
diff changeset
16 <!--<meta name="viewport" content="width=device-width, initial-scale=1.0">-->
5c57e35e19b6 add presen
sugi
parents:
diff changeset
17 <!--This one seems to work all the time, but really small on ipad-->
5c57e35e19b6 add presen
sugi
parents:
diff changeset
18 <!--<meta name="viewport" content="initial-scale=0.4">-->
5c57e35e19b6 add presen
sugi
parents:
diff changeset
19 <meta name="apple-mobile-web-app-capable" content="yes">
5c57e35e19b6 add presen
sugi
parents:
diff changeset
20 <link rel="stylesheet" media="all" href="theme/css/default.css">
5c57e35e19b6 add presen
sugi
parents:
diff changeset
21 <link rel="stylesheet" media="only screen and (max-device-width: 480px)" href="theme/css/phone.css">
5c57e35e19b6 add presen
sugi
parents:
diff changeset
22 <base target="_blank"> <!-- This amazingness opens all links in a new tab. -->
5c57e35e19b6 add presen
sugi
parents:
diff changeset
23 <script data-main="js/slides" src="js/require-1.0.8.min.js"></script>
5c57e35e19b6 add presen
sugi
parents:
diff changeset
24 </head>
5c57e35e19b6 add presen
sugi
parents:
diff changeset
25 <body style="opacity: 0">
5c57e35e19b6 add presen
sugi
parents:
diff changeset
26
5c57e35e19b6 add presen
sugi
parents:
diff changeset
27 <slides class="layout-widescreen">
5c57e35e19b6 add presen
sugi
parents:
diff changeset
28
5c57e35e19b6 add presen
sugi
parents:
diff changeset
29 <slide class="title-slide segue nobackground">
5c57e35e19b6 add presen
sugi
parents:
diff changeset
30 <!--<aside class="gdbar"><img src="images/google_developers_icon_128.png"></aside>
5c57e35e19b6 add presen
sugi
parents:
diff changeset
31 The content of this hgroup is replaced programmatically through the slide_config.json. -->
5c57e35e19b6 add presen
sugi
parents:
diff changeset
32 <hgroup>
5c57e35e19b6 add presen
sugi
parents:
diff changeset
33 <h1 data-config-title><!-- populated from slide_config.json --></h1>
5c57e35e19b6 add presen
sugi
parents:
diff changeset
34 <h2 data-config-subtitle><!-- populated from slide_config.json --></h2>
5c57e35e19b6 add presen
sugi
parents:
diff changeset
35 <p data-config-presenter><!-- populated from slide_config.json --></p>
5c57e35e19b6 add presen
sugi
parents:
diff changeset
36 </hgroup>
5c57e35e19b6 add presen
sugi
parents:
diff changeset
37 </slide>
5c57e35e19b6 add presen
sugi
parents:
diff changeset
38
5c57e35e19b6 add presen
sugi
parents:
diff changeset
39 <slide>
5c57e35e19b6 add presen
sugi
parents:
diff changeset
40 <hgroup>
5c57e35e19b6 add presen
sugi
parents:
diff changeset
41 <h2>研究背景</h2>
5c57e35e19b6 add presen
sugi
parents:
diff changeset
42 </hgroup>
5c57e35e19b6 add presen
sugi
parents:
diff changeset
43 <article>
5c57e35e19b6 add presen
sugi
parents:
diff changeset
44 <ul>
5c57e35e19b6 add presen
sugi
parents:
diff changeset
45 <li>分散プログラムには信頼性とスケーラビリティが必要である</li>
5c57e35e19b6 add presen
sugi
parents:
diff changeset
46 <li>しかし、両方を兼ね備えたプログラムを作成することは容易ではない</li>
5c57e35e19b6 add presen
sugi
parents:
diff changeset
47 <li>そこで、当研究室では信頼性とスケーラビリティの両方をもったプログラムの記述をサポートする、分散フレームワークAliceを開発を行なっている</li>
5c57e35e19b6 add presen
sugi
parents:
diff changeset
48 </ul>
5c57e35e19b6 add presen
sugi
parents:
diff changeset
49 </article>
5c57e35e19b6 add presen
sugi
parents:
diff changeset
50 </slide>
5c57e35e19b6 add presen
sugi
parents:
diff changeset
51
5c57e35e19b6 add presen
sugi
parents:
diff changeset
52 <slide>
5c57e35e19b6 add presen
sugi
parents:
diff changeset
53 <hgroup>
11
57b1c4692d21 minor change
sugi
parents: 10
diff changeset
54 <h2>分散ネットフレームワーク Alice</h2>
57b1c4692d21 minor change
sugi
parents: 10
diff changeset
55 </hgroup>
57b1c4692d21 minor change
sugi
parents: 10
diff changeset
56 <article>
57b1c4692d21 minor change
sugi
parents: 10
diff changeset
57 <ul>
57b1c4692d21 minor change
sugi
parents: 10
diff changeset
58 <li>本研究室で開発を行なっている分散管理フレームワーク</li>
12
sigi
parents: 11
diff changeset
59 <li>並列フレームワーク Ceriumに似たタスク管理機構と先行研究であるFederated Lindaに似たData Segmentの通信構造</li>
sigi
parents: 11
diff changeset
60 <li>データとタスクを細かく分割したDataSegment、CodeSegmentでプログラム記述することで高い並列処理</li>
sigi
parents: 11
diff changeset
61 <li>Aliceの並列性能を確認するためbitonic Sortを実装したが、期待した結果を出すことが出来なかった</li>
sigi
parents: 11
diff changeset
62 <li><FONT Color="red">本論文ではAliceの実行速度の改善を行い、約10% の速度改善に成功した</FONT></li>
11
57b1c4692d21 minor change
sugi
parents: 10
diff changeset
63 </ul>
57b1c4692d21 minor change
sugi
parents: 10
diff changeset
64 </article>
57b1c4692d21 minor change
sugi
parents: 10
diff changeset
65 </slide>
57b1c4692d21 minor change
sugi
parents: 10
diff changeset
66
10
5c57e35e19b6 add presen
sugi
parents:
diff changeset
67
5c57e35e19b6 add presen
sugi
parents:
diff changeset
68 <slide>
5c57e35e19b6 add presen
sugi
parents:
diff changeset
69 <hgroup>
11
57b1c4692d21 minor change
sugi
parents: 10
diff changeset
70 <h2>Code Segment</h2>
57b1c4692d21 minor change
sugi
parents: 10
diff changeset
71 </hgroup>
57b1c4692d21 minor change
sugi
parents: 10
diff changeset
72 <article>
57b1c4692d21 minor change
sugi
parents: 10
diff changeset
73 <ul>
57b1c4692d21 minor change
sugi
parents: 10
diff changeset
74 <li>AliceではCode Segmentと呼ばれる単位でタスクを生成する</li>
57b1c4692d21 minor change
sugi
parents: 10
diff changeset
75 <li>Code Segmentは依存するData Segmentが全て揃うとActiveになる</li>
57b1c4692d21 minor change
sugi
parents: 10
diff changeset
76 <li>Input/Output Data SegmentがCode Segment間の依存関係を自動的に記述する</li>
57b1c4692d21 minor change
sugi
parents: 10
diff changeset
77 </ul>
12
sigi
parents: 11
diff changeset
78 <table width="100%">
sigi
parents: 11
diff changeset
79 <tr>
sigi
parents: 11
diff changeset
80 <td width="50%"><Div Align="Center"><image src="images/dsandcs2.png" width="600"></Div></td>
sigi
parents: 11
diff changeset
81 </tr>
sigi
parents: 11
diff changeset
82 </table>
11
57b1c4692d21 minor change
sugi
parents: 10
diff changeset
83 </article>
57b1c4692d21 minor change
sugi
parents: 10
diff changeset
84 </slide>
57b1c4692d21 minor change
sugi
parents: 10
diff changeset
85
12
sigi
parents: 11
diff changeset
86 <slide>
sigi
parents: 11
diff changeset
87 <hgroup>
sigi
parents: 11
diff changeset
88 <h2>Data Segment</h2>
sigi
parents: 11
diff changeset
89 </hgroup>
sigi
parents: 11
diff changeset
90 <article>
sigi
parents: 11
diff changeset
91 <p>Data Segmentは数値や文字列を構造体的に保持する<br>
sigi
parents: 11
diff changeset
92 Aliceではデータベース的に扱うが、通常とは異なりKey毎にQueueを持つ<br>
sigi
parents: 11
diff changeset
93 以下のAPIでデータの送受信を行う</p>
sigi
parents: 11
diff changeset
94 <table width="100%">
sigi
parents: 11
diff changeset
95 <tr>
sigi
parents: 11
diff changeset
96 <td width="70%">
sigi
parents: 11
diff changeset
97 <FONT size="6"><ul><li>put : DataSegmentの追加</li></ul></font>
sigi
parents: 11
diff changeset
98 <FONT size="6"><ul><li>update : DataSegmentの更新</li></ul></font>
sigi
parents: 11
diff changeset
99 <FONT size="6"><ul><li>peek : DataSegmentの取得</li></ul></font>
sigi
parents: 11
diff changeset
100 <FONT size="6"><ul><li>take : DataSegmentの取得及び削除</li></ul></font>
sigi
parents: 11
diff changeset
101 </td>
sigi
parents: 11
diff changeset
102 <td width="30%"><Div Align="center"><image src="images/datasegment_key.png"></Div></td>
sigi
parents: 11
diff changeset
103 </tr>
sigi
parents: 11
diff changeset
104 </table>
sigi
parents: 11
diff changeset
105 <FONT Color="red">これらのAPIで分散プログラムが記述できる</FONT>
sigi
parents: 11
diff changeset
106 </article>
sigi
parents: 11
diff changeset
107 </slide>
11
57b1c4692d21 minor change
sugi
parents: 10
diff changeset
108
57b1c4692d21 minor change
sugi
parents: 10
diff changeset
109 <slide>
57b1c4692d21 minor change
sugi
parents: 10
diff changeset
110 <hgroup>
10
5c57e35e19b6 add presen
sugi
parents:
diff changeset
111 <h2>実行速度の問題</h2>
5c57e35e19b6 add presen
sugi
parents:
diff changeset
112 </hgroup>
5c57e35e19b6 add presen
sugi
parents:
diff changeset
113 <article>
12
sigi
parents: 11
diff changeset
114 <p>Aliceの並列性能は問題がある<br>
sigi
parents: 11
diff changeset
115 作成した例題により以下のoverheadが見つかっている</p>
10
5c57e35e19b6 add presen
sugi
parents:
diff changeset
116 <ul>
5c57e35e19b6 add presen
sugi
parents:
diff changeset
117 <li>SEDA Architecture</li>
5c57e35e19b6 add presen
sugi
parents:
diff changeset
118 <li>Output Data Segmentの作成時のコピー</li>
5c57e35e19b6 add presen
sugi
parents:
diff changeset
119 </ul>
5c57e35e19b6 add presen
sugi
parents:
diff changeset
120 </article>
5c57e35e19b6 add presen
sugi
parents:
diff changeset
121 </slide>
5c57e35e19b6 add presen
sugi
parents:
diff changeset
122
5c57e35e19b6 add presen
sugi
parents:
diff changeset
123 <slide>
5c57e35e19b6 add presen
sugi
parents:
diff changeset
124 <hgroup>
5c57e35e19b6 add presen
sugi
parents:
diff changeset
125 <h2>SEDA Architecture</h2>
5c57e35e19b6 add presen
sugi
parents:
diff changeset
126 </hgroup>
5c57e35e19b6 add presen
sugi
parents:
diff changeset
127 <article>
5c57e35e19b6 add presen
sugi
parents:
diff changeset
128 <p>マルチコアを活かすためにAliceではSEDA Architectureを採用している。
5c57e35e19b6 add presen
sugi
parents:
diff changeset
129 <br>SEDAとはマルチコアスレッドを用いて大量の接続を管理し、<br>
5c57e35e19b6 add presen
sugi
parents:
diff changeset
130 データを処理毎に分けられたステージと呼ばれるスレッドで処理を行う。</p>
5c57e35e19b6 add presen
sugi
parents:
diff changeset
131 Aliceでは
5c57e35e19b6 add presen
sugi
parents:
diff changeset
132 <ul>
12
sigi
parents: 11
diff changeset
133 <Div Align="Center"><image src="images/seda.png"></Div>
10
5c57e35e19b6 add presen
sugi
parents:
diff changeset
134 </ul>
12
sigi
parents: 11
diff changeset
135 の3つのステージで構成されている。
10
5c57e35e19b6 add presen
sugi
parents:
diff changeset
136 </article>
5c57e35e19b6 add presen
sugi
parents:
diff changeset
137 </slide>
5c57e35e19b6 add presen
sugi
parents:
diff changeset
138
5c57e35e19b6 add presen
sugi
parents:
diff changeset
139 <slide>
5c57e35e19b6 add presen
sugi
parents:
diff changeset
140 <hgroup>
12
sigi
parents: 11
diff changeset
141 <h2>SEDA Architectureの実装</h2>
10
5c57e35e19b6 add presen
sugi
parents:
diff changeset
142 </hgroup>
5c57e35e19b6 add presen
sugi
parents:
diff changeset
143 <article>
12
sigi
parents: 11
diff changeset
144 <ul>
sigi
parents: 11
diff changeset
145 <code><pre>
sigi
parents: 11
diff changeset
146 while(ture){
sigi
parents: 11
diff changeset
147  Command cmd = linkedBlockingQueue.take()
sigi
parents: 11
diff changeset
148 Command result = runCommand(cmd);
sigi
parents: 11
diff changeset
149 nextLinkedBlockingQueue.put(result);
sigi
parents: 11
diff changeset
150 }
sigi
parents: 11
diff changeset
151 </pre></code>
14
sugi
parents: 12
diff changeset
152 <p>今回SEDAは上記のソースコードのように実装されている</p>
sugi
parents: 12
diff changeset
153 <p>LinkedBlockingQueueにCommandが次々と投げられる<br>
12
sigi
parents: 11
diff changeset
154 各ステージでQueueからCommandが取得され、Commandが実行され、<br>
14
sugi
parents: 12
diff changeset
155 その結果が次のステージのQueueに投げられる<br>
sugi
parents: 12
diff changeset
156 もし、Queueが空の場合にはブロッキングされenqueueされるまで待つ</p>
sugi
parents: 12
diff changeset
157 上記のコードを複数作成することでSEDAを形成している
sugi
parents: 12
diff changeset
158
12
sigi
parents: 11
diff changeset
159 </ul>
10
5c57e35e19b6 add presen
sugi
parents:
diff changeset
160 </article>
5c57e35e19b6 add presen
sugi
parents:
diff changeset
161 </slide>
5c57e35e19b6 add presen
sugi
parents:
diff changeset
162
5c57e35e19b6 add presen
sugi
parents:
diff changeset
163 <slide>
5c57e35e19b6 add presen
sugi
parents:
diff changeset
164 <hgroup>
5c57e35e19b6 add presen
sugi
parents:
diff changeset
165 <h2>LinkedBlockingQueue</h2>
5c57e35e19b6 add presen
sugi
parents:
diff changeset
166 </hgroup>
5c57e35e19b6 add presen
sugi
parents:
diff changeset
167 <article>
11
57b1c4692d21 minor change
sugi
parents: 10
diff changeset
168 <p>SEDA Architectureを実装するにあたり、LinkedBlockingQueueを使用している。</p>
57b1c4692d21 minor change
sugi
parents: 10
diff changeset
169 特徴として
10
5c57e35e19b6 add presen
sugi
parents:
diff changeset
170 <ul>
5c57e35e19b6 add presen
sugi
parents:
diff changeset
171 <li>LinkedBlockingQueueは片方向の連結リストを使用したQueue</li>
5c57e35e19b6 add presen
sugi
parents:
diff changeset
172 <li>enqueue/dequeueの操作時は排他制御は別々のlockで管理</li>
5c57e35e19b6 add presen
sugi
parents:
diff changeset
173 <li>enqueueとdequeueの操作を並列に行うことが可能(スループットに優れている)</li>
5c57e35e19b6 add presen
sugi
parents:
diff changeset
174 </ul>
11
57b1c4692d21 minor change
sugi
parents: 10
diff changeset
175 ただし、enqueue時にNodeオブジェクトの生成操作が発生するため、<br>
57b1c4692d21 minor change
sugi
parents: 10
diff changeset
176 enqueue操作の処理コストが特に高い。
10
5c57e35e19b6 add presen
sugi
parents:
diff changeset
177 </article>
5c57e35e19b6 add presen
sugi
parents:
diff changeset
178 </slide>
5c57e35e19b6 add presen
sugi
parents:
diff changeset
179
5c57e35e19b6 add presen
sugi
parents:
diff changeset
180 <slide>
5c57e35e19b6 add presen
sugi
parents:
diff changeset
181 <hgroup>
12
sigi
parents: 11
diff changeset
182 <h2>SEDAの問題点</h2>
10
5c57e35e19b6 add presen
sugi
parents:
diff changeset
183 </hgroup>
5c57e35e19b6 add presen
sugi
parents:
diff changeset
184 <article>
12
sigi
parents: 11
diff changeset
185 <p>SEDAは多段のパイプラインによって構成されるためレスポンスが遅れる。<br>
sigi
parents: 11
diff changeset
186 スループット重視の実装であるため、レスポンスが要求される<br>
sigi
parents: 11
diff changeset
187 Sortのようなプログラムに向いていない。<br>
sigi
parents: 11
diff changeset
188 非力なマシーンでは、スレッドを切り替えが頻繁に起こり、<br>
sigi
parents: 11
diff changeset
189 レスポンスを下げる要因になる。</p>
sigi
parents: 11
diff changeset
190 </article>
sigi
parents: 11
diff changeset
191 <hgroup>
sigi
parents: 11
diff changeset
192 <h2>改善案</h2>
sigi
parents: 11
diff changeset
193 </hgroup>
sigi
parents: 11
diff changeset
194 <article>
sigi
parents: 11
diff changeset
195 Sortのようなにレスポンスが必要なプログラムのために、
sigi
parents: 11
diff changeset
196 SEDAのステージ上ではなく、直接Commandを実行するようなAPIを提供する
sigi
parents: 11
diff changeset
197
10
5c57e35e19b6 add presen
sugi
parents:
diff changeset
198 </article>
5c57e35e19b6 add presen
sugi
parents:
diff changeset
199 </slide>
5c57e35e19b6 add presen
sugi
parents:
diff changeset
200
5c57e35e19b6 add presen
sugi
parents:
diff changeset
201 <slide>
5c57e35e19b6 add presen
sugi
parents:
diff changeset
202 <hgroup>
12
sigi
parents: 11
diff changeset
203 <h2>Output Data Segment作成時のコピー</h2>
10
5c57e35e19b6 add presen
sugi
parents:
diff changeset
204 </hgroup>
5c57e35e19b6 add presen
sugi
parents:
diff changeset
205 <article>
12
sigi
parents: 11
diff changeset
206 Input Data SegmentはCodeSegmentによって変更され、Output Data Segmentとして出力される。<br>
sigi
parents: 11
diff changeset
207 この際、変更されたDataSegmentをコピーし、新しくDataSegmentを作成する。<br>
sigi
parents: 11
diff changeset
208 このコピーにかかる時間がoverheadとなっている。
sigi
parents: 11
diff changeset
209 <Div Align="Center"><image src="images/put.png"></Div>
sigi
parents: 11
diff changeset
210 putはInput Data SegmentをコピーしてOutput Data Segmentを作成する
11
57b1c4692d21 minor change
sugi
parents: 10
diff changeset
211 </article>
57b1c4692d21 minor change
sugi
parents: 10
diff changeset
212 </slide>
57b1c4692d21 minor change
sugi
parents: 10
diff changeset
213
12
sigi
parents: 11
diff changeset
214
11
57b1c4692d21 minor change
sugi
parents: 10
diff changeset
215 <slide>
57b1c4692d21 minor change
sugi
parents: 10
diff changeset
216 <hgroup>
57b1c4692d21 minor change
sugi
parents: 10
diff changeset
217 <h2>問題に対する改善案</h2>
57b1c4692d21 minor change
sugi
parents: 10
diff changeset
218 </hgroup>
57b1c4692d21 minor change
sugi
parents: 10
diff changeset
219 <article>
12
sigi
parents: 11
diff changeset
220
sigi
parents: 11
diff changeset
221 <p>並列タスク管理フレームワークCeriumでもコピーによるoverheadがあり、Input Data SegmentとOutput Data Segmentをswapすることで解決している。<br>Aliceでも同様の方法で解決する。</p>
sigi
parents: 11
diff changeset
222 <Div Align="Center"><image src="images/flip.png"></Div>
sigi
parents: 11
diff changeset
223 flipではInput Data SegmentとOutput Data Segmentを入れ替え、必要な部分だけ変更を加えるので無駄なコピーを抑える事ができる
10
5c57e35e19b6 add presen
sugi
parents:
diff changeset
224
12
sigi
parents: 11
diff changeset
225 </ul>
10
5c57e35e19b6 add presen
sugi
parents:
diff changeset
226 </article>
5c57e35e19b6 add presen
sugi
parents:
diff changeset
227 </slide>
5c57e35e19b6 add presen
sugi
parents:
diff changeset
228
5c57e35e19b6 add presen
sugi
parents:
diff changeset
229 <slide>
5c57e35e19b6 add presen
sugi
parents:
diff changeset
230 <hgroup>
11
57b1c4692d21 minor change
sugi
parents: 10
diff changeset
231 <h2>実験概要</h2>
10
5c57e35e19b6 add presen
sugi
parents:
diff changeset
232 </hgroup>
5c57e35e19b6 add presen
sugi
parents:
diff changeset
233 <article>
12
sigi
parents: 11
diff changeset
234 <p>今回行った改善による効果を調べるために3つの実験を行った。<br>
sigi
parents: 11
diff changeset
235 実験はSEDAの効果が出るようにメニコアのマシンで行った</p>
11
57b1c4692d21 minor change
sugi
parents: 10
diff changeset
236 <ul>
57b1c4692d21 minor change
sugi
parents: 10
diff changeset
237 <li>SEDAの有無</li>
57b1c4692d21 minor change
sugi
parents: 10
diff changeset
238 <p>Data Segmentを取得するCode Segmentが10000回実行されるまでの時間を測定</p>
57b1c4692d21 minor change
sugi
parents: 10
diff changeset
239 <li>flipとputの比較</li>
12
sigi
parents: 11
diff changeset
240 <p>既存のAPIの<em>put</em>と新しく追加したAPIである<em>flip</em>を使用して10000回、Data Segmentを追加されるまでの時間を測定</p>
11
57b1c4692d21 minor change
sugi
parents: 10
diff changeset
241 <li>Bitonic Sortによる比較</li>
12
sigi
parents: 11
diff changeset
242 <p>今回行った改善でBitonic Sortがどの程度速度が改善されたか測定する。<br>
sigi
parents: 11
diff changeset
243 要素は100万個、10個に分割して実験した</p>
11
57b1c4692d21 minor change
sugi
parents: 10
diff changeset
244 </ul>
57b1c4692d21 minor change
sugi
parents: 10
diff changeset
245 </article>
57b1c4692d21 minor change
sugi
parents: 10
diff changeset
246 </slide>
57b1c4692d21 minor change
sugi
parents: 10
diff changeset
247
57b1c4692d21 minor change
sugi
parents: 10
diff changeset
248
57b1c4692d21 minor change
sugi
parents: 10
diff changeset
249 <slide>
57b1c4692d21 minor change
sugi
parents: 10
diff changeset
250 <hgroup>
57b1c4692d21 minor change
sugi
parents: 10
diff changeset
251 <h2>実験結果</h2>
57b1c4692d21 minor change
sugi
parents: 10
diff changeset
252 </hgroup>
57b1c4692d21 minor change
sugi
parents: 10
diff changeset
253 <article>
12
sigi
parents: 11
diff changeset
254 <p>実験結果は100回行った平均</p>
11
57b1c4692d21 minor change
sugi
parents: 10
diff changeset
255 <ul>
57b1c4692d21 minor change
sugi
parents: 10
diff changeset
256 <table>
12
sigi
parents: 11
diff changeset
257 <tr width="100%">
sigi
parents: 11
diff changeset
258 <th width="50%">SEDA</th><th width="25%">あり</th><th width="25%">なし</th>
10
5c57e35e19b6 add presen
sugi
parents:
diff changeset
259 </tr>
5c57e35e19b6 add presen
sugi
parents:
diff changeset
260 <tr>
11
57b1c4692d21 minor change
sugi
parents: 10
diff changeset
261 <td>実行時間(ms)</td><td>27.72</td><td>7.53</td>
10
5c57e35e19b6 add presen
sugi
parents:
diff changeset
262 </tr>
11
57b1c4692d21 minor change
sugi
parents: 10
diff changeset
263 </table>
57b1c4692d21 minor change
sugi
parents: 10
diff changeset
264 </ul>
57b1c4692d21 minor change
sugi
parents: 10
diff changeset
265 <ul>
57b1c4692d21 minor change
sugi
parents: 10
diff changeset
266 <table>
12
sigi
parents: 11
diff changeset
267 <tr width="100%">
sigi
parents: 11
diff changeset
268 <th width="50%">API</th><th width="25%">flip</th><th width="25%">put</th>
10
5c57e35e19b6 add presen
sugi
parents:
diff changeset
269 </tr>
5c57e35e19b6 add presen
sugi
parents:
diff changeset
270 <tr>
11
57b1c4692d21 minor change
sugi
parents: 10
diff changeset
271 <td>実行時間(ms)</td><td>61.12</td><td>65.24</td>
57b1c4692d21 minor change
sugi
parents: 10
diff changeset
272 </tr>
57b1c4692d21 minor change
sugi
parents: 10
diff changeset
273 </table>
57b1c4692d21 minor change
sugi
parents: 10
diff changeset
274 </ul>
57b1c4692d21 minor change
sugi
parents: 10
diff changeset
275 <ul>
57b1c4692d21 minor change
sugi
parents: 10
diff changeset
276 <table>
12
sigi
parents: 11
diff changeset
277 <tr width="100%">
sigi
parents: 11
diff changeset
278 <th width="50%"></th><th width="25%">改善前</th><th width="25%">改善後</th>
10
5c57e35e19b6 add presen
sugi
parents:
diff changeset
279 </tr>
5c57e35e19b6 add presen
sugi
parents:
diff changeset
280 <tr>
11
57b1c4692d21 minor change
sugi
parents: 10
diff changeset
281 <td>実行時間(ms)</td><td>199.38</td><td>184.64</td>
10
5c57e35e19b6 add presen
sugi
parents:
diff changeset
282 </tr>
5c57e35e19b6 add presen
sugi
parents:
diff changeset
283 </table>
11
57b1c4692d21 minor change
sugi
parents: 10
diff changeset
284 Bitonic Sortの例題では約10%程度改善された
57b1c4692d21 minor change
sugi
parents: 10
diff changeset
285 </ul>
10
5c57e35e19b6 add presen
sugi
parents:
diff changeset
286 </article>
5c57e35e19b6 add presen
sugi
parents:
diff changeset
287 </slide>
5c57e35e19b6 add presen
sugi
parents:
diff changeset
288
5c57e35e19b6 add presen
sugi
parents:
diff changeset
289 <slide>
5c57e35e19b6 add presen
sugi
parents:
diff changeset
290 <hgroup>
11
57b1c4692d21 minor change
sugi
parents: 10
diff changeset
291 <h2>まとめ</h2>
10
5c57e35e19b6 add presen
sugi
parents:
diff changeset
292 </hgroup>
11
57b1c4692d21 minor change
sugi
parents: 10
diff changeset
293 <article>
57b1c4692d21 minor change
sugi
parents: 10
diff changeset
294 <ul>
14
sugi
parents: 12
diff changeset
295 <li>今回行った改善により、<FONT color="red">最大4倍程度速度を期待することが出来る</FONT></li>
sugi
parents: 12
diff changeset
296 <li>Aliceに要求される速度は、少なくともシングルスレッドで書かれたプログラムと同じ程度</li>
sugi
parents: 12
diff changeset
297 <li>分散環境下ではFederated Lindaと同じ速度を目標としている</li>
sugi
parents: 12
diff changeset
298 <li>今回の実験からSEDAに問題があることが明らかになったのでRemoteにおいてもSEDAの使用を選択できるようにする</li>
11
57b1c4692d21 minor change
sugi
parents: 10
diff changeset
299 <li>また、Aliceが抱える問題は速度だけではない</li>
57b1c4692d21 minor change
sugi
parents: 10
diff changeset
300 <li>信頼性の問題や永続性の問題についても改善をしなければならない</li>
57b1c4692d21 minor change
sugi
parents: 10
diff changeset
301 </ul>
10
5c57e35e19b6 add presen
sugi
parents:
diff changeset
302 </article>
5c57e35e19b6 add presen
sugi
parents:
diff changeset
303 </slide>
5c57e35e19b6 add presen
sugi
parents:
diff changeset
304
12
sigi
parents: 11
diff changeset
305
10
5c57e35e19b6 add presen
sugi
parents:
diff changeset
306 <slide class="backdrop"></slide>
5c57e35e19b6 add presen
sugi
parents:
diff changeset
307
5c57e35e19b6 add presen
sugi
parents:
diff changeset
308 </slides>
5c57e35e19b6 add presen
sugi
parents:
diff changeset
309
5c57e35e19b6 add presen
sugi
parents:
diff changeset
310 <script>
5c57e35e19b6 add presen
sugi
parents:
diff changeset
311 var _gaq = _gaq || [];
5c57e35e19b6 add presen
sugi
parents:
diff changeset
312 _gaq.push(['_setAccount', 'UA-XXXXXXXX-1']);
5c57e35e19b6 add presen
sugi
parents:
diff changeset
313 _gaq.push(['_trackPageview']);
5c57e35e19b6 add presen
sugi
parents:
diff changeset
314
5c57e35e19b6 add presen
sugi
parents:
diff changeset
315 (function() {
5c57e35e19b6 add presen
sugi
parents:
diff changeset
316 var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
5c57e35e19b6 add presen
sugi
parents:
diff changeset
317 ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
5c57e35e19b6 add presen
sugi
parents:
diff changeset
318 var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
5c57e35e19b6 add presen
sugi
parents:
diff changeset
319 })();
5c57e35e19b6 add presen
sugi
parents:
diff changeset
320 </script>
5c57e35e19b6 add presen
sugi
parents:
diff changeset
321
5c57e35e19b6 add presen
sugi
parents:
diff changeset
322 <!--[if IE]>
5c57e35e19b6 add presen
sugi
parents:
diff changeset
323 <script src="http://ajax.googleapis.com/ajax/libs/chrome-frame/1/CFInstall.min.js"></script>
5c57e35e19b6 add presen
sugi
parents:
diff changeset
324 <script>CFInstall.check({mode: 'overlay'});</script>
5c57e35e19b6 add presen
sugi
parents:
diff changeset
325 <![endif]-->
5c57e35e19b6 add presen
sugi
parents:
diff changeset
326 </body>
5c57e35e19b6 add presen
sugi
parents:
diff changeset
327 </html>