Mercurial > hg > Papers > 2014 > masakoha-thesis > final
changeset 23:a452d8f104bd
divede read rename to Block Read
author | Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp> |
---|---|
date | Sun, 09 Feb 2014 17:14:11 +0900 |
parents | 5358fc3a1d7d |
children | 563a4c69048b |
files | slide/index.html |
diffstat | 1 files changed, 54 insertions(+), 23 deletions(-) [+] |
line wrap: on
line diff
--- a/slide/index.html Sun Feb 09 16:34:35 2014 +0900 +++ b/slide/index.html Sun Feb 09 17:14:11 2014 +0900 @@ -34,13 +34,14 @@ 近年のCPUのほとんどはマルチコアであり、それらの性能を引き出すためには並列プログラミングが必須となっている。そこで当研究室では Cerium Library の開発を行い、提供することによって並列プログラミングを容易にしている。 </p> <p> - 先行研究では Task の並列化によって、プログラム全体の処理速度は向上しているが、ファイル読み込み等の I/O に対して並列に Task が動作するようにはされていない。 + 先行研究では Task の並列化によって、プログラム全体の処理速度は向上している。しかし、ファイル読み込み等の I/O と Task が並列に動作するようにはされていない。 </p> <p> 現状では、ファイルを全て memory に mapping を行ってから Task が走るようになっているので、非常に大きいサイズのファイルを読み込むと、ファイルを memory に mapping するまでの時間がオーバーヘッドになってしまう。 </p> <p> - 本研究では I/O と Task の並列化の設計、実装によってプログラム全体の処理速度、処理効率を上げていく。 + 本研究では I/O と Task が並列に動作するような設計、実装によってプログラム全体の + 処理速度を上げていく。 </p> </article> @@ -119,8 +120,8 @@ <h3>並列処理向け I/O の 設計と実装</h3> <br> <ul> - <li>mmap の仕様</li> - <li>divide read の実装</li> + <li>mmap での実装</li> + <li>Block Read の実装</li> <li>Cerium の改良(IO_0 の追加)</li> </ul> </article> @@ -163,27 +164,38 @@ <article> <h3>mmap の仕様</h3> - <br> - <img src='images/mmap.png' style="height:300px"> + <table border="0" cellpadding="0" cellspacing="0"> + <tbody> + <tr> + <td><img src='images/mmap.png' style="height:350px"></td> + <td> + <ol> + <font size = 5> + <li> + code がシンプル (memory を自分自身で malloc せず、read を書いて読み込まなくていいため) + </li> + <li> + memory より大きなファイルは開けない + </li> + <li> + ファイルを一度で memory に対して mapping する + </li> + <li> + read の先読みがOS依存 + </li> + </font> + </ol> + </td> + </tr> + </tbody> + </table> <ul> - <li> - code がシンプル (read を書いて読み込まなくていいため) - </li> - <li> - memory より大きなファイルは開けない - </li> - <li> - ファイルを一度で memory に対して mapping する - </li> - <li> - read の先読みがOS依存 - </li> </ul> </article> <article> - <h3>divide read の設計</h3> + <h3>Block Read の設計(1/2)</h3> <br> <img src='images/divide_read.png' style="height:250px"> <br> @@ -244,9 +256,28 @@ --> <article> - <h3>divide read の実装(1)</h3> + <h3>Block Read の設計(2/2)</h3> + <br> + <img src='images/blockread.png' style="height:250px"> <br> - <h3 class="yellow">divide Read の実装</h3> + + <ol> + <li> + </li> + <li> + </li> + <li> + </li> + <li> + </li> + </ol> + </article> + + + <article> + <h3>Block Read の実装(2)</h3> + <br> + <h3 class="yellow">Block Read の実装</h3> <pre> HTaskPtr t_read = manager->create_task(READ_TASK); t_read->set_cpu(read_spe_cpu); @@ -266,9 +297,9 @@ </article> <article> - <h3>divide read の実装(2)</h3> + <h3>Block Read の実装(3)</h3> <br> - <h3 class="yellow">divide Read の記述</h3> + <h3 class="yellow"> Block Read の記述</h3> <pre> static int read_task(SchedTask *s, void *rbuf, void *wbuf)