NAME
YOD - Loads and executes a Cougar program on one or more
nodes.
SYNTAX
yod [ -D option] [ -comm size ] [ -heap size ]
[ -stack size ] [ -base node | rowcolumn ] [ -proc mode ]
[{ -size | -sz }{ n | hxwx2 | all }][ -nd nodelist ]
[ -allocation mode ] [ -tfyod path ] [-dfyod options]
[ -fyod number ] [ -Priority priority ] [ -share ]
[ -F loadfile ] [ -help ] [ -load ][ -restart path ]
[ -munix ] [ progname [ progargs ] ]
ARGUMENTS
-D option Turn yod debugging output on. Valid options are:
phase1, phase2, load, load1, load2, load3, msg,
msg1, msg2, config, progress, hetero, alloc,
alloc1, alloc2, io, io1, io2, nqs, fyod, or all.
-comm size
Reserve NX communication buffer space of size
bytes. The default is 256k bytes. Comm space is a
pool in user space where incoming messages are
collected when the matching receive has not been
posted. Comm space is allocated out of the heap,
so it must be smaller than the heap.
-heap size
Reserve size bytes for the heap. The default is to
allocate all the remaining memory on each node
after the stack, text, and data have been
allocated. If you are running only one process per
node, then this argument is optional. The main use
of the -heap argument is to allocate less memory
in order to use the -share switch to load multiple
processes. Since the communication space is
allocated out of the heap, the -heap must be
greater than the -comm value, or greater than the
default comm value of 256K. The portals library
also allocates heap space, so a rule of thumb
would be to use a -heap value of at least 512K, or
comm + 256K.
-stack size
Reserve size bytes for the stack. The default is
256k bytes.
-base {node | rowcolumn}
Base (top left corner) of the mesh partition. Node
is a decimal number representing the Mesh number
of the node. Optionally, rowcolumn are the Mesh y
and x coordinates of the node. For Kestrel nodes,
only the inner kestrel can be specified as a base;
equivalently, the base is the MRC number, since
inner kestrel nodes are numbered the same as their
MRCs. All slots (including empty slots and/or
nodes running OSF) are counted.
-proc mode
The default mode is 0, which uses only one of the
two available processors on each node. If mode is
set to 1, the second processor is turned on and
used as a message coprocessor. Mode 2 allows
programs to execute code simultaneously on both
processors via the -Mconcur compiler switch or if
the application is explicitly written to use cop()
calls.
-size {n | hxwx2 | all}
The number of nodes that should be allocated. The
size can be specified as a single decimal number,
indicating how many nodes should be allocated, or
as a string of the form ``height x width x 2''.
The default size is 1, unless the yod is being run
under NQS. The allocator allocates MRCs, so that
if the size is 1 or some other odd number, then
one node will be allocated but not used.
In case the size is expressed as hXwX2, the
allocator will attempt to allocate a rectangle of
MRCs of dimension hXw, which will yield an array
of Kestrel nodes of height h and width w.
all indicates that the program should be run on
all nodes of the system.
-tfyod path
Use an alternate fyod for debug or development.
path specifies the location.
-dfyod options
Set fyod debug options; uses the same options as
the -D switch.
-fyod number
Spawn number fyods. By default, yod will spawn one
fyod per 256 compute nodes. You may be able to
improve the performance of applications with heavy
I/O requirements by specifying additional fyod
file I/O servers.
-Priority priority
Set the process priority. Notice the capital 'P'
in order to avoid a conflict with the -proc
argument. The argument is an integer from 1 to 10.
A higher value indicates a higher priority. Any
user can assign any priority to a process. The
default value is 5.
-share Permit more than one yod to run programs on a set
of nodes, time-sharing on each node. The default
is to allow only one process per node. In case of
multi-processing, all yods sharing a set of nodes
must be run by the same user. The first yod to use
the nodes must use the -share switch, otherwise
subsequent yods will not be allowed to share the
nodes. Jobs are not gang-scheduled across nodes,
each node does its own scheduling.
-allocation mode
The possible allocation modes are: any, lax, or
strict. The default is any, if the size is
specified with a single decimal number: -size n.
If the size is specified with a height and width
(-size height x width x 2), the default is strict.
In strict mode, the allocator tries to find a
partition that does not span nodes of other
applications. In lax mode, the allocator will use
partitions that are non-contiguous, if necessary.
If mode is any, then any collection of nodes will
be allocated, assuming there are enough free
nodes, and no other allocation method has
succeeded. The allocator always starts in strict
mode, then tries lax, and finally any. The
-allocation mode prevents the allocator from
trying lower levels than mode. If no partition of
the required size (and shape, if size was
specified with a width and height) is available,
yod aborts the load.
-help Displays a message explaining briefly all
available options.
-load Loads a program, but doesn't execute it.
-restart path
Restart from the last checkpoint. path specifies
the directory containing the checkpoint images.
The -size and other parameters (except for -base)
must be the same as when the application was first
loaded.
-F loadfile
This argument is for heterogeneous loading of
multiple executable images in a single
application. Instead of specifying a set of
nodes, specify a loadfile that describes the
programs and nodes on which to run them.
Heterogeneous programs must always run on a
rectangle of nodes. The format of the loadfile
is:
The first line gives the dimensions of the
rectangle in the form hXwX2.
Subsequent lines in the file give command lines
for the individual executable images, relative to
the rectangle. These must also run on rectangles,
and the size argument for each component must give
the height, width, and base. See the example
below. These lines are of the form:
yod -sz hXwX2:x,y ... filename
where x and y are the x and y coordinates of the
base node relative to the rectangle itself. The
coordinates x and y must refer to inner Kestrel
nodes or Eagle nodes.
An alternative form of this line is:
yod -sz 1:x,y ... filename
That is, it is permissible to run one of the
sub-programs on a single node, in which case the
corresponding outer kestrel can not be used. The
-sz argument must be of the form "hXwX2:x,y"
except in the special case where the size is 1.
Example:
yod -heap 500000 -base e0 -F myload.file
myload.file:
2x4x2
yod -heap 300000 -sz 1x2x2:0,0 prog1 arglist1
yod -stack 500000 -sz 2x2x2:2,0 prog2 arglist2
yod -sz 1x2x2:0,1 prog3 arglist3
-munix Changes the iomode of all the files opened by the
application to be in M_UNIX mode. The default is
M_ASYNC.
M_UNIX Conforms to standard Unix
file-sharing semantics for different
processes accessing the same file.
M_ASYNC Multiple readers and writers are
allowed with no restriction. Does
not support standard Unix
file-sharing semantics for different
processes accessing the same file.
An application must control parallel
access to the file.
program The filename of the application to be loaded and
executed.
progargs Arguments to be passed to the loaded application.
All options can be abbreviated, as long as the resulting
string is a unique prefix of a valid option.
DESCRIPTION
yod is a utility, which runs on a service node, that loads
Cougar applications. yod reads the Cougar executable,
obtains nodes for it to run on from the allocator, downloads
the application to the Cougar nodes, and executes them.
Acknowledgement and Disclaimer