Parallel Programming Guide for HP-UX Systems

MPI
Running
Chapter 250
The HMP functionality shipped with HP MPI 2.0 is turned off by default. (MPI_HMP=off)
There are four possible values for MPI_HMP; on, off, ON, and OFF.
The file /etc/mpi.conf can be created and set to define the system-wide default for HMP
functionality. Setting MPI_HMP within the file to on or off is advisory only, and can be
overridden by the user with the use of the environment variable. Setting MPI_HMP within the
file to ON or OFF is forced and will override the user environment variable. An example of the
mpi.conf file is shipped with the product and is located at
opt/mpi/etc.
The environment variable MPI_HMP can be set to on, off, ON, or OFF by the user on a per-job
basis. The user can override system defaults of on or off (advisory), but not system defaults of
ON or OFF (forced). Some combinations of settings (in the file and variable) are illegal and will
generate errors.
NOTE All HMP enabled nodes must be on the same HyperFabric network in order to
allow this functionality.
The preferred method for enabling HMP is use of the mpirun option -hmp which will enable
HMP on every host.
If you developed your applications on a system without HMP installed, the resulting
executables cannot use HMP. When HMP is installed, you will have to link or relink your
applications to enable HMP support. We recommend building your applications using our
scripts to ensure your executable is built with support for HMP.
Existing compilation scripts that do not use our wrappers will have to relink using the -show
option.
If you develop on a system without HyperFabric hardware, you can still swinstall HyperFabric
software to allow creation of HMP applications.
For more information on the HyperFabric product, refer to http://software.hp.com.
Communicating using daemons
By default, off-host communication between processes is implemented using direct socket
connections between process pairs. For example, if process A on host1 communicates with
processes D and E on host2, then process A sends messages using a separate socket for each
process D and E.
This is referred to as the n-squared or direct approach because to run an
n
-process
application,
n
2 sockets are required to allow processes on one host to communicate with
processes on other hosts. When you use this direct approach, you should be careful that the
total number of open sockets does not exceed the system limit.