# HG changeset patch # User Masataka Kohagura # Date 1392117049 -32400 # Node ID f8fc309caf84885d3b3f671db1ac61f1f587a75e # Parent 933c669d567ed72c6a13914730bd122c6e6f693c add some images diff -r 933c669d567e -r f8fc309caf84 slide/images/IO0blockread.png Binary file slide/images/IO0blockread.png has changed diff -r 933c669d567e -r f8fc309caf84 slide/images/SPEANYblockread.png Binary file slide/images/SPEANYblockread.png has changed diff -r 933c669d567e -r f8fc309caf84 slide/index.html --- 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 @@
  • I/O を含む Task の説明
  • mmap の説明
  • Blocked Read の設計と実装
  • -<<<<<<< local
  • IO専用 therad の追加
  • -======= ->>>>>>> other
  • ベンチマーク
  • @@ -109,10 +106,6 @@ -<<<<<<< local -======= - ->>>>>>> other

    mmap の説明

    @@ -203,7 +196,6 @@ --> -<<<<<<< local

    Blocked Read の実装


    @@ -456,16 +448,9 @@
    -======= ->>>>>>> other
    -<<<<<<< local

    付録 : Block Read の実装(1/2)

    -======= -

    Blocked Read の実装

    ->>>>>>> other
    -<<<<<<< local

    Block Read の実装

     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);
    -=======
    -          
    -          
    ->>>>>>> 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();
    -======= -
      -
    • - Task を 1 つずつ生成するのではなく、ブロック単位で生成する。
      - この図では、1 Block 当たり n 個の Task を生成する。
      - (1つずつ生成すると、生成された Task で memory を圧迫するため) -
    • -
    • - Task 1つ当たりの読み込む領域を L とする。
      - Blocked Read Task 1つ当たり、memory に格納する大きさは L × n となる。 -
    • -
    • - Blocked Read Task が読み込み終わるまで、Task Block に wait を掛ける。
      - (Read Task が格納する前に走ると、まだ格納していない領域を読みこんでしまう。) -
    • -
    ->>>>>>> other
    -<<<<<<< local

    付録 : Block Read の実装(2/2)

    -======= -

    ベンチマーク(1/3)

    ->>>>>>> other
    -<<<<<<< local

    Block Read の記述

     static int
    @@ -536,137 +494,8 @@
         return 0;
     }
     
    -======= -

    実験環境

    -
      -
    • Mac OS X 10.9.1
    • -
    • 2*2.66 GHz 6-Core Intel Xeon
    • -
    • Memory 16GB 1333MHz DDR3
    • -
    • HHD 1TB
    • -
    • file size : 約 10 GB
    • -
    • - "doing" という文字列が file 内にいくつあるか計算
      - ("doing" は 25,961,792 個存在する) -
    • -
    ->>>>>>> other
    -<<<<<<< local -======= -
    -

    ベンチマーク(2/3)

    -
      -
    • - file が memory に残っていない状態での測定 -
    • -
    • - one task size 128KByte -
    • -
    • - Task Blocks 48 -
    • -
    -
    -

    結果

    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    read modecpu nummin time(s)MAX time(s)ave time(s)
    mmap4135.2148.9142.3
    BRead494.5109.298.8
    mmap12147.0181.8154.6
    BRead1291.6117.599.2
    - -
    - -
    -

    ベンチマーク(3/3)

    -

    考察

    - - -
    - -
    -

    大学院に進学してしたいこと

    -
    - - -
    - -
    -

    マルチコアソフトウェアシンセサイザーの設計

    -
    - -
    ->>>>>>> other - - - - - -