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>