Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/ct-clmsn/codon_openshmem

OpenSHMEM bindings for the Codon Python compiler
https://github.com/ct-clmsn/codon_openshmem

codon hpc openshmem python supercomputing

Last synced: 4 days ago
JSON representation

OpenSHMEM bindings for the Codon Python compiler

Awesome Lists containing this project

README

        

# [codon_openshmem](https://github.com/ct-clmsn/codon_openshmem)

`codon_openshmem` (COS) wraps the existing [Sandia OpenSHMEM](https://github.com/Sandia-OpenSHMEM/SOS) library implemented by Sandia National Laboratory. COS provides the [codon](https://github.com/exaloop/codon) Python compiler [Partitioned Global Address Space](https://en.wikipedia.org/wiki/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](https://docs.exaloop.io/codon/language/statics) with COS.

COS HPC users can benefit from Codon's native support for [OpenMP](https://docs.exaloop.io/codon/advanced/parallel), [GPUs](https://docs.exaloop.io/codon/advanced/gpu), existing [Python extensions](https://docs.exaloop.io/codon/interoperability/pyext), and portable assembly using the [LLVM IR](https://docs.exaloop.io/codon/language/llvm) interface.

### Developer Notes

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](https://docs.exaloop.io/codon/language/ffi) interface. Additional details on Codon's C/C++ interface are available [here](https://docs.exaloop.io/codon/interoperability/cpp).

### Licenses

* [Boost](https://www.boost.org/users/license.html) Version 1.0 (2022-)

### Author

Christopher Taylor

### Special Thanks

* The OpenSHMEM developers and committee
* Sandia National Labs/US Department of Energy

### Dependencies

* [Sandia OpenSHMEM](https://github.com/Sandia-OpenSHMEM/SOS)