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
- 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 parallelizes the
reads and writes on NUMA nodes)
- 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
- It is thread-safe, that means that the methods can be called from
- 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.
The Dynamic Link Libraries for Windows and Dynamic shared libraries for
Linux of the compression and decompression algorithms of my Parallel Compression Library and for my Parallel archiver were compiled from C
with the optimization level 2 enabled, so they are very fast.
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
Just look at the Easy compression library for example, if you have
noticed it's not a parallel compression library:
My parallel compression library costs you 0$ and it's a parallel
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.