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.
classh is yet another wrapper around ssh for running commands on a number of hosts concurrently. It is similar to xCAT, pssh, Cluster ssh, and a gaggle of other utilities. The only pre-requisite for classh is Python 2.4 or later, and no formal installation is required; a copy of the classh.py file is sufficient to run commands. The SSHJobMan class from classh can be used to create custom job management scripts. This class lets you either wait until all output has returned from a batch job or process the results as they become available by incrementally polling the running job. The output, error messages, exit code, and start and completion times of each job are stored in the results. It's been tested on jobs of over 25,000 hosts and handles over 10,000 hosts per hour across a WAN and without noticeable impact on the administrator's host.