IRDBSep 10, 2012

Decoding billions of integers per second through vectorization

arXiv:1209.2137v7342 citations
AI Analysis

This work addresses CPU time bottlenecks in integer decoding for data-intensive systems, offering incremental improvements over existing vectorized methods.

The paper tackles the problem of fast integer decoding for applications like search engines and databases by introducing SIMD-BP128, which is nearly twice as fast as previous schemes like varint-G8IU and PFOR while saving up to 2 bits per integer, and SIMD-FastPFOR, which achieves compression within 10% of Simple-8b while being two times faster during decoding.

In many important applications -- such as search engines and relational database systems -- data is stored in the form of arrays of integers. Encoding and, most importantly, decoding of these arrays consumes considerable CPU time. Therefore, substantial effort has been made to reduce costs associated with compression and decompression. In particular, researchers have exploited the superscalar nature of modern processors and SIMD instructions. Nevertheless, we introduce a novel vectorized scheme called SIMD-BP128 that improves over previously proposed vectorized approaches. It is nearly twice as fast as the previously fastest schemes on desktop processors (varint-G8IU and PFOR). At the same time, SIMD-BP128 saves up to 2 bits per integer. For even better compression, we propose another new vectorized scheme (SIMD-FastPFOR) that has a compression ratio within 10% of a state-of-the-art scheme (Simple-8b) while being two times faster during decoding.

Code Implementations2 repos
Foundations

The foundational work for this paper's niche, ranked by how specifically the neighbourhood builds on it — not by global fame.

Your Notes