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