Pourquoi le parallèle (GNU?) Échoue-t-il silencieusement et comment le corriger?

15

Dans un script plus grand pour post-traiter certaines données de simulation, j'avais la ligne suivante:

parallel bnzip2 -- *.bz2

Ce qui, si je comprends parallelbien (et peut-être pas), devrait exécuter les threads n-core du programme sur tous les fichiers avec l'extension répertoriée. Vous remarquerez peut-être que j'ai mal orthographié la commande bunzip2. Je m'attendrais à un avertissement ou un message d'erreur ici, mais il échoue silencieusement. Est-ce prévu? Comment pourrais-je ne pas être mordu par cela à l'avenir?

Mise à jour:

Il est possible que j'aie parallelinstallé un autre que je pense que je fais:

> parallel --version`


parallel: invalid option -- '-'
parallel [OPTIONS] command -- arguments
    for each argument, run command with argument, in parallel
parallel [OPTIONS] -- commands
    run specified commands in parallel

Une page de manuel de parallelsur mon système donne:

 parallel(1)                                                        parallel(1)
NAME
       parallel - run programs in parallel
....
AUTHOR
   Tollef Fog Heen

Ce qui ne semble pas être la version GNU.

Accroché
la source
Imprime une erreur sur mon système. Que parallel --versiondit-on? $ parallel bnzip2 -- * sh: bnzip2: command not found
Mikel
Le parallèle GNU est "Copyright (C) 2010,2011,2012 Ole Tange, ole.tange.dk et Free Software Foundation, Inc." (Même auteur depuis sa création.)
Mat

Réponses:

20

Vous avez été frappé par la confusion avec le parallèle de Tollef de moreutils. Voir https://www.gnu.org/software/parallel/history.html

Vous pouvez installer GNU Parallel simplement en:

wget http://git.savannah.gnu.org/cgit/parallel.git/plain/src/parallel
chmod 755 parallel
cp parallel sem

Regardez les vidéos d'introduction pour GNU Parallel pour en savoir plus: https://www.youtube.com/playlist?list=PL284C9FF2488BC6D1

Ole Tange
la source
1
Tout s'explique maintenant! Pour mémoire, sur Ubuntu 12 apt-get install paralleltire actuellement le parallèle de Tollef et non votre version GNU. Merci de m'avoir
renseigné
12

(Je voudrais en faire un commentaire, mais je n'ai pas les privilèges.)

Vous pouvez également probablement simplement utiliser parallel --gnu. Vous avez dit qu'Ubuntu 12 (.04?) Utilise la version de Tollef, mais c'est en fait l'implémentation de gnu, elle utilise par défaut la syntaxe de Tollef par défaut pour une raison quelconque.

J'ai ajouté alias parallel='parallel --gnu'à mon script de connexion pour ne plus avoir à m'en occuper.

billyjmc
la source
2
Vous pouvez également ajouter --gnuà $ HOME / .parallel / config.
Thor
Remarque: La réponse ici concerne un commentaire de @Hooked.
nobar
Voir ici pour une autre approche et un peu plus de détails concernant les versions: askubuntu.com/a/298598/11522 .
nobar
1
Fedora place également --tollef dans / etc / parallel / config de manière frustrante . Comme si cela n'était pas assez désagréable, GNU parallèle lui-même signale que --tollef sera supprimé le 20140222 .
musicinmybrain