Synopsis:
usage: cl_run [options] program -c # use # child processes at once -t test only, print commands but don't execute -v verbose output -V really verbose output
Description:
The cl_run command is used to run a single Unix command or program on
a remote machine, scheduled in a best-effort fashion.
It uses the output from the "ps x" command to see if other
remote ssh or rsh sessions are running. If it finds
any such open sessions, it avoids those machines. If it runs out of
machines, it goes back to the first machine in the host list.
This is particularly useful for doing a parallel make across
several compilation machines.
cl_run is a Perl script that simply automates the process of rsh-ing to the remote machines and executing the command there.
Note that many program options will interfere with the Herdtools command options. You should always enclose your program and arguments with double quotes to avoid this possibility.
Options:
By default, cl_run will scan the default configuration file
for the cluster and run the command on the first host in the
allhostinfo hash table.
If you have tagged your compilation machines (where, perhaps, the f90 compiler is licensed), then you can try:
% make -j 8 FF="cl_run -i f90 -- f90"Note that the "-j 8" option to make is required so that make knows to spawn at most 8 simultaneous jobs. Note that make thinks that all 8 jobs are running locally. It will spawn 8 children, each will execute the FF compiler, which in this case will ssh to a remote machine before executing the true f90 command. Note the use of the "-i f90" argument to insure that all remote machines will have the f90 compiler present. Note also the use of the "--" argument to signal the end of the cl_run arguments and the start of the user program (or the compiler, in this case).
RCSID $Id: cl_run.html,v 1.2 2002/03/12 14:11:18 jpormann Exp $