Skip to content

Intel® Omni Path 100 (PSM2) Build Instructions

David Ozog edited this page Nov 2, 2020 · 5 revisions

Building and Installing Sandia-OpenSHMEM (SOS) on Intel® Omni-Path 100 Series Fabric:

OFI libfabric

Please use the PSM2 provider of OFI libfabric.

Libfabric may be setup to use the PSM2 provider via the following configuration (as of libfabric v1.7.0):

$ ./configure --prefix=<libfabric_install_dir> --enable-psm2 --disable-sockets --disable-verbs --disable-usnic --disable-udp --disable-rxm --disable-rxd

where <libfabric_install_dir> is an appropriate installation path (the --disable-* flags are optional, but may help to assure SOS chooses the PSM2 provider).

If necessary, you may link with the latest PSM2 library by cloning this repository:

https://github.com/intel/opa-psm2

and configuring libfabric to build that source directory:

$ ./configure --prefix=<libfabric_install_dir> --with-psm2-src=<path_to_opa-psm2_src_dir> ...

You may also point to a previously-built opa-psm2 installation:

$ ./configure --prefix=<libfabric_install_dir> --enable-psm2=<path_to_opa-psm2_install_dir> ...

Building SOS to use the libfabric PSM2 provider

Use the following configure options to build SOS to use the libfabric PSM2 provider (with --enable-thread-completion and --enable-manual-progress):

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

where <SOS_install_dir> is an appropriate installation path.

Compiling and running OpenSHMEM programs

The SOS build should be added to your path. If you 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.

Troubleshooting

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.