bzip2smp is software that parallelizes bzip2 compression, allowing for near-linear performance increases on SMP machines.
In addition to SMP machines, bzip2smp can be used on modern desktop multicore processors such as AMD Athlon64 X2 and Intel Pentium D. However, it is important to note that the program does not support hyperthreading on hyperthreaded machines. This is because hyperthreads do not have dedicated caches and bzip2 is highly cache-dependent.
While the compression process requires more memory than the normal bzip2, it should not pose any problems on typical memory-rich server/workstation hardware. The resulting archives are bit-by-bit identical to the ones produced by the normal bzip2, at least as of version 1.0.2.
It is essential to note that bzip2smp does not support decompression. The compression is stdin-to-stdout only. In case you require additional features, you are welcome to implement them. However, it is important to note that bzip2smp is not fully interchangeable with bzip2.
Furthermore, there is another similar program out there by the name of pbzip2. Unfortunately, it does not offer compression from stdin (meaning no "tar | pbzip2"), does not produce archives equal to the original bzip2, and it felt overall a bit too amateurish for use in production environments. This prompted the development of bzip2smp.
The program incorporates the modified libbzip2 sources (part of bzip2). These sources have been modified as it was not feasible to split the rle compression, block sorting, and bit-storing stages apart with the stock library design. Although this separation is hacked in, it makes the process clean. The library has not been redesigned as that was not the goal.
The program has been tested on Linux, kernel 2.6. It should work on any Posix system with pthreads support although this has not been tested. Therefore, expect compilation problems. The program is meant to be utilized in the production environment and should be stable. However, more testing is welcome. It is important to note that use of the program is at your own risk so users should not blame the developer in case something goes wrong. Instead, send bug reports and patches.
Version 1.0: N/A