changeset 40:e47b86ad3214

fix
author Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
date Tue, 13 May 2014 17:25:59 +0900
parents 3e23bbe3abe3
children 46dd50de6f90
files presen/s6/index.html
diffstat 1 files changed, 18 insertions(+), 24 deletions(-) [+]
line wrap: on
line diff
--- a/presen/s6/index.html	Tue May 13 17:00:04 2014 +0900
+++ b/presen/s6/index.html	Tue May 13 17:25:59 2014 +0900
@@ -92,7 +92,7 @@
           </tr>
           <tr>
             <td><div align="left">
-                Masataka Kohagura
+                Masataka Kohagura,Shinji Kono,
                 <script>
                   var date = new Date();
                   var year = date.getFullYear();
@@ -286,8 +286,8 @@
     <img src='images/includeIOTask.png' style="height:330px" align="middle">
     <ol>
         <li>ファイルをある一定の大きさずつ読み込む</li>
-        <li>読み込んだテキストファイルに対して、それぞれ 並列計算 を行う</li>
-        <li>並列計算の結果を集計する</li>
+        <li>読み込んだテキストファイルに対して、それぞれ 並列に計算 を行う</li>
+        <li>計算の結果を集計する</li>
     </ol>
       </div>
       
@@ -317,30 +317,20 @@
     </ul>
       </div>
 
+
       <div class='slide'>
-    <h2>Blocked Read 間に Task が割り込まれないようにする</h2>
+    <h2>I/O 専用 thread での Blocked Read の実装</h2>
     <br>
-    <img src='images/read_break.png' style="height:300px"align="middle">
-    <!-- UML 形式にして -->
-    <br>
-
+    <!--<img src='images/IO_0blockread.png' style="height:350px">-->
     <ul>
         <li>
         I/O を含むアプリケーションの実行時間は、ほとんどが I/O ネックとなることが多い。
         </li>
         <li>
-        読み込みの間に Task が割り込まれると、全体の実行速度が遅くなってしまう。
+        読み込みの間に Task が割り込まれると、下の図のように全体の実行速度が遅くなってしまう。
         </li>
-    </ul>
-      </div>
-
-      <div class='slide'>
-    <h2>I/O 専用 thread での Blocked Read の実装</h2>
-    <br>
-    <img src='images/IO_0blockread.png' style="height:350px">
-    <ul>
-        <li>SPE_ANYは TaskManager 側が自動的に CPU を Task に割り振ってくれる。</li>
-        <li>Blocked Read Task は Word Count とは別に Thread を割り当てることにより、Blocked Read Task 間に Word Count が割り込まれないようにした。</li>
+    <br><img src='images/read_break.png' style="height:300px"align="middle"><br>
+        <li>Blocked Read Task に I/O 専用 thread を用意して、 Word Count とは別に Thread を割り当てることにより、Blocked Read Task 間に Word Count が割り込まれないようにした。</li>
         <li>Thread レベルで割り込まれないように、pthread_setschedparam にて IO_0 の priority を設定している。<br>
         </li>
     </ul>
@@ -861,29 +851,33 @@
         mmap での実行時は、Blocked Read size を小さくしたほうが速度が向上した。これは、まとめと読み込むサイズが小さくなればなるほど、sequential access に近い動作になるからであると考えられる。
         </p>
         <p>
-        I/O の読み込みと並列計算を分離して、同時に処理させたほうが、全体的に安定した速度がでる。mmapだと、一度に読み込む大きさが大きくなってしまうと遅くなる。
+        I/O の読み込みと並列計算を分離して、同時に処理させたほうが、全体的に安定した速度がでるが、mmapだと一度に読み込む大きさが小さければ速い。
         </p>
         <p>
-        mmap は OS での読み込み依存のため、環境によって左右されやすい。
+        mmapは読み込みの大きさによって全体の速度が変わってしまうが、どんな大きさでも安定した速度で改良する余地があると思われる。
         </p>
         <p>
-        mmap の読み込み方法を指定することができるが、default である MADV_NORMAL でも充分に速くなる。
+
         </p>
       </div>
 
       <div class='slide'>
     <h2>まとめ</h2>
     <ul>
-        <li> I/O と Task を分離し、同時に動くように改良した。 </li>
+        <li> I/O と Task を分離し、同時に動くように改良し、どの環境でも安定した速度が出た。 </li>
         <li> I/O 専用の Thread の追加 </li>
         <li>
+        mmap でも一度に読み込む大きさを小さくすれば、Blocked Read とほぼ同じ速度が出る。
         </li>
     </ul>
     <h2 class="yellow">今後の課題</h2>
     <ul>
         <li> Cerium の API として実装 </li>
         <li>
-        様々な実装の試み<br>(I/O threads を 2つ、分割 mmap・・・)
+        様々な実装の試み<br>(I/O threads を 2つ使用したプログラム、分割 mmap)
+        </li>
+        <li>
+        様々な環境での測定
         </li>
         <li>
         grepの実装