Skip to main content
QUICK REVIEW

[論文レビュー] Boosting Multi-Core Reachability Performance with Shared Hash Tables

Alfons Laarman, Jaco van de Pol|arXiv (Cornell University)|Apr 16, 2010
Software Testing and Debugging Techniques参考文献 15被引用数 42
ひとこと要約

この論文では、マルチコアでのモデル検査における到達可能性探索のスケーラビリティを向上させるために、ロックレスでキャッシュ最適化された共有ハッシュテーブルを提案している。この手法は、誤った共有を最小限に抑え、CPUキャッシュ階層を活用することで、効率的なスケーリングを実現する。本手法は、SPIN よりも最大4倍速く、DiVinE よりも2倍速い性能を達成しており、現代のマルチコアアーキテクチャに最適化されたデータレイアウト、プローブシーケンス、バケットサイズの最適化によって実現されている。

ABSTRACT

This paper focuses on data structures for multi-core reachability, which is a key component in model checking algorithms and other verification methods. A cornerstone of an efficient solution is the storage of visited states. In related work, static partitioning of the state space was combined with thread-local storage and resulted in reasonable speedups, but left open whether improvements are possible. In this paper, we present a scaling solution for shared state storage which is based on a lockless hash table implementation. The solution is specifically designed for the cache architecture of modern CPUs. Because model checking algorithms impose loose requirements on the hash table operations, their design can be streamlined substantially compared to related work on lockless hash tables. Still, an implementation of the hash table presented here has dozens of sensitive performance parameters (bucket size, cache line size, data layout, probing sequence, etc.). We analyzed their impact and compared the resulting speedups with related tools. Our implementation outperforms two state-of-the-art multi-core model checkers (SPIN and DiVinE) by a substantial margin, while placing fewer constraints on the load balancing and search algorithms.

研究の動機と目的

  • マルチコアでのモデル検査における共有状態ストレージのスケーラビリティ制限を克服すること。
  • 静的パーティショニングをスケーラブルな並列データ構造に置き換えることで、明示的状態の到達可能性探索の性能を向上させること。
  • モデル検査アルゴリズムのメモリ階層と緩い操作の整合性要件に適合したハッシュテーブルを設計すること。
  • 共有メモリ型モデルチェッカーにおける柔軟なロードバランシングと、さまざまな探索戦略(例:擬似DFS)のサポートを可能にすること。
  • SPIN や DiVinE などのツールで使用されている既存の共有ストレージソリューションの高性能でロックレスな代替案を提供すること。

提案手法

  • モデル検査で一般的な弱い整合性要件のもとで、低遅延かつ高スループットな動作を実現するため、ロックレスなハッシュテーブルを設計する。
  • キャッシュラインに配慮したデータレイアウトとバケット構成を採用し、誤った共有を低減するとともに、空間局所性を向上させる。
  • キャッシュミスを最小限に抑え、CPUプリフェッチ動作と整合性を持つ独自のプローブシーケンスを採用する。
  • バケットサイズ、キャッシュラインサイズ、データ構造レイアウトといった重要なパラメータを、広範なパフォーマンス分析を通じてチューニングする。
  • POSIX共有メモリを用いて実装することで、マルチコア環境下でのスレッド間状態共有を可能にする。
  • LTSmin モデルチェッカーにハッシュテーブルを統合し、多様なモデルタイプにおけるパフォーマンスを評価する。

実験結果

リサーチクエスチョン

  • RQ1ロックレスで共有可能なハッシュテーブルは、マルチコアでの到達可能性探索において静的パーティショニングを上回る性能を発揮できるか?
  • RQ2低レベルのメモリレイアウトとキャッシュ動作は、モデル検査における並列状態ストレージのパフォーマンスにどのように影響を与えるか?
  • RQ3独自に設計されたハッシュテーブルは、SPIN や DiVinE といった現在の最先端ツールを上回るスケーラビリティを達成できるか?
  • RQ4キャッシュ最適化されたロックレス設計は、スレッドローカルまたはパーティショニングされたストレージと比較して、より優れたロードバランシングとアルゴリズムの柔軟性を実現できるか?
  • RQ5モデル検査ワークロードにおける並列ハッシュテーブルのパフォーマンスに最も影響を与えるキーパrameterは何か?

主な発見

  • 提案された共有ハッシュテーブルは、到達可能性パフォーマンスにおいて、DiVinE よりも2倍、SPIN よりも4倍速い。
  • 誤った共有の低減とキャッシュライン使用の最適化により、現代のマルチコアCPU上で優れたスケーラビリティを達成している。
  • 小さなモデルでは、ポインタフリーでアロケーションフリーな設計によるキャッシュミス率の上昇によりパフォーマンスが低下するが、ポインタの制御された使用によりこれを緩和できる。
  • 動的および明示的ロードバランシングを含む柔軟なロードバランシングが可能であり、静的バランシングと比較して僅か数パーセントのオーバーヘッドで実現できる。
  • パフォーマンス分析とパrameterチューニングにより、現在の最先端CPUをはるかに超えるスケーリングが確認された。
  • 本研究では、特にキャッシュ階層の認識が、並列モデル検査における高性能を実現する上で極めて重要であることが明らかになった。

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

論文設計から論文執筆まで、研究時間を劇的に削減しましょう。

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

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