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

Understanding HP-MPI
CPU binding
Chapter 360
MPI_FLUSH_FCACHE Can be set to a threshold percent of memory
(0-100) which, if the file cache currently in use meets or exceeds,
initiates a flush attempt after binding and essentially before the
user’s MPI program starts. Refer to See “MPI_FLUSH_FCACHE” on
page 144 for more information.
MPI_THREAD_AFFINITY controls thread affinity. Possible values are:
none — Schedule threads to run on all cores/ldoms. This is the
default.
cyclic — Schedule threads on ldoms in cyclic manner starting after
parent.
cyclic_cpu — Schedule threads on cores in cyclic manner starting
after parent.
block — Schedule threads on ldoms in block manner starting after
parent.
packed — Schedule threads on same ldom as parent.
empty — No changes to thread affinity are made.
MPI_THREAD_IGNSELF When set to 'yes', parent is not included in
scheduling consideration of threads across remaining cores/ldoms.
This method of thread control can be used for explicit pthreads or
OpenMP threads.
Three -cpu_bind options require the specification of a map/mask
description. This allows for very explicit binding of ranks to processors.
The three options are map_ldom, map_cpu, and mask_cpu.
Syntax:
-cpu_bind=[map_ldom,map_cpu,mask_cpu] [:<settings>,
=<settings>, -e MPI_BIND_MAP=<settings>]
Examples:
-cpu_bind=MAP_LDOM -e MPI_BIND_MAP=0,2,1,3
# map rank 0 to ldom 0, rank 1 to ldom 2, rank 2 to ldom1 and rank 3 to
ldom 3.
-cpu_bind=MAP_LDOM=0,2,3,1
# map rank 0 to ldom 0, rank 1 to ldom 2, rank 2 to ldom 3 and rank 3 to
ldom 1.
-cpu_bind=MAP_CPU:0,6,5
# map rank 0 to cpu 0, rank 1 to cpu 6, rank 2 to cpu 5.