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

Understanding HP-MPI
Running applications on HP-UX and Linux
Chapter 3 87
The default value of MPI_IC_ORDER is specified there, along with a
collection of variables of the form
MPI_ICLIB_XXX__YYY
MPI_ICMOD_XXX__YYY
where XXX is one of the interconnects (IBV, VAPI, etc.) and YYY is an
arbitrary suffix. The MPI_ICLIB_* variables specify names of libraries to
be dlopened. The MPI_ICMOD_* variables specify regular expressions for
names of modules to search for.
An example is the following two pairs of variables for PSM:
MPI_ICLIB_PSM__PSM_MAIN = libpsm_infinipath.so.1
MPI_ICMOD_PSM__PSM_MAIN = "^ib_ipath "
and
MPI_ICLIB_PSM__PSM_PATH = /usr/lib64/libpsm_infinipath.so.1
MPI_ICMOD_PSM__PSM_PATH = "^ib_ipath "
The suffixes PSM_MAIN and PSM_PATH are arbitrary, and represent two
different attempts that will be made when determining if the PSM
interconnect is available.
The list of suffixes is contained in the variable MPI_IC_SUFFIXES which
is also set in the hpmpi.conf file.
So, when HP-MPI is determining the availability of the PSM
interconnect, it will first look at
MPI_ICLIB_PSM__PSM_MAIN
MPI_ICMOD_PSM__PSM_MAIN
for the library to dlopen and module name to look for. Then, if that fails,
it will continue on to the next pair
MPI_ICLIB_PSM__PSM_PATH
MPI_ICMOD_PSM__PSM_PATH
which in this case specifies a full path to the PSM library.
The MPI_ICMOD_* variables allow relatively complex values to specify
what module names will be considered as evidence that the specified
interconnect is available. Consider the example
MPI_ICMOD_VAPI__VAPI_MAIN = \
"^mod_vapi " || "^mod_vip " || "^ib_core "