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

Masataka Kohagura
21th January , 2014

研究目的

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

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

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

したこと

卒論 目次

第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 今後の課題

今後のスケジュール

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