GNU/Linux |
RedHat 6.2(Zoot) |
|
![]() |
loadgo(1) |
![]() |
loadgo − Run programs on LAM nodes.
loadgo [-fhvw] [-s <srcnode>] <nodes> <programs> [-- <args>] |
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).
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.
state(1), doom(1), mpirun(1)
![]() |
loadgo(1) | ![]() |