On Oct 2, 2012, at 12:36 AM, Yamagi Burmeister <li...@yamagi.org> wrote:

> On Mon, 1 Oct 2012 22:16:53 -0700
> Tim Kientzle <t...@kientzle.com> wrote:
> 
>> There are a few different parallel command-line compressors and 
>> decompressors in ports; experiment a lot (with large files being read from 
>> and/or written to disk) and see what the real effect is.  In particular, 
>> some decompression algorithms are actually faster than memcpy() when run on 
>> a single processor.  Parallelizing such algorithms is not likely to help 
>> much in the real world.
>> 
>> The two popular algorithms I would expect to benefit most are bzip2 
>> compression and lzma compression (targeting xz or lzip format).  For 
>> decompression, bzip2 is block-oriented so fits SMP pretty naturally.  Other 
>> popular algorithms are stream-oriented and less amenable to parallelization.
>> 
>> Take a careful look at pbzip2, which is a parallelized bzip2/bunzip2 
>> implementation that's already under a BSD license.  You should be able to 
>> get a lot of ideas about how to implement a parallel compression algorithm.  
>> Better yet, you might be able to reuse a lot of the existing pbzip2 code.
>> 
>> Mark Adler's pigz is also worth studying.  It's also license-friendly, and 
>> is built on top of regular zlib, which is a nice technique when it's 
>> feasible.
> 
> Just a small note: There's a parallel implementation of xz called
> "pixz". It's build atop of liblzma and libarchiv and stands under a 
> BSD style license. See: https://github.com/vasi/pixz Maybe it's
> possible to reuse most of the code.


See also below, which has some bugfixes/improvements that AFAIK were never 
committed in the original project (though they were submitted).
https://github.com/jlrobins/pixz

JN

_______________________________________________
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "freebsd-hackers-unsubscr...@freebsd.org"

Reply via email to