Using Cray PALS Without Cray MPICH to Launch Intel MPI Applications on Athena

Article ID: 719
Last updated: 23 Apr, 2026

In the Using Cray Message Passing Toolkit on Athena article, a method is described that allows applications built with Intel MPI to run on Athena, and take advantage of the Cray Slingshot 11 interconnect through the use of the cray-mpich-abi and cray-pals modules. In this article, we describe an alternative approach that doesn't use Cray MPICH while still benefiting from the high-performance Cray Slingshot 11 interconnect.

Specifically, this approach relies on setting a few Intel MPI environment variables to use Cray's Libfabric, PMI2 libraries, and the OpenFabrics Interface (OFI) CXI provider, and launching with the Cray Parallel Application Launch Service (PALS).

More information is included in the comments of the following sample script.

Note: The sample script below assumes that you're using the csh shell. For bash, replace the setenv command syntax with the export command syntax, as follows:

#for csh: 
setenv variable_name value

#for bash:
export variable_name=value

Sample Script

## This example runs an Intel MPI app on 2 nodes with 256 processes each.
#PBS -lselect=2:ncpus=256:mpiprocs=256:model=tur_ath
#PBS -lwalltime=2:00:00
#PBS -q normal
#PBS -j oe
#PBS -koed

## The executable will be launched with mpiexec from Cray PALS instead
## of from Intel MPI. This is due to the need to satisfy
## Virtual Network Interface (VNI) enforcement and security. 
## Load Intel MPI before Cray PALS to ensure CRAY PALS mpiexec is used.

## If any, also load other modules needed by the application.

module use -a /nasa/modulefiles/testing
module purge
module load mpi-intel/2021.16
module load cray-pals  

## Check that the mpiexec is from Cray Pals, not Intel MPI.

which mpiexec
mpiexec --version

## Use Cray's PMI2 instead of PMI to allow proper interaction with Intel MPI.

setenv I_MPI_PMI pmi2  
setenv I_MPI_PMI_LIBRARY /opt/cray/pe/pmi/default/lib/libpmi2.so  

## The Open Fabrics Interfaces (OFI) cxi provider is not distributed 
## in the libfabric of Intel MPI 2021.17 and earlier versions. 
## Direct Intel MPI not to use libfabric from Intel MPI and instead use 
## the libfabric library from Cray and use the cxi provider.

setenv I_MPI_OFI_LIBRARY_INTERNAL 0
setenv I_MPI_OFI_LIBRARY /opt/cray/libfabric/2.2.0rc1/lib64/libfabric.so.1
setenv I_MPI_OFI_PROVIDER cxi

## (Optional) Direct Intel MPI to check the OFI provider used.

#setenv I_MPI_DEBUG 1

## Direct Cray PALS mpiexec to use the PMI2 interface.

mpiexec -np 512 --ppn 256 \
--pmi=pmi2   \    
executable_built_with_intel_mpi                            

Contact Us

General User Assistance

Security

  • Report security issues 24x7x365
  • Toll-free: 1-877-NASA-SEC (1-877-627-2732)
  • E-mail: soc@nasa.gov

User Documentation

High-End Computing Capability (HECC) Portfolio Office

NASA High-End Computing Program

Tell Us About It

Our goal is furnish all the information you need to efficiently and effectively use the HECC resources needed for your NASA computational projects.

We welcome your input on features and topics that you would like to see included on this website.

Please send us email with your wish list and other feedback.