# HG changeset patch # User Masataka Kohagura # Date 1391933651 -32400 # Node ID a452d8f104bd96485fd21055c7c17d80d0f9ff80 # Parent 5358fc3a1d7d48bef8e5045621e010d6baf4636d divede read rename to Block Read diff -r 5358fc3a1d7d -r a452d8f104bd slide/index.html --- a/slide/index.html Sun Feb 09 16:34:35 2014 +0900 +++ b/slide/index.html Sun Feb 09 17:14:11 2014 +0900 @@ -34,13 +34,14 @@ 近年のCPUのほとんどはマルチコアであり、それらの性能を引き出すためには並列プログラミングが必須となっている。そこで当研究室では Cerium Library の開発を行い、提供することによって並列プログラミングを容易にしている。

- 先行研究では Task の並列化によって、プログラム全体の処理速度は向上しているが、ファイル読み込み等の I/O に対して並列に Task が動作するようにはされていない。 + 先行研究では Task の並列化によって、プログラム全体の処理速度は向上している。しかし、ファイル読み込み等の I/O と Task が並列に動作するようにはされていない。

現状では、ファイルを全て memory に mapping を行ってから Task が走るようになっているので、非常に大きいサイズのファイルを読み込むと、ファイルを memory に mapping するまでの時間がオーバーヘッドになってしまう。

- 本研究では I/O と Task の並列化の設計、実装によってプログラム全体の処理速度、処理効率を上げていく。 + 本研究では I/O と Task が並列に動作するような設計、実装によってプログラム全体の + 処理速度を上げていく。

@@ -119,8 +120,8 @@

並列処理向け I/O の 設計と実装


@@ -163,27 +164,38 @@

mmap の仕様

-
- + + + + + + + +
+
    + +
  1. + code がシンプル (memory を自分自身で malloc せず、read を書いて読み込まなくていいため) +
  2. +
  3. + memory より大きなファイルは開けない +
  4. +
  5. + ファイルを一度で memory に対して mapping する +
  6. +
  7. + read の先読みがOS依存 +
  8. +
    +
+
-

divide read の設計

+

Block Read の設計(1/2)



@@ -244,9 +256,28 @@ -->
-

divide read の実装(1)

+

Block Read の設計(2/2)

+
+
-

divide Read の実装

+ +
    +
  1. +
  2. +
  3. +
  4. +
  5. +
  6. +
  7. +
  8. +
+
+ + +
+

Block Read の実装(2)

+
+

Block Read の実装

 HTaskPtr t_read = manager->create_task(READ_TASK);
 t_read->set_cpu(read_spe_cpu);
@@ -266,9 +297,9 @@
       
-

divide read の実装(2)

+

Block Read の実装(3)


-

divide Read の記述

+

Block Read の記述

 static int
 read_task(SchedTask *s, void *rbuf, void *wbuf)