Parallel compression library

Parallel Compression Library version 4.32

Author: Amine Moulay Ramdane

Email: aminer68@gmail.com

Description:

Parallel Compression Library implements Parallel LZ4 , Parallel LZMA , and Parallel Zstd algorithms using my Thread Pool Engine.

- It supports memory streams, file streams and files

- 64 bit supports - lets you create archive files over 4 GB , supports archives up to 2^63 bytes, compresses and decompresses files up to 2^63 bytes.

- Parallel compression and parallel decompression are extremely fast

- Now it supports processor groups on windows, so that it can use more than 64 logical processors and it scales well.

- It's NUMA-aware and NUMA efficient on windows

- It minimizes efficiently the contention so that it scales well.

- It supports both compression and decompression rate indicator

- You can test the integrity of your compressed file or stream

- Easy programming interface

- Full source codes available.

Now my Parallel compression library is optimized for NUMA(it parallelizes the reads and writes on NUMA nodes) and it supports processor groups on windows and it uses only two threads that do the IO (and they are not contending) so that it reduces at best the contention, so that it scales well. Also now the process of calculating the CRC is much more optimized and is fast, and the process of testing the integrity is fast.

I have done a quick calculation of the scalability prediction for my Parallel Compression Library, and i think it's good: it can scale beyond 100X on NUMA systems.

Here are the parameters of the constructor:

First parameter is: The number of cores you have specify to run the compression algorithm in parallel.

Second parameter is: A boolean parameter that is processorgroups to support processor groups on windows , if it is set to true it will enable you to scale beyond 64 logical processors and it will be NUMA efficient.

Just look at the Easy compression library for example,

if you have noticed it's not a parallel compression library.

http://www.componentace.com/ecl_features.htm

And look at its pricing:

http://www.componentace.com/order/order_product.php?id=4

My parallel compression library costs you 0$ and it's a parallel compression library..

My Parallel compression library was updated, i have ported the Parallel LZ4 compression algorithm(one of the fastest in the world) to the Windows 64 bit system, now Parallel LZ4 compression algorithm is working perfectly with Windows 32 bit and 64 bit, if you want to use Windows 64 bit Parallel LZ4 just copy the lz4_2.dll inside the LZ4_64 directory (that you find inside the zip file) to your current directory or to the c:\windows\SysWow64 directory, and if you want to use the Windows 32bit Parallel LZ4 use the lz4_2.dll inside the LZ4_32 directory.

If you want to use Windows 64 bit Parallel LZMA with Windows 64 bit just copy the LZMAStream1.dll inside the LZMA_fpc64 directory and LZMAStream2.dll inside LZMA_dcc64 directory to your

current directory or to the c:\windows\SysWow64 directory, and if you want to use Windows 32bit Parallel LZMA copy the LZMAStream1.dll inside the LZMA_fpc32 directory and LZMAStream2.dll inside LZMA_dcc32 directory to your current directory or to the c:\windows\system32 directory.

Language: FPC Pascal v2.2.0+ / Delphi 7+: http://www.freepascal.org/

Operating systems: Windows , Linux

Required FPC switches: -O3 -Sd -dFPC

-Sd for delphi mode....

Required Delphi switches: -$H+ -DDelphi32

Required Delphi XE-XE5 switches: -DXE

{$DEFINE CPU32} and {$DEFINE Windows32} for 32 bit systems

{$DEFINE CPU64} and {$DEFINE Windows64} for 64 bit systems

Please click on the small arrow on the right of the zip file bellow to download...