9 Punkte von GN⁺ 2023-08-22 | 1 Kommentare | Auf WhatsApp teilen
  • GNU Parallel ist nützlich, um E2E-Tests parallel auszuführen
  • Der Autor wollte Statistiken zur Erfolgs-/Fehlerrate einer lange laufenden Test-Suite für einen Live-Service über HTTP erfassen
  • Zunächst führte der Autor die Tests in bash mit verschachtelten Schleifen aus, aber da jeder Test lange dauerte, war diese Methode langsam
  • Danach setzte er GNU Parallel ein, um die Tests parallel auszuführen; Performance und Funktionsumfang verbesserten sich mit weniger Code deutlich
  • In GNU Parallel wird festgelegt, dass Befehle parallel ausgeführt werden, und Platzhalter ({1}, {2} usw.) werden durch Eingabewerte ersetzt
  • Die Eingaben für den Befehl werden nach dem Operator ::: angegeben und dem Befehl in allen möglichen Kombinationen übergeben
  • GNU Parallel bietet Optionen zur Steuerung der Parallelität, etwa zum Begrenzen der Anzahl gleichzeitiger Jobs oder zum Verzögern des Starts einzelner Jobs, um Ressourcenkonflikte zu vermeiden
  • Das Tool kann auch CSV-Dateien mit den Ergebnissen abgeschlossener Jobs ausgeben, einschließlich Laufzeit, Exit-Code und erfasstem stdout/stderr
  • Der Autor empfiehlt das Buch von GNU-Parallel-Autor Ole Tange, um weitere Funktionen des Tools tiefer zu erkunden, etwa das Verteilen von Jobs per SSH auf andere Hosts, das Überwachen der Abschlusszeiten von Jobs, das erneute Ausführen von Jobs mit hoher Fehlerwahrscheinlichkeit, das Fortsetzen unterbrochener paralleler Ausführungen oder das Begrenzen der Job-Parallelität anhand der CPU-Auslastung

1 Kommentare

 
GN⁺ 2023-08-22
Hacker-News-Kommentare
  • Hinweise auf den Nutzen und die Grenzen von GNU Parallel sowie Vorschläge für Alternativen wie YSH, Nushell und Fish
  • Meinung eines Nutzers, der die aktuellen Grenzen von Computern bei der Nutzung von Parallelisierungsfunktionen betont und mehr Kerne sowie lokal inhaltsadressierbaren Speicher fordert
  • Mehrere Nutzer berichten von positiven Erfahrungen mit GNU Parallel, etwa bei der Erzeugung von Testdaten, der Datenübertragung, vielen Aufgaben im HPC-Bereich und Pipelines mit einfachen Datenabhängigkeiten
  • Nutzer vergleichen GNU Parallel mit anderen Tools wie xargs und task spooler und merken an, dass GNU Parallel für bestimmte Aufgaben nützlich ist, bei der Geschwindigkeit jedoch langsamer sein kann
  • Einige Nutzer äußern Bedenken bezüglich der Zitierproblematik rund um GNU Parallel, etwa wegen der Aufforderung des Autors, das Tool zu zitieren oder dafür zu bezahlen
  • Nutzer teilen Anwendungsfälle, in denen GNU Parallel große Zeitersparnisse ermöglicht hat, zum Beispiel bei der Stapelkomprimierung großer Mengen von JPEG-Bildern in kleine WebP-Dateien
  • Ein Nutzer erwähnt eine Shell-Skript-Version von GNU Parallel, die sich für Aufgaben in CI/CD-Pipelines verwenden lässt
  • Ein Nutzer berichtet von Erfahrungen mit den ForEach-Object-Cmdlets von PowerShell mit dem Parameter -parallel und hebt den Reiz der Parallelisierung mit Kommandozeilen-Tools hervor