For those interested in free access to coarray Fortran (CAF) parallel
programming, OpenCoarrays 1.0.0 was posted online on Sunday at
https://github.com/sourceryinstitute/opencoarrays/releases
For an overview and links to additional documentation, please see
https://github.com/sourceryinstitute/opencoarrays
or read below.
OpenCoarrays 1.0.0 provides
1. A runtime library ("libcaf_mpi.a" by default),
2. A compiler wrapper ("caf"), and
3. A program launcher ("cafrun").
The library has been tested extensively on several platforms and should be
ready for use in production code. The compiler wrapper and program launcher
are very simple prototypes with limited capabilities that we hope will grow
over time. We welcome users to contribute issue reports at
https://github.com/sourceryinstitute/opencoarrays/issues.
OpenCoarrays 1.0.0 supports three categories of compilers:
1. OpenCoarrays-Aware (OCA) Coarray Fortran (CAF) Compilers.
2. Non-OCA CAF Compilers
3. Non-CAF Compilers
As of release 5.1.0, GNU Fortran is an OCA CAF compiler that uses
OpenCoarrays to support most Fortran 2008 coarray features and some features
proposed for Fortran 2015 in the draft technical specification TS 18508
Additional Parallel Features in Fortran [1]. Supported features include the
collective subroutines.
OpenCoarrays contains an "opencoarrays" module that extends the capabilities
of non-OCA CAF compilers and non-CAF compilers via use association, e.g.,
"use opencoarrays, only : co_sum."
For non-CAF compilers, OpenCoarrays provides CAF capabilities that don't
require the use of codimensions. Although this is a severe restriction, the
choice to offer this capability came from experience with several
pre-release users whose applications' algorithmic needs were completely
covered by a combination of collective subroutines, synchronization
statements, error termination, and the intrinsic functions this_image() and
num_images().
For additional information, including a list of contributors and related
publications, please visit
http://www.opencoarrays.org. Many thanks go to
the pre-release users and the OpenCoarrays team, especially lead developer
Alessandro Fanfarillo and GFortran compiler developer Tobias Burnus for
their invaluable work.
[1]
http://isotc.iso.org/livelink/livelink?func=ll&objId=17181227&objAction=Open