
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. lbzip2
e 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
lbzip2
parece 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.