NAME
loadgo - Run programs on LAM nodes.
SYNTAX
- loadgo [-fhvw] [-s <srcnode>] <nodes>
<programs> [-- <args>]
OPTIONS
- -f
- Do not configure standard I/O file descriptors - use defaults.
- -h
- Print useful information on this command.
- -s <srcnode>
- Load the programs from this source node <srcnode>.
- -v
- Report on important steps as they are done.
- -w
- Wait for all processes to complete before exiting
loadgo. Report any abnormal exit codes.
- -- <args>
- Pass these runtime arguments to every new process. This must
always be the last argument to loadgo.
DESCRIPTION
Most MPI users will not use this command; see
mpirun(1).
This command is only installed if LAM/MPI was configured with the
--with-trillium switch. All specified programs are executed
on all specified nodes. Only one set of runtime arguments may be
specified for all new processes. To load different programs on
different nodes, or to pass different arguments to different
programs, multiple loadgo invocations are necessary.
Program Transfer
By default, LAM searches for executable
programs on the target node where a particular instantiation will
run. If the file system is not shared, the target nodes are
homogeneous, and the program is frequently recompiled, it can be
convenient to have LAM transfer the program from a source node
(usually the local node) to each target node. The -s option
specifies this behaviour and identifies the single source node.
Locating Files
LAM looks for an executable program by
searching the directories in the user's PATH environment variable
as defined on the source node(s). This behaviour is consistent with
logging into the source node and executing the program from the
shell. On remote nodes, the "." path is the home directory.
Standard I/O
LAM directs UNIX standard input to /dev/null
on all remote nodes. On the local node that invoked loadgo,
standard input is inherited from loadgo. Use the -w option
to prevent conflicting access to the terminal.
LAM directs UNIX standard output and error to the LAM daemon on
all remote nodes. LAM ships all captured output/error to the node
that invoked loadgo and prints it on the standard
output/error of loadgo. Local processes inherit the standard
output/error of loadgo and transfer to it directly.
Thus it is possible to redirect standard I/O for LAM
applications by using the typical shell redirection procedure on
loadgo.
- % loadgo my_app < my_input > my_output
The -f option avoids all the setup required to support
standard I/O described above. Remote processes are completely
directed to /dev/null and local processes inherit file descriptors
from lamboot(1).
Process Environment
Programs invoked via loadgo
inherit their environment from the LAM daemon upon the node on
which they execute. The environment of a LAM daemon is fixed upon
booting of the LAM with lamboot(1)
and is inherited from the user's shell. On the origin node this
will be the shell from which lamboot(1)
was invoked and on remote nodes this will be the shell started by
rsh(1).
MPI Initialization
MPI applications should be started with
mpirun(1)
because of the initialization requirements of MPI. However, it is
possible to start rudimentary process configurations of MPI
applications with loadgo. Prior to starting LAM with
lamboot(1),
the user's environment on every node must set the variable,
LAMWORLDNODES. One and only one process must be started on each and
every node. Each process's rank in the MPI world group will equal
its nodeid. This directly implies that the LAM nodeids must be
contiguous. The same configuration can be achieved by logging into
each node and starting each process from the shell (with the
environment variable set as above).
EXAMPLES
- loadgo N prog1
- Load and execute prog1 on all nodes. Search for prog1 on each
node.
- loadgo n8-10 -vw -s n3 prog1 prog2 -- -q
- Load and execute prog1 and prog2 on nodes 8, 9, and 10. Search
for prog1 and prog2 on source node 3 and transfer the executables
to the three target nodes. Report on each process as it is created.
Pass the -q option to each new process. Wait for the processes to
complete before exiting loadgo.
SEE ALSO
state(1),
doom(1),
mpirun(1)