当研究室では、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 の並列化の設計・実装によって既存の正規表現の処理速度、処理効率を上げることを目指す。
firefly 上で実行
2*2.66 GHz, HHD 1TB, memory 16GB
file size : 1GB
cpu num : 12
mode | time(s) |
cpu & mmap | 22.98 |
cpu & blocked read | 13.14 |
gpu & mmap | 101.40 |
gpu & blocked read | 90.63 |