マルチコア圧縮ツール

マルチコア圧縮ツール

圧縮ツールマルチコア CPU のメリットを享受できるものが Ubuntu で利用可能です。

答え1

キーワードは平行圧縮ツールをすべて調べた後、平行次のことがわかりました:

PXZ- Parallel XZ は、複数のコアとプロセッサで同時に入力ファイルのさまざまな部分の LZMA 圧縮を実行することを利用した圧縮ユーティリティです。その主な目的は、すべてのリソースを活用して、圧縮率への影響を最小限に抑えながら圧縮時間を短縮することです。

sudo apt-get install pxz

PLZIP- Lzip は、LZMA アルゴリズムに基づくロスレス データ コンプレッサーで、非常に安全な整合性チェックと、gzip や bzip2 に似たユーザー インターフェイスを備えています。Lzip は gzip とほぼ同じ速度で解凍し、bzip2 よりも優れた圧縮率を誇るため、ソフトウェアの配布やデータのアーカイブに最適です。

plzip は、lzip ファイル形式を使用する lzip の超並列 (マルチスレッド) バージョンです。plzip によって生成されるファイルは lzip と完全に互換性があります。

plzip は、マルチプロセッサ マシン上で大きなファイルをより高速に圧縮/解凍することを目的としており、大きなソフトウェア ファイルの配布や大規模なデータ アーカイブに特に適しています。十分に大きなファイルの場合、plzip は数百のプロセッサを使用できます。

sudo apt-get install plzip

ピグズ- pigz は、GZip の並列実装の略で、データを圧縮するときに複数のプロセッサと複数のコアを活用する、gzip の完全な機能代替品です。

sudo apt-get install pigz

PBZIP2- pbzip2 は、pthreads を使用して SMP マシン上でほぼ線形の高速化を実現する bzip2 ブロックソート ファイル コンプレッサーの並列実装です。このバージョンの出力は、bzip2 v1.0.2 と完全に互換性があります (つまり、pbzip2 で圧縮されたものはすべて bzip2 で解凍できます)。

sudo apt-get install pbzip2

LRZIP- マルチスレッド圧縮プログラム。大容量ファイルに使用すると、非常に高い圧縮率と速度を実現できます。zpaq と lzma の圧縮アルゴリズムを組み合わせて使用​​して最大限の圧縮を実現し、lzo で最大限の速度を実現し、rzip の長距離冗長性削減を実現します。RAM サイズの増加に合わせて拡張できるように設計されており、圧縮をさらに向上させます。サイズまたは速度の最適化のいずれかを選択すると、lzma よりも優れた圧縮、または gzip よりも優れた速度で bzip2 サイズの圧縮レベルを実現できます。

sudo apt-get install lrzip

小さな圧縮ベンチマーク (Oli が作成したテストを使用):

元のファイルサイズ - 100 MB
PBZIP2 - 101 MB (1% 大きい)
PXZ - 101 MB (1% 大きい)
PLZIP - 102 MB (1% 大きい)
LRZIP - 101 MB (1% 大きい)
PIGZ - 101 MB (1% 大きい)

小さな圧縮ベンチマーク (テキスト ファイルを使用):

元のファイルサイズ - 70 KB テキストファイル
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%)

答え2

主なツールは 2 つあります。lbzip2と ですpbzip2。これらは本質的には bzip2 圧縮ツールの異なる実装です。これらを比較しました (出力は整理されたバージョンですが、コマンドは実行できるはずです)

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ランダム データでは勝者のようです。圧縮率は若干劣りますが、はるかに高速です。状況によります。

答え3

アップデート:

XZユーティリティv5.2.0 以降ではマルチスレッド圧縮をサポートしていますが、当初はマルチスレッド解凍であると誤って記載されていました。

例えば:tar -cf - source | xz --threads=0 > destination.tar.xz

答え4

Z標準マルチスレッドをサポートバージョン1.2.0¹. これは gzip の代替を目的とした非常に高速な圧縮および解凍プログラムであり、最高レベルでは LZMA2/XZ と同等の効率 (またはそれ以上) で圧縮できます。

使用する必要がありますこれらのリリースの1つ、またはソースから最新バージョンをコンパイルして、これらの利点を得てください。幸いなことに、多くの依存関係は取り込まれません。

zstd の v1.1.0 にはサードパーティの pzstd もありました。

関連情報