Mercurial > hg > Papers > 2014 > masakoha-sigos
changeset 32:a33defe57134
add result
author | Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Thu, 08 May 2014 19:43:00 +0900 |
parents | 9b043cb87ee9 |
children | cd6450a37edf |
files | slide/index.html |
diffstat | 1 files changed, 114 insertions(+), 26 deletions(-) [+] |
line wrap: on
line diff
--- a/slide/index.html Thu May 08 02:20:01 2014 +0900 +++ b/slide/index.html Thu May 08 19:43:00 2014 +0900 @@ -227,6 +227,12 @@ <li> 待ち合わせには Cerium の wait for を使用する。 </li> + <li> + Word Count Task 1つで処理するファイルの大きさを L<br> + Task Block 1つ当たりに含まれている Word Count Task の数を n<br> + とすると、Blocked Read Task 1つ当たりの読み込み量は L * n となる。 + </li> + </ul> </div> @@ -285,7 +291,7 @@ <!-- 1度に読み込む量を書かないといけない --> <!-- bldsv 12 ssd あるってよ--> -Blocked read Task 1つ当たりの読み込み量は 128kbyte * 48 +Blocked read Task 1つ当たりの読み込み量は 128kbyte * 48 で設定している。 <table border="2" cellpadding="0" cellspacing="0"> <tbody> <tr> @@ -335,16 +341,19 @@ </tbody> </table> +<!-- + <ul> <li> CPU 12 のとき、Blocked Read(IO_0) が mmap より<font color=red>2.21倍</font> 速度が向上した。<br> </li> <li> Blocked Read を IO 専用 thread で実装すると、<font color=red>1.36 倍</font> の改善が見られた。<br> </li> <li> mmap で並列の Task で走らせると 1つ1つの Task がファイルを読み込み、ランダムアクセスとなって<br>しまうため速度が遅くなってしまう。</li> </ul> - <h3>実験 : division size を変更してみる</h3> +--> + <h3>実験 : Blocked Read size を変更してみる</h3> -Blocked read Task 1つ当たりの読み込み量は <font color=red>16kbyte </font>* 48 +Blocked read Task 1つ当たりの読み込み量は <font color=red>16kbyte </font>* 48 で設定している。 <table border="2" cellpadding="0" cellspacing="0"> <tbody> <tr> @@ -394,16 +403,92 @@ </tbody> </table> +<!-- + + <ul> <li>CPU 4つ以上からは、読み込み方法を変えても結果がほとんど同じとなった。</li> <li>mmap はコードがシンプルでもかなり速く動作するが、チューニング次第で Blocked Read のほうが速く動作する。</li> </ul> +--> + +<!-- +Blocked read Task をそれぞれ変更してみる。<br> +CPU 12 +--> + + <h3>実験 : CPU 数を固定して、Blocked Read size を変更してみる</h3> + Word Count Task 1つ当たりの処理量を 4kByte ~ 256kByte で変化させてみた。 +<table border="2" cellpadding="0" cellspacing="0"> + <tbody> + <tr> + <td>read mode \ Blocled Read size</td> + <td></td> + <td> 4k * 48 </td> + <td> 8k * 48 </td> + <td> 16k * 48 </td> + <td> 32k * 48 </td> + <td> 64k * 48 </td> + <td> 128k * 48 </td> + <td> 256k * 48 </td> + </tr> + <tr> + <td>mmap</td> + <td></td> + <td><div align=right>11.867</div></td> + <td><div align=right>10.570</div></td> + <td><div align=right>11.803</div></td> + <td><div align=right>14.915</div></td> + <td><div align=right>16.626</div></td> + <td><div align=right>16.923</div></td> + <td><div align=right>18.474</div></td> + </tr> + <tr> + <td>read</td> + <td></td> + <td><div align=right>12.020</div></td> + <td><div align=right>11.585</div></td> + <td><div align=right>11.729</div></td> + <td><div align=right>11.661</div></td> + <td><div align=right>12.497</div></td> + <td><div align=right>11.347</div></td> + <td><div align=right>11.658</div></td> + </tr> + <tr> + <td>Blocked Read(SPE_ANY)</td> + <td></td> + <td><div align=right>11.508</div></td> + <td><div align=right>15.932</div></td> + <td><div align=right>11.407</div></td> + <td><div align=right>12.816</div></td> + <td><div align=right>12.454</div></td> + <td><div align=right>12.891</div></td> + <td><div align=right>11.962</div></td> + </tr> + <tr> + <td>Blocked Read(IO_0)</td> + <td></td> + <td><div align=right>11.342</div></td> + <td><div align=right>12.242</div></td> + <td><div align=right>11.636</div></td> + <td><div align=right>12.331</div></td> + <td><div align=right>10.870</div></td> + <td><div align=right>11.295</div></td> + <td><div align=right>11.723</div></td> + <!-- + <td bgcolor="#ffffcc">Blocked Read(IO_0)</td> + <td bgcolor="#ffffcc">99.2</td> + --> + </tr> + </tbody> +</table> + </div> <!-- --> <div class='cover'> -<h3>実験 : OS を変更してみる</h3> +<h3>実験 : OS とコンピュータを変更してみる</h3> <p>実験環境</p> <ul> <li> Cent OS 6.5</li> @@ -415,8 +500,8 @@ <table border="2" cellpadding="0" cellspacing="0"> <tbody> - <!-- align = rigth 寄ってくれない(´;ω;`)ウッ…--> - <tr align="rigth"> + <!-- align = right 寄ってくれない(´;ω;`)ウッ…--> + <tr align="right"> <td>read mode \ CPU num</td> <td></td> <td>CPU 1</td> @@ -428,38 +513,38 @@ <tr> <td>mmap</td> <td></td> - <td>6.852</td> - <td>6.765</td> - <td>7.632</td> - <td>12.504</td> - <td>7.649</td> + <td><div align=right>6.852</div></td> + <td><div align=right>6.765</div></td> + <td><div align=right>7.632</div></td> + <td><div align=right>12.504</div></td> + <td><div align=right>7.649</div></td> </tr> <tr> <td>read</td> <td></td> - <td>10.545</td> - <td>8.699</td> - <td>8.667</td> - <td>8.152</td> - <td>7.607</td> + <td><div align=right>10.545</div></td> + <td><div align=right>8.699</div></td> + <td><div align=right>8.667</div></td> + <td><div align=right>8.152</div></td> + <td><div align=right>7.607</div></td> </tr> <tr> <td>Blocked Read(SPE_ANY)</td> <td></td> - <td>8.686</td> - <td>10.606</td> - <td>12.995</td> - <td>11.799</td> - <td>14.723</td> + <td><div align=right>8.686</div></td> + <td><div align=right>10.606</div></td> + <td><div align=right>12.995</div></td> + <td><div align=right>11.799</div></td> + <td><div align=right>14.723</div></td> </tr> <tr> <td>Blocked Read(IO_0)</td> <td></td> - <td>6.751</td> - <td>6.800</td> - <td>7.311</td> - <td>7.016</td> - <td>6.755</td> + <td><div align=right>6.751</div></td> + <td><div align=right>6.800</div></td> + <td><div align=right>7.311</div></td> + <td><div align=right>7.016</div></td> + <td><div align=right>6.755</div></td> <!-- <td bgcolor="#ffffcc">Blocked Read(IO_0)</td> <td bgcolor="#ffffcc">99.2</td> @@ -468,10 +553,13 @@ </tbody> </table> + +<!-- size が小さくなると、シーケンシャルの読み込みに近いので、ランダムだと mmap が遅くなってしまう。 stream 演算 I/O の ぷらいおりてぃ 上げないでどうなるかどうか division size = 64k 256k +--> </div> <div class='cover'>