Mercurial > hg > Papers > 2014 > masakoha-thesis > final
comparison slide/index.html @ 77:5903492cd498
fix slide
author | Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp> |
---|---|
date | Wed, 26 Feb 2014 20:15:41 +0900 |
parents | e13727d01f7a |
children | 0bf2c2ae2bf6 |
comparison
equal
deleted
inserted
replaced
76:e13727d01f7a | 77:5903492cd498 |
---|---|
119 mmap でファイルを読み込むと、ファイルはメモリ上に即座に展開されるわけではない。 | 119 mmap でファイルを読み込むと、ファイルはメモリ上に即座に展開されるわけではない。 |
120 </li> | 120 </li> |
121 <li> | 121 <li> |
122 ファイルがメモリに展開されるタイミングは、そのファイルに対して文字列検索を行うときである。<br><br> | 122 ファイルがメモリに展開されるタイミングは、そのファイルに対して文字列検索を行うときである。<br><br> |
123 <font color=red> | 123 <font color=red> |
124 →つまり、文字列検索が行われるときに初めてメモリにファイルが格納されるので、ファイル読み込みと文字列検索が分離できない。 | 124 →つまり、文字列検索が行われるときに初めてファイルが読み込まれるので、ファイル読み込みと文字列検索が分離できない。 |
125 </font> | 125 </font> |
126 </li> | 126 </li> |
127 </ul> | 127 </ul> |
128 </article> | 128 </article> |
129 | 129 |
136 | 136 |
137 <ul> | 137 <ul> |
138 <li> | 138 <li> |
139 メモリへの呼び出しを自分で書ける(制御できる) | 139 メモリへの呼び出しを自分で書ける(制御できる) |
140 </li> | 140 </li> |
141 <li> | |
142 Read は 連続で動作する。 | |
143 </li> | |
141 </ul> | 144 </ul> |
142 以後、文字列検索を行う処理を Task と定義する。 | 145 以後、文字列検索を行う処理を Task と定義する。 |
143 </article> | 146 </article> |
144 | 147 |
145 <article> | 148 <article> |
148 <img src='images/blockread.png' style="height:250px"align="middle"> | 151 <img src='images/blockread.png' style="height:250px"align="middle"> |
149 <br> | 152 <br> |
150 | 153 |
151 <ul> | 154 <ul> |
152 <li> | 155 <li> |
153 Task を 1 つずつ生成するのではなく、ブロック単位で生成して起動する<br> | 156 Task を 1 つずつではなく、ブロック単位で生成して起動する<br> |
154 (1つずつ生成すると、生成された Task でメモリを圧迫するため) | 157 (1つずつ生成すると、生成された Task でメモリを圧迫するため) |
155 </li> | 158 </li> |
156 <li> | 159 <li> |
157 Blocked Read Task が読み込み終わるまで、Task Blockを待たせる<br> | 160 Blocked Read Task が読み込み終わるまで、Task Blockを待たせる<br> |
158 </li> | 161 </li> |
183 <h3>I/O 専用の therad を追加</h3> | 186 <h3>I/O 専用の therad を追加</h3> |
184 <br> | 187 <br> |
185 <img src='images/IO_0blockread.png' style="height:350px"> | 188 <img src='images/IO_0blockread.png' style="height:350px"> |
186 <ul> | 189 <ul> |
187 <li>Blocked Read Task が最優先されるので、他の Task に割り込まれなくなる<br> | 190 <li>Blocked Read Task が最優先されるので、他の Task に割り込まれなくなる<br> |
191 </li> | |
192 </ul> | |
193 </article> | |
194 | |
195 <article> | |
196 <h3>I/O 専用の therad を使用しない場合</h3> | |
197 <br> | |
198 <img src='images/SPE_ANYblockread.png' style="height:350px"> | |
199 <ul> | |
200 <li>Blocked Read は連続で行われなければならない。<br>しかし、Task が割り振られてしまう可能性がある。 | |
188 </li> | 201 </li> |
189 </ul> | 202 </ul> |
190 </article> | 203 </article> |
191 | 204 |
192 <article> | 205 <article> |
203 </ul> | 216 </ul> |
204 </article> | 217 </article> |
205 | 218 |
206 <article> | 219 <article> |
207 <h3>実験結果</h3> | 220 <h3>実験結果</h3> |
208 <table border="0" cellpadding="0" cellspacing="0"> | 221 <table border="2" cellpadding="0" cellspacing="0"> |
209 <tbody> | 222 <tbody> |
210 <tr> | 223 <tr> |
211 <td>read mode</td> | 224 <td>read mode</td> |
212 <td>CPU num</td> | 225 <td>CPU num</td> |
213 <td>ave time(s)</td> | 226 <td>ave time(s)</td> |
253 <article> | 266 <article> |
254 <h3>まとめ</h3> | 267 <h3>まとめ</h3> |
255 <br> | 268 <br> |
256 <ul> | 269 <ul> |
257 <li> | 270 <li> |
258 I/O を含む Task を実装するときに mmap では不向き | 271 I/O と Task を分離し、同時に動くように改良した。 |
259 </li> | 272 </li> |
260 <li> | 273 <li> |
261 I/O を含む Task では Blocked Read で読み込みを制御したほうが効果的 | 274 I/O 専用の Thread の追加 |
275 <li> | |
276 I/O を含む Task をで並列実装するときに mmap では不向きであり、 | |
277 Blocked Read で読み込みを制御したほうが効果的。 | |
278 </li> | |
279 </ul> | |
280 <h3 class="yellow">今後の課題</h3> | |
281 <ul> | |
282 <li> | |
283 Cerium の API として実装 | |
284 </li> | |
285 <li> | |
286 様々な実装の試み<br>(I/O threads を 2つ、分割 mmap・・・) | |
262 </li> | 287 </li> |
263 </ul> | 288 </ul> |
264 </article> | 289 </article> |
265 | 290 |
266 <article> | 291 <article> |