GNU Parallel
by GNU Project (Ole Tange) · CLI tool · also known as parallel
Shell tool that runs commands in parallel over input lines on one or several machines, as a drop-in alternative to xargs and shell loops
Overview
GNU Parallel is a command-line tool from the GNU Project, written and maintained by Ole Tange, for executing jobs in parallel on one or more computers. It reads a list of inputs (files, hosts, URLs, table names or lines from a pipe) and runs a command once per input, keeping a configurable number of jobs running at a time. Output is buffered so that results appear exactly as if the commands had run sequentially, which lets it slot into pipelines. The options deliberately mirror xargs, and it can replace most for loops in shell scripts.
With --sshlogin it distributes jobs to remote hosts over SSH, transferring input files and returning results, which makes it a lightweight way to use a handful of machines, such as a cluster of Macs, without a scheduler. Other features include job logs, retries, resumable runs, progress display and splitting large inputs into chunks for parallel processing.
It is licensed under the GPL version 3 or later and is available through Homebrew and all major Linux distributions. The program asks users to cite it in academic work (silenceable with --citation), which some find intrusive, and it is a Perl script that depends on Perl being present; it does not provide scheduling, queues or fault tolerance beyond simple retries.
Capabilities
- Parallel execution of a command over input lines
- Remote execution over SSH with file transfer
- Ordered output buffering for pipeline use
- Job logs, retries and resumable runs
- Splitting large inputs into blocks
Typical workflows
- Convert thousands of files using all cores
- Run a script on each host in a list via SSH
- Chunk a large text file through a processing command
Strengths
- Zero setup; one Perl script
- Familiar xargs-style options
- Works across machines without a scheduler
Limitations
- No queueing, priorities or persistent state
- Citation notice must be acknowledged
- Depends on Perl and SSH for remote jobs
Prerequisites
- Perl
- SSH access for remote hosts
Who it is for
- Shell users processing many files
- Researchers running embarrassingly parallel jobs
Alternatives & comparison
- Dask
Python library for parallel and distributed computing that scales pandas, NumPy and custom task graphs from a laptop to a cluster
Open sourceOpen source - Ray
Open-source Python framework for distributing tasks, actors and ML workloads across a cluster, with libraries for data processing, training, tuning, serving and reinforcement learning
Open sourceOpen source - Slurm Workload Manager
Open-source cluster resource manager and job scheduler for Linux clusters, allocating nodes, launching jobs and managing queues on many HPC systems
Open sourceOpen source
Sources & verification
Primary sources consulted for this record. Claims are tied to the fields each source supports; the automated link checker re-verifies every URL on a schedule.
- Official documentationGNU Parallel manualchecked Nov 1, 2026
https://www.gnu.org/software/parallel/man.html
Supports: capabilities, license_spdx, limitations
Manual states GPL version 3 or later
- Official sitechecked Nov 1, 2026
- Repositorychecked Nov 1, 2026
- Confidence
- High
- Reviewed
- Nov 1, 2026
- Links
- Verified · Nov 2, 2026
Spotted an error?
More in Distributed & parallel computing
Kubernetes
Cloud Native Computing Foundation · Containers & virtualization
Open-source system for scheduling, scaling and operating containerized workloads across a cluster of machines
vLLM
vLLM project (originated at UC Berkeley Sky Computing Lab) · Local LLM inference & serving
High-throughput LLM inference and serving engine with PagedAttention, continuous batching, quantization and an OpenAI-compatible server for GPU and accelerator clusters
Apache Spark
Apache Software Foundation · Analytical engines & OLAP
Distributed data processing engine with DataFrame and SQL APIs in Python, Scala, Java and R, plus structured streaming and MLlib
Open MPI
Open MPI consortium · Distributed & parallel computing
Open-source implementation of the MPI message-passing standard used to run tightly coupled parallel programs across the nodes of a cluster
exo
Exo Labs · Distributed & parallel computing
Open-source software that pools several Apple Silicon Macs (and Linux hosts) into one local inference cluster, sharding large models across devices with MLX