Skip to main content
QUICK REVIEW

[論文レビュー] On Weighted k-mer Dictionaries

Giulio Ermanno Pibiri|arXiv (Cornell University)|Jun 4, 2021
Algorithms and Data Compression被引用数 5
ひとこと要約

この論文では、高速な検索性能で知られる最小完全ハッシュ方式PTHashの、マルチスレッドおよび外部メモリ対応の新規構築アルゴリズムを提示する。分割処理のオーバーヘッドを回避することで、大規模データセットに対しても効率的にスケーリング可能であり、並列処理や外部記憶装置を用いた構築時でさえ、競合手法よりも2–6倍速いPTHashの検索速度を維持する。

ABSTRACT

A function $f : U o \{0,\ldots,n-1\}$ is a minimal perfect hash function for a set $S \subseteq U$ of size $n$, if $f$ bijectively maps $S$ into the first $n$ natural numbers. These functions are important for many practical applications in computing, such as search engines, computer networks, and databases. Several algorithms have been proposed to build minimal perfect hash functions that: scale well to large sets, retain fast evaluation time, and take very little space, e.g., 2 - 3 bits/key. PTHash is one such algorithm, achieving very fast evaluation in compressed space, typically several times faster than other techniques. In this work, we propose a new construction algorithm for PTHash enabling: (1) multi-threading, to either build functions more quickly or more space-efficiently, and (2) external-memory processing to scale to inputs much larger than the available internal memory. Only few other algorithms in the literature share these features, despite of their big practical impact. We conduct an extensive experimental assessment on large real-world string collections and show that, with respect to other techniques, PTHash is competitive in construction time and space consumption, but retains 2 - 6$ imes$ better lookup time.

研究の動機と目的

  • 大規模なキー集合に対するPTHashの並列処理および外部メモリ対応の構築を可能にすること。
  • 従来の分割処理手法がもたらす性能およびメモリオーバーヘッドを克服すること。
  • 数十億のキーにスケーリング可能な構築処理においても、PTHashの優れた検索速度を維持すること。
  • 順次/内部メモリ、並列/内部メモリ、順次/外部メモリ、並列/外部メモリの4つの環境にスムーズに適応できる統一アルゴリズムを提供すること。

提案手法

  • 分割処理を回避する新しい一般化されたPTHash構築アルゴリズムを提案し、マルチスレッドおよび外部メモリ処理と互換性を持つようにキーを処理する。
  • 高負荷および低負荷のバケットに論理的にキーを分割するための2段階バケッティング戦略を採用し、しきい値としてp1 = 0.6nおよびp2 = 0.3mを用いる。
  • McDiarmidの不等式を用いて、負荷係数α≥tが期待値の周囲にきわめて集中していることを示し、性能の予測可能性を保証する。
  • バケットサイズのポisson近似を用いて、構築中の試行回数の期待値に関する境界を導出する。
  • スレッド間の負荷分散を実現するように、独立してキーのセグメントを並列処理できるマルチスレッド統合を実装する。
  • 入力データをストリーム処理し、チャンク単位で処理することで、外部メモリをサポートし、メモリ内フットプリントを最小限に抑える。

実験結果

リサーチクエスチョン

  • RQ1PTHashの構築を、空間効率や検索速度を損なわずに、効率的に並列化できるか?
  • RQ2外部記憶装置を用いて、メインメモリを超える入力データに対してPTHashをスケーリングできるか?
  • RQ3新しい構築手法は、従来の分割処理ベースの手法と比較して、構築時間、メモリ使用量、検索パフォーマンスの点でどのように異なるか?
  • RQ4新しいアルゴリズムは、並列処理および外部メモリ実行時においても、PTHashの2–6倍速い検索速度の利点を維持できるか?
  • RQ5新しい手法における構築中の期待試行回数について、理論的保証を提供できるか?

主な発見

  • 新しいPTHash構築手法は、並列処理や外部メモリ使用時でさえ、競合手法よりも2–6倍速い検索時間を達成する。
  • 構築時間およびメモリ使用量は、並列処理および外部メモリ対応をサポートする最先端の手法と同等の性能を示す。
  • 従来の分割処理方式で一般的に見られる30–50%の検索遅延および20%のメモリ増加を回避する。
  • 理論的分析により、大きなバケットでは1バケットあたりの期待試行回数が定数で抑えられ、小さなバケットではゆっくりと増加することが確認された。
  • 順次/内部メモリ、並列/内部メモリ、順次/外部メモリ、並列/外部メモリの4つのすべての設定において、効率的なスケーリングが実現された。
  • 実世界の文字列コレクション(数千万から数十億の文字列)を対象とした実験的評価により、高いパフォーマンスとスケーラビリティが確認された。

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

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

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

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