# HG changeset patch # User Masataka Kohagura # Date 1390986851 -32400 # Node ID 80ef6346d68ffb8764f9c379b9d95b0626054483 # Parent 38dd7453b798f5588e918cc1888f9c57c3ef0f52 add 29 memo diff -r 38dd7453b798 -r 80ef6346d68f 2014/January/OUTLINE --- a/2014/January/OUTLINE Thu Jan 23 02:05:49 2014 +0900 +++ b/2014/January/OUTLINE Wed Jan 29 18:14:11 2014 +0900 @@ -1,3 +1,11 @@ +2014/01/29 (Wed) + [memo] + ブレードサーバの在処 + +2014/01/23 (Thu) + [memo] + 1/22 の実験結果のまとめ + 2014/01/22 (Wed) [memo] 今後の実験方針 diff -r 38dd7453b798 -r 80ef6346d68f 2014/January/memo/23rd.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/2014/January/memo/23rd.txt Wed Jan 29 18:14:11 2014 +0900 @@ -0,0 +1,68 @@ +2014/01/23 (THU) + + [実験内容] + fileread と regex_mas (BM_search) の2つで計測 + 一度実行すると kernel の cache の中に入り込んでしまうため、測るたんびに再起動という原始的なことを( + + (条件分岐: main.cc) + if (divide_read_flag != 0) { + printf("[divide read mode]\n"); + w->file_mmap = (char*)manager->allocate(w->read_filesize); + r_run = manager->create_task(RUN_READ_BLOCKS, (memaddr)&w->self, sizeof(memaddr),0,0); + }else { + printf("[mmap mode]\n"); + r_run = manager->create_task(MMAP , (memaddr)&w->self, sizeof(memaddr),0,0); + } + + (読み込み部分の実装: main.cc) + + + [問題点] + w->file_mmap = (char*)manager->allocate(w->read_filesize); + と allocate しようとしているので、メモリ量より大きいデータに対してプログラムを実行することができない。(要改善) + + [実験環境] + local の Mac Book Air にて計測 + Core i5, SSD 240GB, memory 4GB + 読み込んだ file size : 11524674 Byte (11.5MB) + + [結果] + [fileread] (D_Read : divide read) + CPU_TYPE SPE_ANY + mode , cpu_num, first, cache + MMAP , 1, 0.085, 0.104 + D_Read , 1, 50.116, 17.038 + D_Read , 2, 82.468, 10.731 + D_Read , 3, 63.819, 10.039 + D_Read , 4, 56.960, 10.176 + + CPU_TYPE IO_0 + mode , cpu_num, first, cache + MMAP , 1, 0.102, 0.099 + D_Read , 1, 49.611, 12.747 + D_Read , 2, 49.524, 13.409 + D_Read , 3, 49,823, 12.864 + D_Read , 4, 49.581, 13.505 + + [regex_mas(BM_search)] + CPU_TYPE SPE_ANY + mode , cpu_num, first, cache + MMAP , 1, 102.260, 38.466 + MMAP , 2, 75.201, 23.714 + MMAP , 3, 60.065, 18.756 + MMAP , 4, 58.234, 18.715 + D_Read , 1, 82.814, 45.250 + D_Read , 2, 127.040, 30.094 + D_Read , 3, 77.703, 26.045 + D_Read , 4, 72.097, 26.188 + + CPU_TYPE IO_0 + mode , cpu_num, first, cache + MMAP , 1, 102.824, 38.275 + MMAP , 2, 72.691, 23.418 + MMAP , 3, 60.065, 18.786 + MMAP , 4, 58.234, 18.715 + D_Read , 1, 84.679, 46.063 + D_Read , 2, 71.691, 23.418 + D_Read , 3, 68.778, 30.471 + D_Read , 4, 66.016, 30.357 diff -r 38dd7453b798 -r 80ef6346d68f 2014/January/memo/29th.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/2014/January/memo/29th.txt Wed Jan 29 18:14:11 2014 +0900 @@ -0,0 +1,7 @@ +2014/01/29 (Wed) + + ギックリ腰 4日目痛い・・・ + [実験環境] + blade sarver10 + one@bldsv10.cr.ie.u-ryukyu.ac.jp + memory 132GB !? diff -r 38dd7453b798 -r 80ef6346d68f 2014/January/slide/21st.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/2014/January/slide/21st.html Wed Jan 29 18:14:11 2014 +0900 @@ -0,0 +1,177 @@ + + + + + + + slide + + + + + + + + + +
+ + + +
+

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

+

+ Masataka Kohagura +
+ 21st January , 2014 +

+
+ +
+

+ 研究目的 +

+

+ 当研究室では、CellやマルチコアCPUで並列プログラミングを可能にするCerium Task Managerを開発している。 +

+

+ マルチコア CPU を最大限に活かすためには、プログラムの並列度を向上させなければならない。 + 当研究室では Cerium Libraryを提供することによって並列プログラミングを容易にしているが、ファイル読み込み等のI/O部分に関してはまだAPIが実装されていない。 +

+

+ 本研究では、I/O読み込みとTaskの並列化の設計・実装によって既存の正規表現の処理速度、処理効率を上げる。 +

+ + +
+ +
+

+ したこと +

+
    + +
  • + regex_mas に divide read の実装(未測定) - ちゃんと中身まで書こう +
  • +
      +
