近年のマルチコアプロセッサの普及により、データベースシステムに代表される、大量のデータを効率よく処理する必要のあるアプリケーションでは、プロセッサ内の複数の計算コアを使って高速に計算するアルゴリズムの開発が要求されている。また、各コアから共有して利用されるメインメモリ上のデータへのアクセスは、アクセスのレイテンシだけでなくアクセスの競合が発生するため、極力メインメモリへのアクセスを回避することが望まれる。 本研究では、時系列イベントが格納されたデータベースをスキャンし、その中で頻出する時系列パターンを発見する時系列パターンマイニング処理を、マルチコアプロセッサを利用して効率よく計算する手法の提案を行った。提案手法は、既存のPAIDアルゴリズムを元にしており、CPUコア中のキャッシュを有効利用するためにデータ構造を工夫し、さらに局所的な幅優先探索を取り入れることにより、データ参照の時間局所性、空間局所性の両方の改良を行った。さらにマルチコアプロセッサを活用するために、データベース分割によるデータ並列を活かす並列化も取り入れた。キャッシュの有効利用の結果、元のPAIDに対して、アルゴリズムはほとんど変更していないにも関わらず約2倍の高速化を実現できた。また、並列化により、6コアを使用した場合、1コアの場合と比べて4倍以上の高速化を実現できた。このような結果を得た理由は、キャッシュの有効利用によりキャッシュミス率が半分以下となり、データアクセスのレイテンシが軽減できただけでなく、コア数を増加させた場合にはメインメモリへのアクセス競合を軽減できたことによる。換言すれば、提案手法は極めてマルチコアプロセッサ向けであると言える。
|