codon_openshmem
(COS) wraps the existing Sandia OpenSHMEM library implemented by Sandia National Laboratory. COS provides the codon Python compiler Partitioned Global Address Space (PGAS) support. The codon Python compiler is not an interpreter it compiles Python applications to executables using LLVM.
Users are able to interact with OpenSHMEM using a handful of the existing OpenSHMEM functions or users are able to interact with OpenSHMEM through a class called Runtime. Users can create distributed symmetric arrays using a templated SymmetricArray class. Users can additionally leverage Codon's support for the static keyword with COS.
COS HPC users can benefit from Codon's native support for OpenMP, GPUs, existing Python extensions, and portable assembly using the LLVM IR interface.
A simple example application is provided in the ./test
directory along with a Makefile. The COS implementation is provided in the ./src
directory, users only need to copy that file into their project directory. COS is implemented using Codon's FFI interface. Additional details on Codon's C/C++ interface are available here.
- Boost Version 1.0 (2022-)
Christopher Taylor
- The OpenSHMEM developers and committee
- Sandia National Labs/US Department of Energy