Ferramentas de compactação multinúcleo

Ferramentas de compactação multinúcleo

O queferramentas de compressãoestão disponíveis no Ubuntu que podem se beneficiar de uma CPU multi-core.

Responder1

Bem, a palavra-chave eraparalelo. Depois de procurar todas as ferramentas de compressão que também foramparaleloEu encontrei o seguinte:

PXZ- Parallel XZ é um utilitário de compactação que aproveita a execução da compactação LZMA de diferentes partes de um arquivo de entrada em vários núcleos e processadores simultaneamente. Seu objetivo principal é utilizar todos os recursos para acelerar o tempo de compactação com o mínimo de influência possível na taxa de compactação.

sudo apt-get install pxz

PLZIP- Lzip é um compressor de dados sem perdas baseado no algoritmo LZMA, com verificação de integridade muito segura e uma interface de usuário semelhante à do gzip ou bzip2. O Lzip descompacta quase tão rápido quanto o gzip e compacta melhor que o bzip2, o que o torna adequado para distribuição de software e arquivamento de dados.

Plzip é uma versão massivamente paralela (multithread) do lzip usando o formato de arquivo lzip; os arquivos produzidos pelo plzip são totalmente compatíveis com o lzip.

Plzip é projetado para compactação/descompactação mais rápida de arquivos grandes em máquinas multiprocessadoras, o que o torna especialmente adequado para distribuição de grandes arquivos de software e arquivamento de dados em grande escala. Em arquivos grandes o suficiente, o plzip pode usar centenas de processadores.

sudo apt-get install plzip

PORCO- pigz, que significa Parallel Implementation of GZip, é um substituto totalmente funcional para gzip que aproveita vários processadores e múltiplos núcleos ao compactar dados.

sudo apt-get install pigz

PBZIP2- pbzip2 é uma implementação paralela do compressor de arquivos de classificação de blocos bzip2 que usa pthreads e atinge aceleração quase linear em máquinas SMP. A saída desta versão é totalmente compatível com bzip2 v1.0.2 (ou seja: qualquer coisa compactada com pbzip2 pode ser descompactada com bzip2).

sudo apt-get install pbzip2

LRZIP- Um programa de compactação multithread que pode atingir taxas de compactação e velocidade muito altas quando usado com arquivos grandes. Ele usa os algoritmos de compactação combinados zpaq e lzma para compactação máxima, lzo para velocidade máxima e redução de redundância de longo alcance do rzip. Ele foi projetado para ser dimensionado com o aumento do tamanho da RAM, melhorando ainda mais a compactação. A escolha de otimizações de tamanho ou velocidade permite uma compactação melhor do que o lzma pode fornecer, ou melhor velocidade do que o gzip, mas com níveis de compactação do tamanho do bzip2.

sudo apt-get install lrzip

Um pequeno benchmark de compressão (usando o teste criado por Oli):

TAMANHO DO ARQUIVO ORIGINAL - 100 MB
PBZIP2 - 101 MB (1% maior)
PXZ - 101 MB (1% maior)
PLZIP - 102 MB (1% maior)
LRZIP - 101 MB (1% maior)
PIGZ - 101 MB (1% maior) )

Um pequeno benchmark de compactação (usando um arquivo de texto):

TAMANHO DO ARQUIVO ORIGINAL - 70 KB Arquivo de texto
PBZIP2 - 16,1 KB (23%)
PXZ - 15,4 KB (22%)
PLZIP - 15,5 KB (22,1%)
LRZIP - 15,3 KB (21,8%)
PIGZ - 17,4 KB (24,8%)

Responder2

Existem duas ferramentas principais. lbzip2e pbzip2. São implementações essencialmente diferentes de compressores bzip2. Eu os comparei (a saída é uma versão organizada, mas você deve conseguir executar os comandos)

cd /dev/shm  # we do all of this in RAM!
dd if=/dev/urandom of=bigfile bs=1024 count=102400

$ lbzip2 -zk bigfile 
Time: 0m3.596s
Size: 105335428 

$ pbzip2 -zk bigfile
Time: 0m5.738s6
Size: 10532460

lbzip2parece ser o vencedor em dados aleatórios. É um pouco menos compactado, mas muito mais rápido. YMMV.

Responder3

Atualizar:

Utilitários XZsuporta compactação multithread desde a v5.2.0, foi originalmente documentado erroneamente como sendo descompactação multithread.

Por exemplo:tar -cf - source | xz --threads=0 > destination.tar.xz

Responder4

Zpadrãosuporta multi-threading desdev1.2.0¹. É um compressor e descompressor muito rápido destinado a substituir o gzip e também pode compactar tão eficientemente (se não melhor) quanto o LZMA2/XZ em seus níveis mais altos.

Você tem que usarum desses lançamentosou compile a versão mais recente do código-fonte para obter esses benefícios. Felizmente, ele não atrai muitas dependências.

Houve também um pzstd de terceiros na v1.1.0 do zstd.

informação relacionada