★ wanayoo — archive 1999 https://github.com/lemire/SIMDCompressionAndIntersectionNouvelle recherche | Portail wanayoo
This repository
This repository
All repositories

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS, or Subversion.

Download ZIP

A C++ library to compress and intersect sorted lists of integers using SIMD instructions

C++CShell
branch: master
Switch branches/tags
Nothing to show
Nothing to show
README.md

SIMDCompressionAndIntersection

As the name suggests, this is a C/C++ library for fast compression and intersection of lists of sorted integers using SIMD instructions. The library focuses on innovative techniques and very fast schemes, with particular attention to differential coding. It introduces new SIMD intersections schemes such as SIMD Galloping.

Authors: Leonid Boystov, Nathan Kurz and Daniel Lemire With some contributions from Owen Kaser and others.

Documentation

Daniel Lemire, Leonid Boytsov, Nathan Kurz, SIMD Compression and the Intersection of Sorted Integers, arXiv: 1401.6399, 2014 http://arxiv.org/abs/1401.6399

Simple demo

Check out example.cpp

You can run it like so:

make example ./example

Usage

make ./unit

To run tests, you can do

./testcodecs

(follow the instructions)

Comparison with the FastPFOR C++ library

The FastPFOR C++ Library available at https://github.com/lemire/FastPFor implements some of the same compression schemes except that it is not optimized for the compression of sorted lists of integers.

Licensing

Apache License, Version 2.0

As far as the authors know, this work is patent-free.

Requirements

A desktop CPU (AMD or Intel) with support for SSE 4.1* (Penryn [2007] processors or better).

A recent GCC (4.7 or better), Clang or Intel compiler.

A processor support AVX (Intel or AMD).

Tested on Linux and MacOS. It should be portable to Windows and other platforms.

*- The default makefile might assume AVX support, but AVX is not required. For GCC compilers you might need the -msse4.1 flag, and you will not need the -mavx flag.

For advanced benchmarking, please see

advancedbenchmarking/README.md

where there is additional information.

Acknowledgement

Thanks to Kelly Sommers for useful feedback.

Something went wrong with that request. Please try again.