メニーコアプロセッサ上の処理での大きなボトルネックの一つである共有データ構造の排他制御を、最近利用可能となったハードウェアトランザクショナルメモリ(HTM)に加え、ロックフリーアルゴリズム、従来のロックの三種類の排他制御法を組合せて適材適所に使用し、排他制御のオーバヘッド問題を解決するための方法論の確立を目的とする。従来、これらの排他制御法の何れか一つのみを利用していたが、データの書込みならびに読出しの比率や、競合頻度、局所性などを考慮することで、これらを組み合わせて適切な並行データ構造を設計できることを目指す。 今年度は、大規模データ管理で一般的に使用されるB-treeについて、そのスループット性能向上のために、HTMと既存の排他制御法との組み合わせ手法を中心に研究を行った。また、メニーコアプロセッサ上での排他制御無しでの文字列演算アルゴリズムについても検討を行った。 効率の良いB-treeの排他制御法の枠組みとしてBlink-treeが知られている。Blink-treeの共有メモリ型マルチプロセッサ向けの実装法としてOLFITがある。OLFITは、データ参照時はロックフリーであるが、データ挿入時についてはロックを用いる。本研究では、OLFITを基本とし、HTMを導入することでデータ挿入時のロックのオーバヘッドを軽減する方法について検討した。B-treeはルートを含む上部は更新頻度が少なく、葉部がもっとも更新が頻繁に行われるため、木の上部にHTM、葉部にはロックを利用するHTM-innerと、木の上部はロック、葉部にはHTMを利用するHTM-leaf方式を提案した。前者は更新がほとんどない用途に対して有効と考えられるが、後者は更新が多い場合に有効となる方式である。評価実験の結果、既存のB-treeの排他制御法よりも、HTM-leafが更新の頻度や集中度が低い場合でも、多くの場合スループットが高いことを明らかにした。
|