Skip to main content
QUICK REVIEW

[論文レビュー] Reuse, don't Recycle: Transforming Lock-free Algorithms that Throw Away Descriptors

Maya Arbel-Raviv, Trevor Brown|arXiv (Cornell University)|Aug 5, 2017
Parallel Computing and Optimization Techniques被引用数 4
ひとこと要約

本論文では、ロックフリーアルゴリズムにおける記述子の割り当てと回収を、記述子の再利用に置き換える変換技術を提案する。これにより、メモリオーバーヘッドを著しく削減し、性能を向上させることができる。弱い記述子ADTを設計し、k-CAS や LLX/SCX などのアルゴリズムに適用することで、ピークメモリ使用量を最大1,000倍まで削減し、正しさやロックフリープログレスを損なわず、顕著な性能向上を達成した。

ABSTRACT

In many lock-free algorithms, threads help one another, and each operation creates a descriptor that describes how other threads should help it. Allocating and reclaiming descriptors introduces significant space and time overhead. We introduce the first descriptor abstract data type (ADT), which captures the usage of descriptors by lock-free algorithms. We then develop a weak descriptor ADT which has weaker semantics, but can be implemented significantly more efficiently. We show how a large class of lock-free algorithms can be transformed to use weak descriptors, and demonstrate our technique by transforming several algorithms, including the leading k-compare-and-swap (k-CAS) algorithm. The original k-CAS algorithm allocates at least k+1 new descriptors per k-CAS. In contrast, our implementation allocates two descriptors per process, and each process simply reuses its two descriptors. Experiments on a variety of workloads show significant performance improvements over implementations that reclaim descriptors, and reductions of up to three orders of magnitude in peak memory usage.

研究の動機と目的

  • ロックフリーアルゴリズムにおける記述子の割り当てと回収によって引き起こされる高い空間的・時間的オーバーヘッドを解消すること。
  • ハザードポインタや DEBRA+ などの複雑なロックフリーメモリ回収メカニズムの必要性を排除すること。
  • 正しさや進行保証を損なわず、広範なクラスのロックフリーアルゴリズムにおいて効率的な記述子再利用を可能にすること。
  • 実世界の並列データ構造に適用可能な実用的で汎用的な変換技術を提供すること。
  • k-CAS や LLX/SCX のような記述子に依存するアルゴリズムにおける、性能とメモリ効率の向上を図ること。

提案手法

  • ロックフリーアルゴリズムにおける記述子使用のための抽象データ型(ADT)を導入し、不変記述子と可変記述子を区別する。
  • メモリ回収を必要とせず安全な再利用を可能にする、緩いセマンティクスを持つ弱い記述子ADTを提案する。
  • 既存の記述子破棄型アルゴリズムを、各プロセスが2つの再利用可能な記述子を使用するように変換するフレームワークを設計する。
  • すべての実行パスにおいて、元のアルゴリズムの意味論が保持されることを証明することで正しさを保証する。
  • k-CAS および LLX/SCX アルゴリズムに変換を適用し、動的割り当てを記述子再利用に置き換える。
  • 多様なワークロードにおいて、従来の記述子回収手法と比較して、性能とメモリ使用量を厳密に実験的に評価する。

実験結果

リサーチクエスチョン

  • RQ1現在記述子を破棄している広範なクラスのロックフリーアルゴリズムに、記述子再利用を安全に適用できるか?
  • RQ2従来の回収手法と比較して、記述子再利用はピークメモリ使用量をどの程度削減できるか?
  • RQ3k-CAS や LLX/SCX のような並列データ構造において、記述子再利用が測定可能な性能向上をもたらすか?
  • RQ4弱い記述子ADTを用いることで、ハザードポインタや類似メカニズムの必要性を排除できるか、正しさが損なわれないか?
  • RQ5変換済みアルゴリズムの性能は、さまざまなワークロードおよびスレッド数においてどのようにスケーリングするか?

主な発見

  • 変換済みの k-CAS アルゴリズムは、次に優れた実装と比較して、ピークメモリ使用量をほぼ3桁削減した。
  • 記述子再利用を用いた k-CAS アルゴリズムは、記述子を回収する実装と比較して、高負荷状態下でも顕著な性能向上を達成した。
  • 記述子再利用を用いた LLX/SCX 実装は、多数の更新を伴うワークロードで顕著な性能優位性を示し、基盤となる二分探索木の効率を向上させた。
  • 弱い記述子ADTは、複雑なメモリ回収機構を必要とせず、安全かつ効率的な記述子再利用を可能にし、ハザードポインタや類似機構の必要性を排除した。
  • この変換は汎用的であり、現在記述子を割り当てて回収している広範なクラスのロックフリーアルゴリズムに適用可能である。
  • 実験により、記述子再利用が、ハードウェアトランザクショナルメモリを搭載しないシステムでさえも、より低いメモリ消費量とより速い実行をもたらすことが確認された。

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

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

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

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