+ +
+

+ 卒論 目次 +

+ +

+第1章 序論
+ 1.1 研究背景と目的
+
+第2章 Cerium
+ 2.1 Cerium の概要
+ 2.2 Cerium Task Manager
+
+ +IOの話をここに +第3章 Cerium Task Manager を使った例題
+ 3.1 Word Count
+ 3.2 File Read
+
+mmapの解説をここでいれよう +map_reduce +第4章 並列(分割?) I/O の設計と実装
+ 4.1 本研究以前の I/O の実装方法 (mmap)
+ 4.2 I/O の設計
+ ??4.2.1 single core sequential read
+ ??4.2.2 multi core seguential read
+ 4.3 single core sequential read の実装
+ 4.4 Cerium の改良(CPU部分にIO_0などを追加したけど、どこにいれよう)
+ 4.5 I/O のベンチマーク
=>別セクションへ +
+第5章 結論
+ 5.1 まとめ
+ 5.2 今後の課題
+

+ +
+ +
+

+ 今後のスケジュール +

+ +
    +
  • + 後期院試試験・2/12 +
  • + +
  • + 卒検発表・2/27,28 +
  • +
+
+ + + +
+ +

+ make が通らない ( TaskManager を parallel で make したとき) +

+
+%  make clean;make
+rm -f word_count main.o task_init.o ppe/Exec.o ppe/Exec_Data_Parallel.o ppe/Print.o
+rm -f *~ \#*
+
+   ・・・
+
+Make for Mac OS X
+clang++ -m64 -o word_count main.o task_init.o ppe/Exec.o ppe/Exec_Data_Parallel.o ppe/Print.o -L../../../Cerium/TaskManager -lFifoManager `sdl-config --libs`
+Undefined symbols for architecture x86_64:
+  "create_impl(int, int, int)", referenced from:
+      TaskManager::init(int, int, int) in libFifoManager.a(TaskManager.o)
+ld: symbol(s) not found for architecture x86_64
+clang: error: linker command failed with exit code 1 (use -v to see invocation)
+make[1]: *** [word_count] Error 1
+make: *** [macosx] Error 2
+
+ +
+ + + diff -r 38dd7453b798 -r 80ef6346d68f 2014/January/slide/21th.html --- a/2014/January/slide/21th.html Thu Jan 23 02:05:49 2014 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,177 +0,0 @@ - - - - - - - slide - - - - - - - - - -
- - - -
-

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

-

- Masataka Kohagura -
- 21th January , 2014 -

-
- -
-

- 研究目的 -

-

- 当研究室では、CellやマルチコアCPUで並列プログラミングを可能にするCerium Task Managerを開発している。 -

-

- マルチコア CPU を最大限に活かすためには、プログラムの並列度を向上させなければならない。 - 当研究室では Cerium Libraryを提供することによって並列プログラミングを容易にしているが、ファイル読み込み等のI/O部分に関してはまだAPIが実装されていない。 -

-

- 本研究では、I/O読み込みとTaskの並列化の設計・実装によって既存の正規表現の処理速度、処理効率を上げる。 -

- - -
- -
-

- したこと -

-
    - -
  • - regex_mas に divide read の実装(未測定) - ちゃんと中身まで書こう -
  • -
      -
- -
-

- 卒論 目次 -

- -

-第1章 序論
- 1.1 研究背景と目的
-
-第2章 Cerium
- 2.1 Cerium の概要
- 2.2 Cerium Task Manager
-
- -IOの話をここに -第3章 Cerium Task Manager を使った例題
- 3.1 Word Count
- 3.2 File Read
-
-mmapの解説をここでいれよう -map_reduce -第4章 並列(分割?) I/O の設計と実装
- 4.1 本研究以前の I/O の実装方法 (mmap)
- 4.2 I/O の設計
- ??4.2.1 single core sequential read
- ??4.2.2 multi core seguential read
- 4.3 single core sequential read の実装
- 4.4 Cerium の改良(CPU部分にIO_0などを追加したけど、どこにいれよう)
- 4.5 I/O のベンチマーク
=>別セクションへ -
-第5章 結論
- 5.1 まとめ
- 5.2 今後の課題
-

- -
- -
-

- 今後のスケジュール -

- -
    -
  • - 後期院試試験・2/12 -
  • - -
  • - 卒検発表・2/27,28 -
  • -
-
- - - -
- -

- make が通らない ( TaskManager を parallel で make したとき) -

-
-%  make clean;make
-rm -f word_count main.o task_init.o ppe/Exec.o ppe/Exec_Data_Parallel.o ppe/Print.o
-rm -f *~ \#*
-
-   ・・・
-
-Make for Mac OS X
-clang++ -m64 -o word_count main.o task_init.o ppe/Exec.o ppe/Exec_Data_Parallel.o ppe/Print.o -L../../../Cerium/TaskManager -lFifoManager `sdl-config --libs`
-Undefined symbols for architecture x86_64:
-  "create_impl(int, int, int)", referenced from:
-      TaskManager::init(int, int, int) in libFifoManager.a(TaskManager.o)
-ld: symbol(s) not found for architecture x86_64
-clang: error: linker command failed with exit code 1 (use -v to see invocation)
-make[1]: *** [word_count] Error 1
-make: *** [macosx] Error 2
-
- -
- - -