HP-MPI User's Guide (11th Edition)

Understanding HP-MPI
MPI options
Chapter 3140
process relinquishes the CPU to other processes. Do
this in your appfile, by setting y[#] to y0 for the
process in question. This specifies zero milliseconds of
spin (that is, immediate yield).
If you are running an application stand-alone on a
dedicated system, the default setting which is
MPI_FLAGS=y allows MPI to busy spin, thereby
improving latency. To avoid unnecessary CPU
consumption when using more ranks than cores,
consider using a setting such as MPI_FLAGS=y40.
Specifying y without a spin value is equivalent to
MPI_FLAGS=y10000, which is the default.
NOTE Except when using srun or prun to launch, if the ranks
under a single mpid exceed the number of CPUs on the
node and a value of MPI_FLAGS=y is not specified, the
default is changed to MPI_FLAGS=y0.
If the time a process is blocked waiting for messages is
short, you can possibly improve performance by setting
a spin value (between 0 and 10,000) that ensures the
process does not relinquish the CPU until after the
message is received, thereby reducing latency.
The system treats a nonzero spin value as a
recommendation only. It does not guarantee that the
value you specify is used.
o The option writes an optimization report to stdout.
MPI_Cart_create and MPI_Graph_create optimize
the mapping of processes onto the virtual topology only
if rank reordering is enabled (set reorder=1).
In the declaration statement below, see reorder=1
int numtasks, rank, source, dest, outbuf, i,
tag=1,
inbuf[4]={MPI_PROC_NULL,MPI_PROC_NULL,MPI_PROC_
NULL,MPI_PROC_NULL,}, nbrs[4], dims[2]={4,4},
periods[2]={0,0}, reorder=1, coords[2];
For example: