Skip to main content
QUICK REVIEW

[論文レビュー] Concurrent Hash Tables: Fast and General?(!)

Tobias Maier, Peter Sanders|arXiv (Cornell University)|Jan 15, 2016
Algorithms and Data Compression参考文献 20被引用数 6
ひとこと要約

この論文では、動的リサイズをサポートし、一般化されたキー・バリュー型を扱える、ロックフリーで高度に最適化された並列ハッシュテーブルを提示している。線形探索に基づく実装であり、ピーク性能に近い性能を維持している。慎重な設計により、拡張性の特徴(リサイズ、削除、任意のデータ型)に起因する性能低下を最小限に抑え、特に競合状態が生じる環境下で、既存の一般用途並列ハッシュテーブルと比較して最大1000倍の高速化を達成している。

ABSTRACT

Concurrent hash tables are one of the most important concurrent data structures with numerous applications. Since hash table accesses can dominate the execution time of the overall application, we need implementations that achieve good speedup. Unfortunately, currently available concurrent hashing libraries turn out to be far away from this requirement in particular when contention on some elements occurs. Our starting point for better performing data structures is a fast and simple lock-free concurrent hash table based on linear probing that is limited to word-sized key-value types and does not support dynamic size adaptation. We explain how to lift these limitations in a provably scalable way and demonstrate that dynamic growing has a performance overhead comparable to the same generalization in sequential hash tables. We perform extensive experiments comparing the performance of our implementations with six of the most widely used concurrent hash tables. Ours are considerably faster than the best algorithms with similar restrictions and an order of magnitude faster than the best more general tables. In some extreme cases, the difference even approaches four orders of magnitude.

研究の動機と目的

  • 実際のワークロード、特に競合状態や動的リサイズが発生する状況下で、既存の一般用途並列ハッシュテーブルのスケーラビリティの低さを是正すること。
  • 高速で容量が固定されたワードサイズの線形探索ハッシュテーブルを、動的リサイズ、削除、任意のデータ型のサポートに拡張した場合、性能を維持できるかを調査すること。
  • 特にマルチコア環境における並列ハッシュテーブル設計において、性能と一般性のトレードオフを評価すること。
  • 一般化に起因する性能コストが、シーケンシャルなハッシュテーブルと同等であることを示し、パフォーマンスが求められるアプリケーションにおいて実用的であることを示すこと。

提案手法

  • ワードサイズのキーと値を最適化した、ロックフリーの線形探索ハッシュテーブルを設計し、アトミックな比較アトムスワップ(CAS)操作のみを用いる。
  • グローバルな同期ボトルネックを回避する、新しいスケーラブルな移行アルゴリズムを用いて、動的リサイズを実装する。
  • マーキングベースのアプローチを導入し、ブロッキングを伴わずに安全なメモリ再利用を実現する削除処理を実装する。
  • Intel Hardware Transactional Search(TSX)を活用し、競合状態の高い状況下での挿入および更新処理を高速化する。
  • シリアル化とポ인터ベースのストレージを用いて、任意のキー・バリュー型をサポートする実装を行い、パフォーマンスへの影響を最小限に抑える。
  • 部分的テンプレート特化と抽象化レイヤーを活用し、パフォーマンスを保ちつつ、一貫性のあるユーザーフrndリエントリフェースを提供する。

実験結果

リサーチクエスチョン

  • RQ1ロックフリーの線形探索ハッシュテーブルは、固定サイズバージョンと比較して、性能劣化を最小限に抑えながら動的リサイズをサポートできるか?
  • RQ2高並列度で最適化された固定サイズの並列ハッシュテーブルは、競合状態や多様なワークロード下で、一般用途実装と比較してどの程度の性能を示すか?
  • RQ3並列ハッシュテーブルにおいて、任意のキー・バリュー型と削除処理をサポートする場合のパフォーマンスオーバーヘッドは何か?これは、シーケンシャルなハッシュテーブルの成長と同等に抑えられるか?
  • RQ4ハードウェアトランザクショナルメモリ(HTM)は、並列挿入および更新処理のパフォーマンスをどの程度向上できるか?
  • RQ5抽象化とテンプレート特化を用いることで、1つの実装が特殊用途と一般用途の両方を効率的にサポートできるか?

主な発見

  • 固定サイズのワードサイズ線形探索ハッシュテーブルは、高競合状態の検索操作において、すべての競合対象と比較して最大4桁の速度向上を示し、読み取り中心の環境下でロックやCASを使用する場合の顕著な性能劣化を実証した。
  • 動的リサイズに起因するパフォーマンスオーバーヘッドは、挿入および更新処理では2倍未満、検索処理では無視できる程度であり、シーケンシャルなハッシュテーブルと同等の水準である。
  • 一般用途実装の中で、TBB、Cuckoo、RCUのみが任意のデータ型をサポートしているが、挿入処理においては、本提案実装と比較して少なくとも1桁の速度劣化を示している。
  • Cuckooハッシュテーブルは挿入処理では5倍程度遅いが、競合状態下では5,600倍も遅く、一部の一般用途設計の脆さを浮き彫りにした。
  • マーキングベースの移行を用いた本提案のリサイズメカニズムは、グローバル同期のリサイズよりも優れたパフォーマンスを発揮し、特に更新処理が多めのワークロードで顕著である。
  • ハードウェアトランザクショナルメモリ(Intel TSX)は、挿入および更新処理の速度をさらに向上させ、競合状態の高い環境下でのパフォーマンス向上の可能性を示した。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。