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).