GNU parallel

De Wiki de Calcul Québec
Aller à : Navigation, rechercher
Autres langues :anglais 100% • ‎français 100%

Sommaire

Introduction

GNU parallel est un outil pour exécuter plusieurs tâches séquentielles en parallèle sur un ou plusieurs ordinateurs. Il s'agit d'un outil particulièrement utile pour exécuter un grand nombre de tâches séquentielles de courte durée ou de durée variable, sur un jeu de paramètres (exploration de paramètres). Nous couvrirons ici les options de base. Pour des options plus avancées, référez-vous à la documentation officielle.

Par défaut, parallel exécutera autant de tâches que le nombre de cœur de l'ordinateur, s'assurant ainsi d'utiliser les ressources disponibles à 100%. Lorsqu'une tâche se termine, la tâche suivante sera automatiquement lancée par parallel.

Utilisation de base

La commande parallel utilise les accolades {} pour indiquer les paramètres passés en argument à la commande à exécuter. Ainsi, pour exécuter la commande zip sur tous les fichiers texte d'un répertoire, vous pouvez exécuter

[nom@serveur $] ls *.txt | parallel zip {}


Une syntaxe alternative est d'utiliser :::, tel que :

[nom@serveur $] parallel echo {} ::: $(seq 1 3)
 1
2
3


Spécifier plusieurs arguments

Vous pouvez aussi utiliser plusieurs arguments en les numérotant, ainsi :

[nom@serveur $] parallel echo {1} {2} ::: $(seq 1 3) ::: $(seq 2 3)
 1 2
1 3
2 2
2 3
3 2
3 3


Utiliser le contenu d'un fichier comme liste d'arguments

La syntaxe :::: permet d'utiliser le contenu d'un fichier comme valeurs des arguments. Ainsi, si votre liste de paramètres est dans le fichier maliste.txt, vous pouvez afficher son contenu ainsi :

[nom@serveur $] parallel echo {1} :::: maliste.txt


Outils personnels
Espaces de noms

Variantes
Actions
Navigation
Ressources de Calcul Québec
Outils
Partager