view paper/conclusion.tex @ 43:f49b0fb9fcfd

fix
author Masataka Kohagura <kohagura@cr.ie.u-ryukyu.ac.jp>
date Wed, 14 May 2014 01:29:57 +0900
parents 6f6f482b9f12
children
line wrap: on
line source

\section{まとめと今後の課題}
本研究では、Task と 読み込みが並列に動作するように Blocked Read の実装を行った。
またそれだけだと、Blocked Read に Task が割り込まれるので、I/O 専用 thread の追加を行った。
Blocked Read に I/O 専用 thread を割り当てると、さらに速くなった。

I/O が含まれるときの並列処理は、I/O のコントロールをプログラマが実装することで動作改善に繋がる。

本来読み込みを行ったファイルは、一度プログラムを実行したあとでもキャッシュとしてメモリ上にテキストがそのまま残っている。
%キャッシュとは、使用頻度の高いデータを高速なデバイスに蓄えておくことによって読み込みのオーバーヘッドを少なくするための機能である。
mmap で実装を行うと、同じファイルに対して複数回検索を行うときに 2回目以降のプログラムの処理は速くなる。
それに対して、
Blocked Read も 2回目以降の実行速度は mmap と同様に速くなるのだが、ある一定のファイルサイズを越えてしまうとキャッシュが無効となってしまう。
10GB のファイルではそのようなことが発生することは確認したが、なぜこのようなことが発生するのか調査する。

さらに、pread による複数 read を実装したが、複数 mmap に関してはまだ実装・計測を行っていない。これらの計測を行って、どちらが最高速に動作するかどうか調べる必要がある。

また、Blocked Read のコードを記述するのは煩雑で、これらを毎回記述することは大変である。
これを Cerium の API として落としこむことによって、簡単に利用できるようにしたい。