今週までの活動

事務連絡

研究目的(新しく書いてみた)

当研究室では、Task 単位で記述する並列プログラミングフレームワーク、Cerium の開発を行っている。 先行研究による Task の並列化によって、プログラム全体の処理速度は飛躍的に向上した。 ファイルの読み込み等の I/O を含むプログラムは、読み込み時間が Task の処理時間と比較して非常に重くなる場合が多い。 マルチコアでの並列処理を行ったとしても、I/O の動作を軽量にしなければ、I/O を含めたプログラムの処理は軽量にならない。 そして従来の mmap では、I/O と読み込んだファイルに対する処理をプログラム作成者が自由に記述することができない。 そこで本研究では、並列処理時におけるファイル読み込みをどのように実装すれば軽量に動作するかを考慮し、なおかつ読み込みとそれらに対する処理をプログラム作成者が自由に書けるように設計・実装を行う。

研究目的(卒論バージョン)

近年、CPU 1 コア当たりのクロック数が頭打ちとなっているので、シングルコアでの処理能力はほとんど上がっていない。

それを解決した結果、シングルコアからマルチコアへの移行によって CPU 性能が向上している。

しかし、マルチコア CPU を最大限に活かすためには、プログラムの並列度を向上させなければならない。

そこで当研究室では Cerium Library を提供することによって並列プログラミングを容易にしている。

先行研究による Task の並列化によって、プログラム全体の処理速度は飛躍的に向上しているが\cite{kinjyo} 、 ファイル読み込み等の I/O と Task が並列で動作するようには実装されていない。 ファイル読み込みと Task を並列化させることにより、さらなる処理速度の向上が見込まれる。 I/O と Task が並列に動作し、高速かつ容易に記述できるような API を Cerium Library が提供することにより、様々な人が容易に並列プログラミングが記述できるようになるであろうと考えている。 本研究では、 I/O と Task の並列化の設計・実装によって既存の正規表現の処理速度、処理効率を上げることを目指す。

目次

Title : Cerium による並列処理向け I/O の設計と実装

第1章 研究背景と目的

第2章 Cerium Task Manager

第3章 Cerium Task Manager を使った例題
・3.1 File Read
・3.2 Word Count

第4章 並列処理向け I/O の設計と実装
・4.1 mmapでの実装
・4.2 Blocked Read の設計と実装
・4.3 I/O 専用 thread の実装

第5章 ベンチマーク

第6章 結論

word count で mmap vs Blocked Read

firefly 上で実行
2*2.66 GHz, HHD 1TB, memory 16GB
file size : 1GB
cpu num : 12

modetime(s)
cpu & mmap22.98
cpu & blocked read13.14
gpu & mmap101.40
gpu & blocked read90.63