Mercurial > hg > Papers > 2014 > masakoha-sigos
changeset 37:b5bb18a528e4
push
author | Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 12 May 2014 20:19:25 +0900 |
parents | 43206ed680f0 |
children | b148e2c6b527 |
files | presen/s6/index.html |
diffstat | 1 files changed, 79 insertions(+), 62 deletions(-) [+] |
line wrap: on
line diff
--- a/presen/s6/index.html Mon May 12 19:18:55 2014 +0900 +++ b/presen/s6/index.html Mon May 12 20:19:25 2014 +0900 @@ -114,36 +114,47 @@ <div class='slide'> <h2>I/Oを含むアプリケーションの並列化</h2> + <p> ファイル内の文字列検索を行うようなプログラムを走らせたとき、 <font color = red>文字列検索よりもファイルの読み込みに時間がかかる</font>ことが多い。 + </p> - I/O は、ディスクからの読み込む時間がかかる。<br> - -> <font color = red>I/O をどうにか速くできないか?</font> <p> - Cerium : <br> - CellおよびLinux、 Mac OS X 上で動く並列プログラミングフレームワーク + I/O は、ディスクからの読み込む時間がかかる。<br> + -> <font color = red>I/O をどのように実装したら速くできるか?</font><br> </p> + + <p> + そこで本研究では、 + </p> + <img src='images/resources.png' style="height:170px" align="middle"> <ul> - <li><font color=red>ファイル読み込みとアプリケーションの分離</font> </li> + <li><font color=red>ファイル読み込みとアプリケーションの分離するための実装法</font> </li> <li><font color=red>I/O専用の Threadを追加</font></li> + <li><font color=red>様々なファイル読み込み方法と様々な実験環境にて計測</font></li> </ul> - 様々なファイル読み込み方法と様々な実験環境にて計測を行った。 + <p> + 以上3点を行った。 + </p> </div> <div class='slide'> <h2>Cerium Task Manager の構造</h2> + <p> + Cerium Task Manager: <br> + CellおよびLinux、 Mac OS X 上で動く並列プログラミングフレームワーク + </p> <table border="0" cellpadding="0" cellspacing="0"> <tbody> <tr> <td><img src='images/ceriumtaskmanager.png' style="height:280px"></td> <td> <ol> - <li>Taskを生成</li> + <li>User が Taskを生成</li> <li>依存関係のチェック</li> - <li>Schedulerに転送</li> - <li>並列実行</li> + <li>各Schedulerに Task を転送</li> </ol> </td> </tr> @@ -161,7 +172,7 @@ <div class='slide'> <h2>Block 単位の読み込みと並列計算</h2> <br> - <img src='images/includeIOTask.png' style="height:270px" align="middle"> + <img src='images/includeIOTask.png' style="height:330px" align="middle"> <ol> <li>ファイルをある一定の大きさずつ読み込む</li> <li>読み込んだテキストファイルに対して、それぞれ WordCount を行う</li> @@ -172,7 +183,7 @@ <div class='slide'> <h2>mmap の特徴</h2> - <img src='images/mmap.png' style="height:250px" align="middle" > + <img src='images/mmap.png' style="height:300px" align="middle" > <br> <ul> @@ -207,7 +218,7 @@ <div class='slide'> <h2>Blocked Read の実装</h2> <br> - <img src='images/blockread.png' style="height:200px"align="middle"> + <img src='images/blockread.png' style="height:300px"align="middle"> <br> <ul> @@ -235,7 +246,7 @@ <div class='slide'> <h2>I/O 専用 thread での Blocked Read の実装</h2> <br> - <img src='images/IO_0blockread.png' style="height:300px"> + <img src='images/IO_0blockread.png' style="height:350px"> <ul> <li>Word Count とは別に Thread を割り当てているので、Blocked Read Task 間に Word Count が割り込まれることがない。</li> <li>Thread レベルで割り込まれないように、pthread_setschedparam にて IO_0 の priority を設定している。<br> @@ -265,8 +276,9 @@ <p>全ての実験のfile size は 1GB である。</p> <p>表内の数値の単位は全て秒である。</p> - +<p> Blocked read Task 1つ当たりの読み込み量 : 16kbyte * 48 +</p> <table border="2" cellpadding="0" cellspacing="0"> <tbody> <tr> @@ -315,6 +327,51 @@ </tr> </tbody> </table> + +<ul> + <li> + <font color=red>CPU 4 以上</font>からはほとんど同じ実行結果を示した。 + </li> + <li> + 実行時間のほとんどは I/O の読み込みの時間となっている。<br> + read だけの時間を測定すると、XX.XXX 秒となった。 + </li> +</ul> + +<p> +ファイルがキャッシュに入った時の実行速度は以下のようになった。 +</p> + +<table border="2" cellpadding="0" cellspacing="0"> + <tbody> + <tr> + <td align=center>read mode \ CPU num</td> + <td></td> + <td align=center>time(s)</td> + </tr> + <tr> + <td align=center>mmap</td> + <td></td> + <td><div align=right>0.854</div></td> + </tr> + <tr> + <td align=center>read</td> + <td></td> + <td><div align=right>1.487</div></td> + </tr> + <tr> + <td align=center>Blocked Read(SPE_ANY)</td> + <td></td> + <td><div align=right>0.847</div></td> + </tr> + <tr> + <td align=center>Blocked Read(IO_0)</td> + <td></td> + <td><div align=right>0.866</div></td> + </tr> + </tbody> +</table> + </div> <div class='slide'> @@ -349,15 +406,12 @@ <td align=center>Blocked Read(IO_0)</td> <td></td> <td><div align=right>94.496</div></td> - <!-- - <td bgcolor="#ffffcc">Blocked Read(IO_0)</td> - <td bgcolor="#ffffcc">99.2</td> - --> </tr> </tbody> </table> </div> + <div class='slide'> <h2>実験(3/5): Blocked Read size を変更してみる</h2> @@ -548,50 +602,13 @@ </div> <div class='slide'> -<h2>実験 : Word Count を GPU に走らせてみた</h2> -<p>実験環境</p> -<ul> - <li>Mac</li> -</ul> - -<table border="2" cellpadding="0" cellspacing="0"> - <tbody> - <!-- align = right 寄ってくれない(´;ω;`)ウッ…--> - <tr> - <td>read mode</td> - <td></td> - <td></td> - </tr> - <tr> - <td>mmap</td> - <td></td> - <td><div align=right>103.410</div></td> - </tr> - <tr> - <td>read</td> - <td></td> - <td><div align=right>106.050</div></td> - </tr> - <tr> - <td>Blocked Read(SPE_ANY)</td> - <td></td> - <td><div align=right>94.626</div></td> - </tr> - <tr> - <td>Blocked Read(IO_0)</td> - <td></td> - <td><div align=right>94.496</div></td> - <!-- - <td bgcolor="#ffffcc">Blocked Read(IO_0)</td> - <td bgcolor="#ffffcc">99.2</td> - --> - </tr> - </tbody> -</table> - </div> - - <div class='slide'> - <h2>考察</h2> + <h2>考察</h2> + <p> + mmap での実行時は、Blocked Read size を小さくしたほうが速度が向上した。これは、まとめと読み込むサイズが小さくなればなるほど、sequential access に近い動作になるからであると考えられる。 + </p> + <p> + I/O の読み込みと Word Count などの Task を並列に動作させるときは、I/O と Task を同時に走らせる + </p> </div> <div class='slide'>