OpenCoarrays supports Fortran 2018 compilers by providing a parallel application binary interface (ABI) that abstracts away the underlying parallel programming model, which can be the Message Passing Interface (MPI) or OpenSHMEM. Parallel Fortran 2018 programs may be written and compiled into object files once and then linked or re-linked to either MPI or OpenSHMEM without modifying or recompiling the Fortran source. Not a single line of source code need change to switch parallel programming models. The default programming model is MPI because it provides the broadest capability for supporting Fortran 2018 features. However, having the option to change parallel programming models at link-time may enhance portability and performance (see Rouson et al. (2017)).
OpenCoarrays provides a compiler wrapper (
caf), parallel runtime
libcaf_openshmem), and a parallel
executable file launcher (
cafrun). The wrapper and launcher
provide a uniform abstraction for compiling and executing parallel
Fortran 2018 programs without direct reference to the underlying
parallel programming model.
Please see our Releases page.
Building OpenCoarrays requires
If you use a package manager or the OpenCoarrays installer, any missing prerequisites will be built for you.
Please see the INSTALL.md file.
Or try OpenCoarrays online as a Jupyter notebook kernel using Binder with no downloads, configuration or installation required. The default index.ipynb notebook is read only, but you can execute it, copy it to make changes, or create an entirely new CAF kernel notebook.
If you would like to be able to install OpenCoarrays through your favorite package manager, please ask them to add it, or contribute it yourself. If you see your favorite package manager has an outdated version, please ask them to update it, or contribute an update yourself.
To start using OpenCoarrays, please see the GETTING_STARTED.md file.
Please see the CONTRIBUTING.md file.
A list of open issues can be viewed on the issues page.
Please submit bug reports and feature requests via our Issues page.
We gratefully acknowledge support from the following institutions: