HP-MPI Version 2.2 for Linux Release Note
HP-MPI V2.2 for Linux Release Note
What’s in This Version
12
% make
g++ -c intercepts.cc -I/opt/hpmpi/include -DHPMP_BUILD_CXXBINDING
g++ -c mpicxx.cc -I/opt/hpmpi/include -DHPMP_BUILD_CXXBINDING
ar rcs libmpiCC.a intercepts.o mpicxx.o
%
4. Link your application with the -mpiCClib <LIBRARY> option, using the library you
created.
% mpiCC sort.C -mpiCClib /scratch/libmpicc/libmpiCC.a
Myrinet MX support
HP-MPI supports the Myrinet Express (MX) protocol. The selection is done via mpirun
command line options and environment variables. mpirun command line options are:
• -mx
• -MX
-mx is a request to use MX on Myrinet. If this service is not available, then the process will
search for alternate interconnects. -MX forces the use of MX on Myrinet. If this service is not
available, then an error is issued.
MX protocol has no requirements to pin or unpin memory. Therefore, these options cannot be
suffixed with ':ndd' or ':dd'.
MPI_ICLIB_MX is set by the user to indicate the pathname of the MX library. It is used as the
first argument of the dlopen() call. If this environment variable is not set, then
libmyriexpress.so is used. If this fails, HP-MPI tries /opt/mx/lib/libmyriexpress.so
again.
Improved deregistration via ptmalloc
To achieve the best performance on RDMA enabled interconnects like InfiniBand and
Myrinet, the MPI library must be aware when memory is returned to the system in malloc()
and free() calls. To enable more robust handling of that information, HP-MPI now contains a
copy of the ptmalloc implementation and uses it by default.
For applications with particular needs, there are a number of available modifications to this
default configuration. To avoid using HP-MPI's ptmalloc implementation and instead use the
standard libc implementation (or perhaps a malloc implementation contained in the
application), set the environment variable MPI_NO_MALLOCLIB at runtime.