HP-MPI has recently been acquired from HP by Platform Computing and has subsequently been rebranded as Platform MPI 7. The use of Platform MPI 7 is governed by our standard End User License Agreement (EULA)
As it has been already mentioned, Platform MPI 7 (formerly HP-MPI) is currently the standard MPI implementation on some systems, namely under Windows and on Intel-based Linux machines.
For more information about Platform MPI 7, including User's Guide please visit the MPI page at Platform Computing.
Full documentation about HP-MPI is still available at the HP website. Platform MPI 7 (formerly HP-MPI) is distributed with (HP-MPI versions of) ADF and a complete HP-MPI directory tree is found in $ADFBIN/hpmpi. Using HP-MPI with ADF does not require any additional fees. In addition to TCP/IP and shared memory supported by every MPI implementation, HP-MPI also supports, without recompilation, all well-known interconnects such as Infiniband and Myrinet. The best available interconnect is chosen automatically at run time and this can also be modified using mpirun command-line switches in the $ADFBIN/start script.
A few words about the mpirun commands found in the start script. If you look inside the $ADFBIN/start file on Linux, you will likely see three mpirun commands. They differ in the way the list of nodes is specified, if specified at all. The mpirun command with a -lsb_hosts switch is used under the LSF batch system. In employs the HP-MPI's tight integration with LSF and lets it pick up the job configuration directly from the batch system.
The mpirun command with a -hostfile switch is used for multi-node interactive jobs and for all parallel jobs started under PBS or SGE batch systems. In the case of a batch system, the hostfile provided by the scheduler is passed to the mpirun command as-is, that is without modifications. The latter can be a problem if the format of the hostfile is different from that supported by HP-MPI, in which case it should be modified accordingly. Please see the HP-MPI User's Guide for information about supported hostfile formats.
Finally, the simplest form of the mpirun command is used for single-node jobs when the calculation is performed on the localhost. In this case the NSCM environment variable determines how many parallel processes will be started. Please note that if "$NSCM" is not equal to "1" (digit one) then the exact value of the NSCM variable has no effect when the job is started under any of the batch systems or with a hostfile. In this case the number of parallel processes to start is determined by the contents of the hostfile.
One important point about HP-MPI is that it needs a remote shell command, such as ssh, to start tasks on compute nodes. By default ssh is used but this can be changed using the MPI_REMSH environment variable. For example, executing the following from the bash prompt will make mpirun use rsh instead of ssh:
export MPI_REMSH=rsh
As usual, if you want to make the change permanent, you need to add this command to a shell resource file.
There are cases when a Linux cluster is configured in such a way that both ssh and rsh communication from/to/between compute nodes is disabled. One of the most common examples is TORQUE with the MAUI scheduler. In this case, there is a remote shell replacement utility called pbsdsh. This utility checks that it is executed under PBS and, if yes, allows you to start remote programs only on the nodes allocated to that particular job. In principle, this is all that mpirun needs. The only problem is that pbsdsh uses different command-line options. To solve this, we provide in $ADFBIN a script called torque_ssh. To make HP-MPI always use torque_ssh instead of ssh simply set MPI_REMSH in the shell resource file as follows (of course after the ADFBIN definition):
MPI_REMSH=$ADFBIN/torque_ssh export MPI_REMSH




