Compression 7-Zip sur les ordinateurs multicœurs

20

7-Zip tire - t -il parti des systèmes multiprocesseurs ou multicœurs lors de la compression?

Par exemple, y aurait-il une accélération de près de 16 fois sur un système à 16 cœurs en supposant qu'il n'y ait pas de goulots d'étranglement de disque ou de mémoire?

Ou est-il limité à 2 threads (accélération 2 fois sur les systèmes avec plus d'un processeur ou noyau)?


Edit : Pour résumer: la version stable actuelle de 7-Zip (et plus ancienne) ne tire pas pleinement parti de plus de 2 CPU / cœurs lors de la compression en 7z (uniquement pour Zip et BZip2), mais la version 9 (actuellement en version bêta) ne le fait pas . L'option de ligne de commande pour utiliser 16 cœurs avec la version 9 est (c'est dans le dossier d'installation de la version Windows, dans le fichier d'aide, 7-zip.chmVersion de ligne de commande / Commutateurs / -m (Définir la méthode de compression) / <near> "Ensembles mode multithread "):

-mt16
Peter Mortensen
la source
1
Je ne pense pas que le résumé soit assez précis, voir certaines des autres réponses pour plus de détails ...
rogerdpack

Réponses:

10

Vous devez utiliser la version bêta pour accéder à plus de cœurs. La bêta est stable sur d'autres logiciels, ne vous en faites pas. Il y avait une explication dans un message du forum sur le site officiel. Je l'utilise depuis un certain temps déjà, et cela ne pose aucun problème.

Première

Seconde

Au fait, j'utilise 7z 9.13 beta x64 à la minute. L'utiliser sur des environnements productifs aussi, génialité. (Merci Igor pour l'excellent logiciel.;))

Apache
la source
3
Depuis lors, une nouvelle version stable est sortie, qui prend en charge la compression multi-thread par défaut, pas besoin de la version bêta.
Apache
Ce n'est pas correct. Il peut utiliser 4, 8 et plus de cœurs. Utilisez simplement la dernière version. Mon Dieu.
Apache
4
Notez que cette réponse utilise LZMA2 et non LZMA. LZMA2 peut utiliser plus de deux cœurs en divisant le fichier en morceaux et en les traitant indépendamment. Cela peut entraîner LZMA offrant des taux de compression plus élevés.
Louis
4

Lors de la création d'un fichier 7-Zip, il peut utiliser deux threads, tandis que lors de la création d'un fichier ZIP, il peut utiliser huit threads (sur ma machine à huit cœurs).

akira
la source
1
Vous pouvez utiliser 7z avec la méthode LZMA2 pour utiliser le maximum de cœurs
Behrouz.M
1
@raypixar Ne fonctionne pas pour moi sur un ordinateur i7. Seul l'algorithme BZip2 lui permet de fonctionner sur 8 threads, l'autre algorithme ne fonctionne pas à 100%, seulement ~ 20% au mieux. EVen LZMA2 affiche 8/8 core dans le panneau de configuration, mais lors du traitement, il n'ultilise que ~ 20% du processeur.
Edward
1
@Edward: ne peut pas confirmer vos chiffres / votre expérience: sur mon i5 7z-9.22beta utilise entre 75% et 95% du processeur et génère entre 8 et 32 ​​threads pour archiver un dossier de ~ 240 Mo plein de mp3. .bz2.7z a pris des âges, .lzma2.7z était assez rapide (tous les ultra-paramètres) et juste un peu plus grand que .bz2.7z.
akira
1
@akira Ouais, je sais. Quoi qu'il en soit, le commentaire précédent directement à la suggestion "ray pixar" du membre - utilisez 7z avec LZMA2 pour utiliser tous les cœurs, mais dans mon cas, ce n'est pas le cas. À propos de vos chiffres, je pense que c'est logique. J'ai cherché dans ce site su plus de fois après avoir lu cet article et découvert peut-être quelque chose de mal avec mon installation 7zip actuelle. Mais le problème n'apparaît que dans l'interface graphique (UI graphique), il n'utilise pas plus de 20% de CPU lorsque je compresse les fichiers avec la méthode LZMA2. Ce n'est que lorsque j'utilise la ligne de commande avec un paramètre tel que -m0 = lzma2 -mmt = 8 que la compression prend 100% du processeur, sinon avec l'interface graphique, je n'ai pas compris pourquoi cela ne fonctionne pas.
Edward
2

Selon l'article de Wikipedia :

7-Zip prend en charge de nombreuses fonctionnalités, notamment:

  1. Prise en charge du chiffrement AES 256 bits. Le cryptage peut être activé pour les fichiers et la structure de répertoires 7z. Lorsque la structure du répertoire est chiffrée, les utilisateurs sont tenus de fournir un mot de passe pour voir les noms de fichiers contenus dans l'archive, sauf si seules les données ont été chiffrées mais pas les noms de fichiers. La norme de cryptage AES développée par WinZip est également disponible en 7-Zip pour crypter les archives ZIP avec AES 256 bits, mais elle n'offre pas de cryptage de nom de fichier comme dans les archives 7z.
  2. Volumes de tailles variables dynamiquement, permettant l'utilisation pour les sauvegardes sur des supports amovibles tels que les CD et DVD inscriptibles.
  3. Facilité d'utilisation en tant que gestionnaire de fichiers orthodoxe de base lorsqu'il est utilisé en mode 2 panneaux.
  4. Plusieurs paramètres CPU / core / threading peuvent être configurés.
  5. La possibilité d'essayer d'ouvrir des fichiers EXE en tant qu'archives, permettant la décompression des données de nombreux programmes de type "SetUp" ou "Installer" ou "Extraire" sans avoir à les lancer.
  6. La possibilité de décompresser des archives avec des noms de fichiers corrompus, en renommant les fichiers selon les besoins. La possibilité de créer des archives auto-extractibles mais ne peut pas le faire pour les archives multi-volumes.

Ouvrez donc l'application et voyez quel multithread est pris en charge.

ta.speot.is
la source
0

Vous pouvez également utiliser la version 7-Zip Zstandard , qui prend en charge jusqu'à 256 threads pour les 5 codecs supplémentaires.

Les codecs sont:

  1. Brotli
  2. LZ4
  3. LZ5
  4. Lézard
  5. Zstandard

Exécutez-le comme:

7z a archiv.7z -m0=brotli -mx1 -mmt=1

...

7z a archiv.7z -m0=brotli -mx1 -mmt=256

Tino Reichardt
la source