9 points par GN⁺ 2023-08-22 | 1 commentaires | Partager sur WhatsApp
  • GNU Parallel est utile pour exécuter des tests E2E en parallèle
  • L’auteur cherchait à collecter, sur une longue période, des statistiques sur le taux de réussite/échec d’un ensemble de tests visant un service en production accessible via HTTP
  • Au départ, l’auteur exécutait les tests avec des boucles imbriquées en bash, mais comme chaque test prenait longtemps, cette méthode était lente
  • Il est ensuite passé à GNU Parallel pour exécuter les tests en parallèle, avec une nette amélioration des performances et des fonctionnalités pour moins de code
  • Avec GNU Parallel, on indique quelles commandes doivent être exécutées en parallèle, et les placeholders ({1}, {2}, etc.) sont remplacés par les valeurs d’entrée
  • Les entrées d’une commande sont indiquées après l’opérateur :::, puis fournies à la commande dans toutes les combinaisons possibles
  • GNU Parallel propose des options pour contrôler la concurrence et éviter la contention des ressources, par exemple en limitant le nombre de tâches simultanées ou en retardant le démarrage de chaque tâche
  • L’outil peut aussi produire un fichier CSV contenant les résultats d’exécution des tâches : durée, code de sortie, stdout/stderr capturés
  • L’auteur recommande aussi le livre d’Ole Tange, créateur de GNU Parallel, pour explorer plus en profondeur les fonctionnalités de l’outil : distribuer des tâches sur d’autres hôtes via SSH, surveiller le temps d’achèvement des tâches, réessayer celles qui risquent d’échouer, reprendre une exécution parallèle interrompue, ou encore limiter la concurrence en fonction de l’utilisation CPU

1 commentaires

 
GN⁺ 2023-08-22
Discussion sur Hacker News
  • Plusieurs utilisateurs soulignent l’utilité et les limites de GNU Parallel, tout en proposant des alternatives comme YSH, Nushell et Fish
  • Un utilisateur affirme que les ordinateurs actuels ont encore des limites pour exploiter pleinement le parallélisme, et propose davantage de cœurs ainsi qu’une mémoire locale adressable par contenu
  • Plusieurs utilisateurs partagent des expériences positives avec GNU Parallel pour des tâches comme la génération de données de test, le transfert de données, de nombreux travaux en HPC et des pipelines avec de simples dépendances entre données
  • Des utilisateurs comparent GNU Parallel à d’autres outils comme xargs et task spooler, notant que GNU Parallel est utile pour certaines tâches mais peut être plus lent en termes de vitesse
  • Quelques utilisateurs expriment des inquiétudes au sujet des questions de citation liées à GNU Parallel, notamment la demande de l’auteur de citer l’outil ou de payer
  • Des utilisateurs partagent des cas d’usage où GNU Parallel leur a fait gagner énormément de temps, par exemple pour compresser en lot un grand nombre d’images jpeg en petits fichiers webp
  • Un utilisateur mentionne une version en script shell de GNU Parallel pouvant être utilisée pour des tâches de pipeline CI/CD
  • Un utilisateur partage son expérience des cmdlets ForEach-Object de PowerShell avec le paramètre -parallel, en soulignant l’attrait de la parallélisation via des outils en ligne de commande