GNU parallel

GNU parallel
GNU parallel
Gnu-parallel-small.png
Développeur Projet GNU
Dernière version 20111022 (22 octobre 2011) [+/-]
Écrit en Perl
Environnement GNU/Linux, FreeBSD, NetBSD, OpenBSD, GNU, UNIX
Type Interface en ligne de commande
Licence GNU GPL
Site web (en) Site officiel

GNU parallel est un utilitaire en ligne de commande développé et maintenu pour le projet GNU par Ole Tange. C'est un logiciel libre permettant l'exécution de routines shell en parallèle sous différents systèmes compatibles UNIX comme GNU/Linux.

Sommaire

Caractéristiques techniques

  • Remplacement d'une boucle en shell , par exemple
   (for x in `cat list` ; do 
       foo $x
   done) | processus_de_sortie

sous la forme simplifiée suivante:

   cat list | parallel foo | processus_de_sortie

où la liste des fichiers contient des arguments pour foo et où le processus de sortie peut être vide.

Les scripts utilisant GNU parallel est souvent plus facile à lire que les scripts utilisant pexec.

GNU parallel comporte également les fonctionnalités suivantes:

  • regroupement de la sortie standard stdout et de la erreur standard stderr afin de traiter séparément la sortie des processus traités en parallèle;
  • ordre des sorties identiques celui des entrées;
  • support des noms de fichiers contenant des caractères spéciaux comme l'espace, les guillemets simples ou doubles, l'esperluette, et des caractères en UTF-8;

GNU parallel peut faire tourner 9 processus en parallèle, mais en utilisant -j+0 il peut être configuré pour détecter le nombre de processeurs et les utiliser tous.

Exemples

 find . -name "*.foo" | parallel grep bar

équivaut à:

 grep bar $(find . -name "*.foo")

Recherche de toutes les occurrences de la chaîne bar dans les fichiers du répertoire courant et ses sous-répertoires finissant par l'extension .foo. La commande parallèle va fonctionner comme prévu à moins que le nom de fichier ne contienne une fin de ligne. Pour contourner cette limitation:

 find . -name "*.foo" -print0 | parallel -0 grep bar

L'exemple ci-dessus rajoute des spécificités GNU à la commande find pour séparer les noms de fichiers en utilisant le caractère nul;


 find . -name "*.foo" | parallel -X mv {} /tmp/trash

La commande ci-dessus utilise {} pour dire à parallel de remplacer {} par la liste des arguments.

 find . -maxdepth 1 -type f -name "*.ogg" | parallel -X -r cp -v -p {} /home/media

L'exemple ci-dessus fait la même chose que:

 cp -v -p *.ogg /home/media

cependant, le 1er utilisant find/parallel/cp consomme moins de ressource et ne va pas s'arrêter avec une erreur si les arguments à *.ogg sont trop nombreux.

Notes et références

Lien externe

Sur les autres projets Wikimedia :



Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article GNU parallel de Wikipédia en français (auteurs)

Игры ⚽ Поможем сделать НИР

Regardez d'autres dictionnaires:

  • Parallel (homonymie) — Cette page d’homonymie répertorie les différents sujets et articles partageant un même nom. Sur les autres projets Wikimedia : « Parallel (homonymie) », sur le Wiktionnaire (dictionnaire universel) Parallel est un manga japonais de …   Wikipédia en Français

  • GNU Octave — screenshot Developer(s) …   Wikipedia

  • GNU screen — mit Split Screen Basisdaten Aktuelle Version: 4.0.3 (7. August 2008) Betriebssystem …   Deutsch Wikipedia

  • Gnu Screen — mit Split Screen Basisdaten Aktuelle Version: 4.0.3 (7. August 2008) Betriebssystem …   Deutsch Wikipedia

  • Parallel coordinates — is a common way of visualizing high dimensional geometry and analyzing multivariate data. To show a set of points in an n dimensional space, a backdrop is drawn consisting of n parallel lines, typically vertical and equally spaced. A point in n… …   Wikipedia

  • GNU Screen — mit Split Screen Basisdaten Aktuelle Version 4.0.3 (7. August 2008) …   Deutsch Wikipedia

  • GNU C-Compiler — GNU Compiler Collection Entwickler: GCC Team Aktuelle Version: 4.4.0 (21. April 2009) …   Deutsch Wikipedia

  • GNU C Compiler — GNU Compiler Collection Entwickler: GCC Team Aktuelle Version: 4.4.0 (21. April 2009) …   Deutsch Wikipedia

  • GNU Octave — Octave avec l interface graphique Octave Works …   Wikipédia en Français

  • GNU Compiler Collection — Entwickler GCC Team Aktuelle Version 4.6.2 (26. Oktober 2011) Betriebssyste …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”