Installation
Requirements
A working OpenSHMEM implementation is required. Currently,
Cray OpenSHMEMX,
Open Source Software Solutions (OSSS) OpenSHMEM,
Open MPI OpenSHMEM,
OSHMPI, and
Sandia OpenSHMEM
are supported.
Generally speaking, shmem4py
will be installed using the OpenSHMEM
implementation’s oshcc
wrapper found in the $PATH
.
For an example setup of shmem4py
using the OSHMPI/MPICH backend, see
INSTALL.rst.
Containers
We encourage users to use Docker/Podman containers or follow the steps executed in the
Dockerfiles. Containers
based on those files are meant to show minimal configurations for building and running
shmem4py
with different OpenSHMEM implementations. Those images are used in GitHub
Actions CI/CD and we consider them tested configurations.
Currently, we test with OSSS OpenSHMEM, Open MPI OpenSHMEM, OSHMPI and Sandia OpenSHMEM
on the latest releases of Fedora and Ubuntu.
Recommended versions
There exist many combinations of the operating system and software package
versions that may work with shmem4py
. We recommend to use the combinations
which are tested in shmem4py
’s CI/CD pipeline. As of 28/04/2023, the
following package versions all work correctly:
OpenSHMEM distribution |
Operating system |
Required packages (package manager) |
Required packages (make) |
Dockerfile |
Open MPI OpenSHMEM 4.1.4 |
Fedora 37 |
Python 3.11 |
UCX latest |
|
Ubuntu 22.04 |
Python 3.10 |
UCX latest |
||
OSHMPI latest |
Fedora 37 |
Python 3.11, MPICH 4.0 |
||
Ubuntu 22.04 |
Python 3.10, MPICH 4.0 |
|||
OSSS OpenSHMEM latest |
Fedora 37 |
Python 3.11, PMIX 4.1.2 |
||
Ubuntu 22.04 |
Python 3.10, PMIX 4.1.2 |
|||
Sandia OpenSHMEM latest |
Fedora 37 |
Python 3.11, MPICH 4.0 |
libfabric latest |
|
Ubuntu 22.04 |
Python 3.10, MPICH 4.0 |
libfabric latest |
||
Cray OpenSHMEMX 9.1.2 |
Cray XC SLES 15 |
cray-openshmemx/9.1.2 module |
Installing shmem4py
Once a working OpenSHMEM implementation is installed, shmem4py
can be
installed using pip
:
git clone https://github.com/mpi4py/shmem4py
cd shmem4py
python -m pip install .
You sure then test if everything works as expected:
make test-1
make test-2
Next steps
With the installation complete, you can now proceed to run the Usage examples. and try to base your code on them.