How to use SLURM* PMI with the Intel® MPI Library for Linux*?

Introduction : 

Intel® MPI Library provides PMI virtualization mechanism. It means that users may utilize third party implementations of the PMI library.

Version : 

Intel® MPI Library 4.0 Update 1 for Linux*

Running the Application: 

To use SLURM's implementation of the PMI library do the following:
• Set the I_MPI_PMI_LIBRARY environment variable to desired PMI library specifying the full path to the libpmi.so library
• Use srun utility to start an application. In this case Intel® MPI Library Process Manager is not used and only Slurm utilities control the job (launch, control, terminate)

Benefits : 

Tight integration is reached with a job scheduler if a PMI library integrated with it is used.

Known Issues or Limitations : 

• SLURM’s implementation of the PMI library does not provide enough functionality to enable pinning feature of the Intel® MPI Library
• Set the I_MPI_FABRICS environment variable explicitly or set I_MPI_CHECK_DAPL_PROVIDER_MISMATCH=off to make sure that fast fabric will be initialized correctly

Example : 

$ export I_MPI_PMI_LIBRARY=/full/path/to/slurm/libpmi.so
$ export I_MPI_FABRICS=shm:dapl
$ srun -N <num_nodes> -n <num_processes> ./a.out

This approach was checked with Slurm-1.2.21 on Intel® 64 based system.

For more complete information about compiler optimizations, see our Optimization Notice.