Skip to content

Installing GNU Parallel

The normal way: your package manager

GNU Parallel is one Perl program with no compiled parts, so every distribution packages it under the name parallel:

sudo apt install parallel        # Debian, Ubuntu
sudo dnf install parallel        # Fedora
sudo pacman -S parallel          # Arch
brew install parallel            # macOS (Homebrew)

Check it landed:

$ parallel --version | head -1
GNU parallel 20231122

The version is a date: 20231122 is the November 2023 release. This guide's lab ran exactly that, from the Ubuntu 24.04 package, on a two-core machine — so the examples and the option behaviour in these chapters match that build. Newer releases add options; the core of the tool has been stable for years.

One name clash to know about: the parallel command is also provided by an unrelated older tool in the moreutils package. If your parallel refuses simple commands or lacks --version output like the above, you have the other one. Install the GNU package, and check which you got with which parallel.

The other way: the official tarball

Upstream publishes a signed source tarball at https://ftp.gnu.org/gnu/parallel/. It builds to the same single script:

tar -xf parallel-*.tar.bz2
cd parallel-*/
./configure && make && sudo make install

You need this route only if your distribution's version is very old or missing. It also changes one behaviour worth knowing — see the citation note below.

Dependencies

Parallel itself needs only Perl. A few features lean on common tools: mpstat (from the sysstat package) for load-based job control, and an SSH client for running on other machines (chapter 11). The Ubuntu package pulls in what it needs automatically.

The citation notice — read this before it surprises you

GNU Parallel is academic software, funded indirectly by citations, and the author asks people who publish with it to cite it. Upstream builds turn that request into a notice printed to standard error on early runs. It is harmless — it never touches your output — but it alarms people who meet it in a script's logs.

What to do if you see it: run parallel --citation once; it prints the citation, silences the notice for good, and exits. To silence it for a single run only, upstream offers --will-cite.

What this guide's lab verified on the Debian/Ubuntu package (20231122+ds-1): the notice never appears at all. The package ships the program with the citation machinery switched off — parallel --citation is answered with "Unknown option: citation", and the manual page never mentions it. Transcripts t00a and t00b in the lab notes show both. The old --no-notice flag, which older writings recommend, is accepted by this build and simply does nothing.

So: if you installed from Debian or Ubuntu and never see a notice, nothing is wrong. If you installed upstream and do see one, it is expected, and --citation is the whole fix.

Windows and other shells

Parallel runs anywhere Perl and a POSIX-ish shell run: Linux, macOS, the BSDs, and on Windows under WSL, Cygwin or MSYS2. It drives jobs with the shell it finds; the companion program env_parallel, installed alongside, lets it capture your own shell's functions and aliases for use in job commands (chapter 14 mentions where that matters).