Skip to content

Slingshot (CXI) Build Instructions

Md Rahman edited this page Feb 13, 2023 · 1 revision

Building and Installing Sandia OpenSHMEM (SOS) on HPE Slingshot Fabric:

If you have a libfabric version that includes CXI provider that can be used to configure and run SOS on HPE Slingshot network.

Building SOS to use the libfabric CXI providers

Use the following configure options to build SOS to use the libfabric CXI provider:

$ ./autogen.sh
$ ./configure --prefix=<SOS_install_dir> --with-ofi=<libfabric_install_dir> --enable-pmi-simple --enable-ofi-mr=basic --enable-mr-endpoint --enable-ofi-manual-progress
$ make
$ make install

where <SOS_install_dir> is an appropriate installation path for SOS and <libfabric_install_dir> is the libfabric installation path with CXI provider enabled. The basic memory registration for OFI should be enabled via --enable-ofi-mr=basic flag. Also, --enable-mr-endpoint should be used to enable MR-ENDPOINT in OFI for memory registration. For this configuration, --enable-ofi-manual-progress needs to be used to enable FI_MANUAL_PROGRESS as data progress option.

Compiling and running OpenSHMEM programs

The SOS build should be added to your path. If you have used the build instructions posted here, this is done by running the following command:

$ export PATH=<SOS_install_dir>/bin:$PATH

Once SOS is in your path, you can use the compiler wrapper oshcc to compile your application and the launcher wrapper oshrun to run it. Please assure you have a compatible launcher, such as Hydra 3.2 or newer.

To run SOS programs over CXI, SOS can be instructed to use the provider by setting the following environment variable:

SHMEM_OFI_PROVIDER="cxi"

Please refer to the Troubleshooting wiki page if you encounter any issues. If your particular problem is not covered in the wiki, please submit an issue through Github.