GNU parallel is a shell tool for executing jobs in parallel locally or using remote computers. A job is typically a single command or a small script that has to be run for each of the lines in the input. The typical input is a list of files, a list of hosts, a list of users, a list of URLs, or a list of tables. If you use xargs today you will find GNU parallel very easy to use, as GNU parallel is written to have the same options as xargs. If you write loops in shell, you will find GNU parallel may be able to replace most of the loops and make them run faster by running several jobs in parallel. GNU parallel makes sure output from the commands is the same output as you would get had you run the commands sequentially. This makes it possible to use output from GNU parallel as input for other programs.
Consh is a set of programs that can turn one or more UNIX hosts on a trusted LAN into a singular Bourne shell multi-computer on which shell scripts are run concurrently. The service abstracts hosts into what appears to be shell process with a fixed number of threads or workers, to which work may be assigned and results received concurrently. It includes utilities that assign commands to workers in parallel and a command that initiates distributed barriers between workers for synchronization purposes. Environment variables can be set on a per-host basis to implement locking mechanisms like semaphores or ticket algorithms. Daemons can delegate work to one another as needed.