16

In a larger script to post-process some simulation data I had the following line:

parallel bnzip2 -- *.bz2 

Which, if I understand parallel correctly (and I may not), should run n-core threads of the program over all files with the listed extension. You may notice that I misspelled the command bunzip2. I would expect a warning or error message here, but it fails silently. Is this intended? How do I not get bit by this in the future?

Update:

It is possible that I have a different parallel installed than I think I do:

> 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 

A man page of parallel on my system gives:

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

Which seems this is not the GNU version.

2
  • Prints an error on my system. What does parallel --version say? $ parallel bnzip2 -- * sh: bnzip2: command not found Commented Apr 3, 2012 at 15:03
  • GNU parallel is "Copyright (C) 2010,2011,2012 Ole Tange, ole.tange.dk and Free Software Foundation, Inc." (Same author since inception.) Commented Apr 3, 2012 at 18:02

2 Answers 2

22

You have been hit by the confusion with Tollef's parallel from moreutils. See https://www.gnu.org/software/parallel/history.html

You can install GNU Parallel simply by:

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

Watch the intro videos for GNU Parallel to learn more: https://www.youtube.com/playlist?list=PL284C9FF2488BC6D1

2
  • 1
    It all makes sense now! For the record, on Ubuntu 12 right now apt-get install parallel pulls Tollef's parallel not your GNU version. Thanks for filling me in. Commented Apr 8, 2012 at 0:03
  • 1
    For Ubuntu 12, see Where do I get a package for GNU Parallel? Commented Oct 21, 2013 at 19:51
12

(I would make this a comment, but I lack the privileges.)

You can also probably just use parallel --gnu. You said that Ubuntu 12(.04?) uses Tollef's version, but it's actually the gnu implementation, it just defaults to Tollef's syntax by default for some reason.

I added alias parallel='parallel --gnu' to my login script so I don't have to fuss with it anymore.

4

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.