sala@home:~$

pbzip2

Manapság a legtöbb számítógépben többmagos processzor van, a legtöbb program viszont csak egyetlen magot használ. Elég zavaró, amikor egy időigényes program elindításakor azt látjuk, hogy a processzorunk néhány magja nem vesz részt a munkában.

Úgy látszik másokat is zavart ez a probléma, így elkészült a viszonylag gyakran használt bzip2 tömörítőprogram egy olyan változata, amely képes az összes magot használni, és közel lineáris sebességnövekedést ígér. Az új program neve pbzip2, és kompatibilis az eredeti programmal. Egyrészt támogatja bzip2 összes parancssori kapcsolóját, másrészt a két program kölcsönösen képes a másik átal készített tömörített fájlok kitömörítésére.

Sebességteszt

dd if=/dev/urandom of=/tmp/teszt100MB bs=1024 count=100K

bzip2 -c teszt100MB > teszt100MB.bzip2.bz

pbzip2 -c teszt100MB > teszt100MB.pbzip2.bz2

A kétmagos processzorral rendelkező gépen bzip2 44.7 másodperc, míg pbzip2 27.2 másodperc alatt tömöríti a fájlt. A tömörített fájlok mérete között elhanyagolható a különbség.

bzip2 -d teszt100MB.bzip2.bz2

pbzip2 -d teszt100MB.pbzip2.bz2

A kitömörítéshez 17.6 illetve 10.1 másodpercre volt szükség. Érdemes a kitömörítéssel kapcsolatban megjegyezni, hogy pbzip2 csak akkor tudja a kitömörítést párhuzamosítani, ha pbzip2-vel készült a tömörített file. A hagyományos bzip2-vel készülteknél csak 1 magot használ.

Ha kicsit kutatunk a weben, több hasonló programot találunk, melyek mind bzip2 párhuzamosításával foglalkoznak. Itt most csak lbzip2-re hívnám fel a figyelmet, mivel magyar fejlesztője van.