A transport layer for coarray Fortran compilers.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
.Dockerfiles/master-jupyter-inherit Fix docker base image for jupyter-caf-kernel Aug 10, 2018
.github Overall tightening of pull request template Aug 9, 2017
cmake Add direct signature of main release asset Aug 10, 2018
developer-scripts Test CMake script on macOS with clang & Open-MPI Jul 8, 2018
doc Update `caf.1` and add `cafrun.1` manpages Sep 22, 2017
prerequisites Switch insecure ftp URLs to secure https Oct 14, 2018
src Merge branch 'master' into index-type Oct 5, 2018
.VERSION Bump version number for release Aug 10, 2018
.gitattributes Dockerfile to in cloud with jupyter-CAF-kernel Nov 10, 2017
.pullapprove.yml Cleanup YAML files with yamllint and yaml-lint May 7, 2017
.travis.yml Remove macOS CMake tests Jul 8, 2018
AUTHORS.md Map authors to Github names Feb 12, 2017
Brewfile Update Brewfile Aug 28, 2017
CAF_ABI.md Update repo name opencoarrays --> OpenCoarrays Feb 12, 2017
CMakeLists.txt Fix #520: Allow tests w/ OpenMPI to run as root Aug 10, 2018
CONTRIBUTING.md Update Pull Request template May 30, 2017
FAQ.md Add table of contents in FAQ.md Mar 22, 2018
GETTING_STARTED.md Resolve edits suggested in review by zbeekman Oct 15, 2018
INSTALL Fix some language in INSTALL{,.md} Jan 24, 2018
INSTALL.md Resolve edits suggested in review by zbeekman Oct 15, 2018
LICENSE Use Github's template Nov 4, 2016
README.md Resolve edits suggested in review by zbeekman Oct 15, 2018
codecov.yml Cleanup YAML files with yamllint and yaml-lint May 7, 2017
install.sh Fix #591 by adding new -r/--prefix-root argument Oct 14, 2018
install.sh-usage Fix #591 by adding new -r/--prefix-root argument Oct 14, 2018
subkey-328B3A0E-secret.asc.enc Add gpg subkey for signing releases on Travis-CI Jan 21, 2017



Upcoming events


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 relinked 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 MPI, which we expect to provide the broadest support for Fortran 2018 for the foreseeable future. However, having the option to parallel programming models at link-time aids portability and performance (see Rouson et al. (2017) and Rasmussen et al. (2018)).

OpenCoarrays provides a compiler wrapper (caf), parallel runtime libraries (libcaf_mpi and 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.


The GNU Compiler Collection (GCC) Fortran front end (gfortran) has used OpenCoarrays since the GCC 5.1.0 release . Discussions are under way around incorporating OpenCoarrays into other compilers.


Building OpenCoarrays requires

  • An MPI implementation (default: MPICH).
  • CMake.
  • A Fortran compiler (default: GCC).
  • Optional: An OpenSHMEM implementation.

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.

Getting Started

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:

  • Arm for approving compiler engineer contributions of code.
  • National Center for Atmospheric Research for access to the Yellowstone/Caldera supercomputers and for logistics support during the initial development of OpenCoarrays.
  • CINECA for access to Eurora/PLX for the project HyPS- BLAS under the ISCRA grant program for 2014.
  • Google for support of a related Google Summer of Code 2014 project.
  • The National Energy Research Scientific Computing Center (NERSC), which is supported by the Office of Science of the U.S. Department of Energy under Contract No. DE-AC02-05CH11231, for access to the Hopper and Edison supercomputers under the OpenCoarrays project start allocation.
  • Sourcery, Inc., for financial support for the domain registration, web hosting, advanced development, and conference travel.


If you find this software useful, please consider donating your time or your money to aid in development efforts.

GitHub forks GitHub stars GitHub watchers Twitter URL

https://www.eventbrite.com/e/writing-fortran-2018-today-object-oriented-parallel-programming-tickets-48982176007 Writing Fortran 2018 Today: https://writing-fortran-2018-today.eventbrite.com