.
This commit is contained in:
56
README.md
56
README.md
@ -1,15 +1,15 @@
|
||||
TurboPFor: Fastest Integer Compression [](https://travis-ci.org/powturbo/TurboPFor)
|
||||
======================================
|
||||
* **TurboPFor: The new synonym for "integer compression"**
|
||||
* :new: (2019.7) all TurboPFor functions now available under 64 bits ARMv8 including NEON SIMD.
|
||||
* :new: (2019.11) **ALL** TurboPFor functions now available under **64 bits ARMv8** including **NEON** SIMD.
|
||||
* 100% C (C++ headers), as simple as memcpy
|
||||
* :+1: **Java** Critical Natives/JNI. Access TurboPFor **incl. SIMD/AVX2!** from Java as fast as calling from C
|
||||
* :sparkles: **FULL** range 8/16/32/64 bits scalar + 16/32/64 bits SIMD functions
|
||||
* No other "Integer Compression" compress/decompress faster
|
||||
* :sparkles: Direct Access, **integrated** (SIMD/AVX2) FOR/delta/Delta of Delta/Zigzag for sorted/unsorted arrays
|
||||
* :new: **16 bits** + **64 bits** SIMD integrated functions
|
||||
* **16 bits** + **64 bits** SIMD integrated functions
|
||||
* **For/PFor/PForDelta**
|
||||
* **Novel TurboPFor** (PFor/PForDelta) scheme w./ **direct access** + **SIMD/AVX2**. :new:**+RLE**
|
||||
* **Novel TurboPFor** (PFor/PForDelta) scheme w./ **direct access** + **SIMD/AVX2**. **+RLE**
|
||||
* Outstanding compression/speed. More efficient than **ANY** other fast "integer compression" scheme.
|
||||
* Compress 70 times faster and decompress up to 4 times faster than OptPFD
|
||||
* **Bit Packing**
|
||||
@ -17,20 +17,23 @@ TurboPFor: Fastest Integer Compression [ scenarios
|
||||
* **Direct/Random Access** : Access any single bit packed entry with **zero decompression**
|
||||
* **Variable byte**
|
||||
* Scalar **"Variable Byte"** faster than **ANY** other (incl. SIMD) implementation
|
||||
* Scalar **"Variable Byte"** faster and more efficient than **ANY** other implementation
|
||||
* :new: (2019.11) SIMD **TurboByte** fastest group varint (16+32 bits) incl. integrated delta,zigzag,...
|
||||
* :new: (2019.11) **TurboByte+TurboPackV** novel hybrid scheme combining the fastest SIMD codecs.
|
||||
* **Simple family**
|
||||
* **Novel** **"Variable Simple"** (incl. **RLE**) faster and more efficient than simple16, simple-8b
|
||||
* **Elias fano**
|
||||
* Fastest **"Elias Fano"** implementation w/ or w/o SIMD/AVX2
|
||||
+ **Transform**
|
||||
* Scalar & SIMD Transform: Delta, Zigzag, Zigzag of delta, XOR, Transpose/Shuffle,
|
||||
* :new: **lossy** floating point compression with *TurboPFor* or [TurboTranspose](https://github.com/powturbo/TurboTranspose)+lz77
|
||||
* **lossy** floating point compression with *TurboPFor* or [TurboTranspose](https://github.com/powturbo/TurboTranspose)+lz77
|
||||
* **Floating Point Compression**
|
||||
* Delta/Zigzag + improved gorilla style + (Differential) Finite Context Method FCM/DFCM floating point compression
|
||||
* Using **TurboPFor**, unsurpassed compression and more than 5 GB/s throughput
|
||||
* :new: Error bound **lossy** floating point compression
|
||||
* :new: **Time Series Compression**
|
||||
* **Fastest Gorilla** 16/32/64 bits style compression (:new: **zigzag of delta** + **RLE**).
|
||||
* Point wise relative error bound **lossy** floating point compression
|
||||
* :new: (2019.10) **TurboFloat** novel efficient floating point compression using TurboPFor
|
||||
* **Time Series Compression**
|
||||
* **Fastest Gorilla** 16/32/64 bits style compression (**zigzag of delta** + **RLE**).
|
||||
* can compress times series to only 0.01%. Speed > 10 GB/s compression and > 13 GB/s decompress.
|
||||
* **Inverted Index ...do less, go fast!**
|
||||
* Direct Access to compressed *frequency* and *position* data w/ zero decompression
|
||||
@ -47,7 +50,7 @@ TurboPFor: Fastest Integer Compression [ a new benchmark for TurboPFor<br>
|
||||
for testing allmost all integer and floating point file types.
|
||||
- Practical (No **PURE** cache) "integer compression" benchmark w/ **large** arrays.
|
||||
- CPU: Skylake i7-6700 3.4GHz gcc 7.2 **single** thread
|
||||
- CPU: Skylake i7-6700 3.4GHz gcc 8.3 **single** thread
|
||||
|
||||
##### - Synthetic data:
|
||||
- Generate and test (zipfian) skewed distribution (100.000.000 integers, Block size=128/256)<br>
|
||||
@ -56,29 +59,31 @@ TurboPFor: Fastest Integer Compression [|
|
||||
|65,359,916|16.3| 5.23| 32|2436|PC_OptPFD|
|
||||
|73,477,088|18.4| 5.88|408|2484|PC_Simple16|
|
||||
|73,481,096| 18.4| 5.88|624|8748|[FP_SimdFastPFor](#FastPFor) 64Ki *|
|
||||
|76,345,136| 19.1| 6.11|980|2612|**VSimple**|
|
||||
|76,345,136| 19.1| 6.11|1072|2878|**VSimple**|
|
||||
|91,947,533| 23.0| 7.36|284|11737|[QMX](#QMX) 64k *|
|
||||
|93,285,864| 23.3| 7.46|1568|10232|[FP_GroupSimple](#FastPFor) 64Ki *|
|
||||
|95,915,096|24.0| 7.67| 848|3832|Simple-8b|
|
||||
|99,910,930| 25.0| 7.99|**13976**|**11872**|**TurboPackV**|
|
||||
|99,910,930| 25.0| 7.99|9468|9404|**TurboPack**|
|
||||
|99,910,930| 25.0| 7.99|**17298**|**12408**|**TurboByte+TurboPack**|
|
||||
|99,910,930| 25.0| 7.99|**17357**|**12363**|**TurboPackV** sse|
|
||||
|99,910,930| 25.0| 7.99|11694|10138|**TurboPack** scalar|
|
||||
|99,910,930| 25.0| 7.99|8420|8876|**TurboFor**|
|
||||
|100,332,929| 25.1| 8.03|**14320**|**12124**|**TurboPack256V**|
|
||||
|101,015,650| 25.3| 8.08|9520|9484|**TurboVByte**|
|
||||
|102,074,663| 25.5| 8.17|5712|7916|[MaskedVByte](#MaskedVByte)|
|
||||
|100,332,929| 25.1| 8.03|17077|11170|**TurboPack256V** avx2|
|
||||
|101,015,650| 25.3| 8.08|11191|10333|**TurboVByte**|
|
||||
|102,074,663| 25.5| 8.17|6689|9524|[MaskedVByte](#MaskedVByte)|
|
||||
|102,074,663| 25.5| 8.17|2260|4208|[PC_Vbyte](#PolyCom)|
|
||||
|102,083,036| 25.5| 8.17|5200|4268|[FP_VByte](#FastPFor)|
|
||||
|112,500,000| 28.1| 9.00|1528|**12140**|[VarintG8IU](#VarintG8IU)|
|
||||
|125,000,000| 31.2|10.00|4788|11288|[StreamVbyte](#StreamVByte)|
|
||||
|112,500,000| 28.1| 9.00|1528|12140|[VarintG8IU](#VarintG8IU)|
|
||||
|125,000,000| 31.2|10.00|13039|12366|**TurboByte**|
|
||||
|125,000,000| 31.2|10.00|11197|11984|[StreamVbyte 2019](#StreamVByte)|
|
||||
|400,000,000| 100.00| 32.00| 8960|8948|Copy|
|
||||
| | | | N/A | N/A |EliasFano|
|
||||
|
||||
@ -97,7 +102,7 @@ TurboPFor: Fastest Integer Compression [
|
||||
|
||||
|Size |Ratio %|Bits/Integer|C Time MB/s|D Time MB/s|Function |
|
||||
|Size |Ratio %|Bits/Integer|C Time MB/s|D Time MB/s|Function 2019.11|
|
||||
|-----------:|------:|-----:|-------:|-------:|---------------------|
|
||||
| 3,321,663,893| 13.9| 4.44|**1320**|**6088**|**TurboPFor**|
|
||||
| 3,339,730,557| 14.0| 4.47| 32| 2144|PC.OptPFD|
|
||||
@ -105,18 +110,19 @@ TurboPFor: Fastest Integer Compression [
|
||||
./icapp -Ftf file -v5 " + display the first entries read
|
||||
./icapp -Ftf file.csv -K3 " but 3th column in a csv file (ex. number,Text,456.5 -> 456.5
|
||||
./icapp -Ftf file -g.001 " lossy compression with allowed error 0.001
|
||||
./icapp -Ftf file -g.001 " lossy compression with allowed pointwise relative error 0.001
|
||||
|
||||
- see also [TurboTranspose](https://github.com/powturbo/TurboTranspose)
|
||||
|
||||
|
Reference in New Issue
Block a user