pigz - massima velocità di compressione

consoleIn un precedente articolo ho partlato di pbzip2, cioè l'implementazione di bzip2 con il calcolo parallelo.
Usare tutti i core dei nostri nuovi processori multicore aumenta di molto la velocità di compressione.

Nonostante questo, ho notato che usare il "semplice" gzip rimane spesso la scelta migliore perchè, pur usando un solo core, è più rapido di pbzip2 quando ne usa 2 o anche 4.
Pensate allora alla velocità disumana raggiungibile da gzip se usasse tutti i core disponibili!

Basta installare pigz per togliersi questo sfizio.

Su debian squeeze è già pacchettizzato, quindi basta un semplice 'aptitude install pigz'.
Su debian lenny va compilato ma è veramente una cavolata da fare, quindi non spaventatevi.
Riporto le istruzioni di come fare. Dovrebbero risultare facilmente adattabili a qualsiasi altra distro:

  1. verifica di aver abilitato i repository sorgenti (deb-src) nel tuo sources.list
  2. Installiamo il necessario per la compiazione
    aptitude update; aptitude install zlib1g-dev build-essential
  3. scarica i srogenti (verifica nella home del progetto se c'è una versione aggiornata):
    cd /usr/src; wget http://www.zlib.net/pigz/pigz-2.1.6.tar.gz
  4. estraiamo i file ed entriamo nella directory dei sorgenti
    tar -xzf pigz-2.1.6.tar.gz; cd pigz-2.1.6
  5. compiliamo il programma
    make
  6. copiamo l'eseguibili in /bin (o dove preferite)
    cp pigz /bin

Per provarlo, prendete un file di grandi dimensioni, ad esempio un file .iso e lanciate il comando

pigz -c file.iso > file.iso.gz

Allo stesso tempo, osservate l''uso delle cpu con un monitor di sistema o più semplicemente con il comando top (premete '1' per vedere i singoli core).