- 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
Discussion sur Hacker News
ForEach-Objectde PowerShell avec le paramètre-parallel, en soulignant l’attrait de la parallélisation via des outils en ligne de commande