Mercurial > hg > Papers > 2014 > masakoha-thesis > final
changeset 29:f8fc309caf84
add some images
author | Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 11 Feb 2014 20:10:49 +0900 |
parents | 933c669d567e |
children | b18c3fa6f60e |
files | slide/images/IO0blockread.png slide/images/SPEANYblockread.png slide/index.html |
diffstat | 3 files changed, 0 insertions(+), 171 deletions(-) [+] |
line wrap: on
line diff
--- a/slide/index.html Tue Feb 11 20:08:48 2014 +0900 +++ b/slide/index.html Tue Feb 11 20:10:49 2014 +0900 @@ -90,10 +90,7 @@ <li>I/O を含む Task の説明</li> <li>mmap の説明</li> <li>Blocked Read の設計と実装</li> -<<<<<<< local <li>IO専用 therad の追加</li> -======= ->>>>>>> other <li>ベンチマーク</li> </ul> </article> @@ -109,10 +106,6 @@ </ol> </article> -<<<<<<< local -======= - ->>>>>>> other <article> <h3>mmap の説明</h3> <table border="0" cellpadding="0" cellspacing="0"> @@ -203,7 +196,6 @@ </article> --> -<<<<<<< local <article class='smaller'> <h3>Blocked Read の実装</h3> <br> @@ -456,16 +448,9 @@ </ul> </article> -======= ->>>>>>> other <article class='smaller'> -<<<<<<< local <h3>付録 : Block Read の実装(1/2)</h3> -======= - <h3>Blocked Read の実装</h3> ->>>>>>> other <br> -<<<<<<< local <h3 class="yellow">Block Read の実装</h3> <pre> HTaskPtr t_read = manager->create_task(READ_TASK); @@ -478,12 +463,7 @@ t_read->set_param(0,w->fd); // ファイル読み込みの始点 t_read->set_param(1,w->task_spawned*w->division_size); -======= - <img src='images/blockread.png' style="height:250px"> - <br> ->>>>>>> other -<<<<<<< local // run_tasks(manager,w, w->task_blocks, t_read, t_next, w->division_size + w->extra_len); // ここで、ファイルに対して何らかの計算を掛けるような Task を設定する run_tasks(manager,w, w->task_blocks,・・・ ); @@ -494,33 +474,11 @@ t_read->spawn(); </pre> -======= - <ul> - <li> - Task を 1 つずつ生成するのではなく、ブロック単位で生成する。<br> - この図では、1 Block 当たり n 個の Task を生成する。<br> - (1つずつ生成すると、生成された Task で memory を圧迫するため) - </li> - <li> - Task 1つ当たりの読み込む領域を L とする。<br> - Blocked Read Task 1つ当たり、memory に格納する大きさは L × n となる。 - </li> - <li> - Blocked Read Task が読み込み終わるまで、Task Block に wait を掛ける。<br> - (Read Task が格納する前に走ると、まだ格納していない領域を読みこんでしまう。) - </li> - </ul> ->>>>>>> other </article> <article> -<<<<<<< local <h3>付録 : Block Read の実装(2/2)</h3> -======= - <h3>ベンチマーク(1/3)</h3> ->>>>>>> other <br> -<<<<<<< local <h3 class="yellow"> Block Read の記述</h3> <pre> static int @@ -536,137 +494,8 @@ return 0; } </pre> -======= - <h3 class="yellow">実験環境</h3> - <ul> - <li> Mac OS X 10.9.1</li> - <li> 2*2.66 GHz 6-Core Intel Xeon</li> - <li> Memory 16GB 1333MHz DDR3</li> - <li> HHD 1TB</li> - <li> file size : 約 10 GB</li> - <li> - "doing" という文字列が file 内にいくつあるか計算<br> - ("doing" は 25,961,792 個存在する) - </li> - </ul> ->>>>>>> other </article> -<<<<<<< local -======= - <article class = 'smaller'> - <h3>ベンチマーク(2/3)</h3> - <ul> - <li> - file が memory に残っていない状態での測定 - </li> - <li> - one task size 128KByte - </li> - <li> - Task Blocks 48 - </li> - </ul> - <br> - <h3 class="yellow">結果</h3> - <table border="0" cellpadding="0" cellspacing="0"> - <tbody> - <tr> - <td>read mode</td> - <td>cpu num</td> - <td>min time(s)</td> - <td>MAX time(s)</td> - <td>ave time(s)</td> - </tr> - <tr> - <td>mmap</td> - <td>4</td> - <td>135.2</td> - <td>148.9</td> - <td>142.3</td> - </tr> - <tr> - <td>BRead</td> - <td>4</td> - <td>94.5</td> - <td>109.2</td> - <td>98.8</td> - </tr> - - <tr> - <td>mmap</td> - <td>12</td> - <td>147.0</td> - <td>181.8</td> - <td>154.6</td> - </tr> - <tr> - <td>BRead</td> - <td>12</td> - <td>91.6</td> - <td>117.5</td> - <td>99.2</td> - </tr> - </tbody> - </table> - - </article> - - <article class = 'smaller'> - <h3>ベンチマーク(3/3)</h3> - <h3 class="yellow">考察</h3> - <ul> - <li> - mmap より、Blocked Readのほうが % ほど速くなった - </li> - <li> - I/O と Task が分離できた。 - </li> - <li> - </li> - </ul> - - </article> - - <article> - <h3>大学院に進学してしたいこと</h3> - <br> - <ul> - <li> - さらなる 並列処理向け I/O の動作を改善 - </li> - <li> - I/O を利用した、マルチコアソフトウェアシンセサイザーを設計 - </li> - </ul> - - </article> - - <article> - <h3>マルチコアソフトウェアシンセサイザーの設計</h3> - <br> - <ul> - <li> - 作曲をする際にはマシンパワーが必要となることが多い。 - </li> - <li> - ソフトウェアシンセサイザー(以下、シンセサイザー)を使用する際にマシンパワーが必要となる。 - </li> - <li> - シンセサイザーは1つだけで立ち上げる物ではなく、複数立ち上げる物なので、1つ1つの負荷を抑えることがキーポイントとなる。 - </li> - <li> - シンセサイザーは様々なフィルターをかけることで音を作っていくのだが、フィルターを重ねても動作軽量なプログラムを作る。 - </li> - </ul> - </article> ->>>>>>> other </body> </html> - </ul> - - </article> - - </body> -</html>