HP-MPI Version 2.2.5 for Linux Release Note
HP-MPI V2.2.5 for Linux Release Note
What’s in This Version
29
Note that these settings are not available when running under srun or prun. However, similar
information can be gathered from the variables set by those systems; such as SLURM_NPROCS and
SLURM_PROCID.
Shared Memory Sizing Environment Variables
MPI_RANKMEMSIZE=d Where d is the total bytes of shared memory of the rank. Specifies the shared
memory for each rank. 12.5% is used as generic. 87.5% is used as fragments. The only way to change this
ratio is to use MPI_SHMEMCNTL. MPI_RANKMEMSIZE differs from MPI_GLOBMEMSIZE, which is the total
shared memory across all the ranks on the host. MPI_RANKMEMSIZE takes precedence over
MPI_GLOBMEMSIZE if both are set. Both MPI_RANKMEMSIZE and MPI_GLOBMEMSIZE are mutually exclusive
to MPI_SHMEMCNTL. If MPI_SHMEMCNTL is set, then the user cannot set the other two, and vice versa.
MPI_GLOBMEMSIZE=e Where e is the total bytes of shared memory of the job. If the job size is N, then
each rank has e/N bytes of shared memory. 12.5% of this memory is used as generic. 87.5% is used as
fragments. The only way to change this ratio is to use MPI_SHMEMCNTL.
MPI_SHMEMCNTL=a,b,c
a The number of envelopes for shared memory communication. The default is 8.
b The bytes of shared memory to be used as fragments for messages.
c The bytes of shared memory for other generic use, such as MPI_Alloc_mem() call.
Running Applications
1. Set the following environment variables:
• If you choose to move the HP-MPI installation directory from its default location in
/opt/hpmpi, set the MPI_ROOT environment variable to point to the location where
HP-MPI is installed.
•Add $MPI_ROOT/bin to PATH.
•Add $MPI_ROOT/share/man to MANPATH.
NOTE HP-MPI must be installed in the same directory on every execution host.
2. The following is an example of basic compilation and run steps to execute hello_world.c
on a cluster with 4-way parallelism given the ability to rsh/remsh/ssh between hosts. To
build and run hello_world.c on a cluster using an appfile:
• Change to a writable directory that is visible from all hosts on which the job will run.
• Compile the hello_world executable file: