科学・技術
ALP: 適応型ロスレス浮動小数点圧縮
ALP: Adaptive lossless floating-point compression (github.com)
要約
ACM SIGMOD 2024で発表されたALP(Adaptive Lossless Floating-Point Compression)は、IEEE 754浮動小数点データ向けの最先端ロスレス圧縮アルゴリズムです。実世界の浮動小数点数によく見られる、10のべき乗で整数化する手法や、高精度値の左側部分を圧縮する手法を組み合わせることで、デコード速度、圧縮率、圧縮速度の全ての指標で既存手法を上回る性能を示しました。このリポジトリには、ソースコード、ベンチマーク、およびACMの最優秀アーティファクト賞を受賞した再現性レポートが含まれています。
全文翻訳
ALP: 適応型ロスレス浮動小数点圧縮
著者: Azim Afroozeh, Leonardo Kuffó, Peter Boncz
会議: ACM SIGMOD 2024
このリポジトリは何ですか?
このリポジトリには、ACM SIGMOD 2024で発表された論文「ALP: Adaptive Lossless Floating-Point Compression」のソースコードとベンチマークが含まれています。ALPは、IEEE 754浮動小数点データ向けに設計された最先端のロスレス圧縮アルゴリズムです。実世界の浮動小数点数によく見られる2つの一般的なパターンを利用してデータをエンコードします。
10進浮動小数点数:実世界のデータセットにおける浮動小数点数/倍精度浮動小数点数の大部分は10進数です。ALPはこれらの値を10のべき乗を掛けて整数にマッピングし、その後、SIMDフレンドリーなFrame-of-ReferenceエンコーディングのFastLanesバリアントを使用して圧縮します¹。例:数値10.12は1012になり、FastLanesエンコーダーに渡されます。
高精度浮動小数点数:残りの値は通常、高精度浮動小数点数/倍精度浮動小数点数です。ALPはこれらの値の左側部分のみの圧縮機会を対象とし、これをFastLanes辞書エンコーディングを使用して圧縮します。右側は、高い精度を維持するために必要であり、しばしば非常にランダムで圧縮不可能であるため、圧縮されずに残されます。
📊 ALPはどのように機能しますか?
これらの結果は、圧縮アルゴリズムの3つの主要な指標すべてにおいて、ALPの優れたパフォーマンスを強調しています:デコード速度、圧縮率、および圧縮速度—すべてのカテゴリで他のスキームを上回っています。
🧪 結果を再現するにはどうすればよいですか?
次のスクリプトを実行してください:./publication/script/master_script.sh
ベンチマークの再現方法の詳細については、こちらのガイドを参照するか、公式のACM再現性レポートをお読みください:https://dl.acm.org/doi/10.1145/3687998.3717057
🏅 ACMアーティファクトとアワード
SIGMODの可用性と再現性イニシアチブに参加し、論文が3つのバッジすべてを獲得したことを共有できることを嬉しく思います:🎉
また、ALPがSIGMOD最優秀アーティファクト賞を受賞したことを誇りに思います!
⏱️ 自分のデータセットをベンチマークしたいですか?
こちらのガイドをご覧ください:自分のデータセットをベンチマークする方法
これは、自分のデータでALPを実行する方法を説明しています。
🗂️ リポジトリ構造
src/:ALPのコア実装とALP_RD
benchmarks/:ベンチマークツールとデータセット
include/:統合スクリプト用のヘッダーファイル
scripts/:データ処理用のユーティリティスクリプト
test/:単体テスト
publication/:出版物と補足資料
📚 出版物
会議論文:ALP: Adaptive Lossless Floating-Point Compression, ACM SIGMOD 2024 https://dl.acm.org/doi/10.1145/3626717
再現性レポート:Reproducibility Report for ACM SIGMOD 2024 Paper: 'ALP: Adaptive Lossless Floating-Point Compression' https://dl.acm.org/doi/10.1145/3687998.3717057
📄 ライセンス
このプロジェクトはMITライセンスの下でライセンスされています。詳細については、LICENSEファイルを参照してください。
📬 連絡先
質問がある場合、貢献したい場合、またはALPおよび関連プロジェクトの最新情報を知りたい場合は、Discordでコミュニティに参加してください:
🧩 使用されているシステム
ALPは以下のシステムに統合されています:
DuckDB
FastLanes
KuzuDB
liquid-cache
脚注
FastLanesの詳細についてはこちらをご覧ください:https://github.com/cwida/fastlanes ↩