5
5
[ https://github.com/sourceryinstitute/OpenCoarrays/blob/master/README.md ] :#
6
6
<div align =" center " >
7
7
8
- [ ![ Sourcery Institute] [ sourcery-institute logo ]] [ Sourcery, Inc. ]
8
+ [ ![ Sourcery Institute] [ sourcery-institute logo ]] [ Sourcery Institute ]
9
9
10
10
OpenCoarrays
11
11
============
@@ -30,25 +30,22 @@ OpenCoarrays
30
30
Overview
31
31
--------
32
32
33
- [ OpenCoarrays] supports [ Fortran 2018] compilers by providing a
34
- parallel application binary interface (ABI) that abstracts away the
35
- underlying parallel programming model, which can be the Message
36
- Passing Interface ([ MPI] ) or [ OpenSHMEM] . Parallel Fortran 2018
37
- programs may be written and compiled into object files once and
38
- then linked or re-linked to either MPI or [ OpenSHMEM] without modifying
39
- or recompiling the Fortran source. Not a single line of source code
40
- need change to switch parallel programming models. The default
41
- programming model is MPI because it provides the broadest capability
42
- for supporting Fortran 2018 features. However, having the option to
43
- change parallel programming models at link-time may enhance portability
44
- and performance (see [ Rouson et al. (2017)] ).
45
-
46
- OpenCoarrays provides a compiler wrapper (` caf ` ), parallel runtime
47
- libraries (` libcaf_mpi ` and ` libcaf_openshmem ` ), and a parallel
48
- executable file launcher (` cafrun ` ). The wrapper and launcher
49
- provide a uniform abstraction for compiling and executing parallel
50
- Fortran 2018 programs without direct reference to the underlying
51
- parallel programming model.
33
+ [ OpenCoarrays] supports the GNU Compiler Collection ([ GCC] ) Fortran compiler
34
+ ([ ` gfortran ` ] ) by providing a parallel application binary interface (ABI) that
35
+ abstracts away the underlying communication library. OpenCoarrays thus enables
36
+ ` gfortran ` to support Fortran's parallel programming features, often called
37
+ "Coarray Fortran," without making direct reference to the back-end communication
38
+ library: the Message Passing Interface (MPI). This ensures that Fortran
39
+ programs and Fortran compilers may take advantage of other communication
40
+ libraries without costly refactoring. Work is underway on the [ Caffeine]
41
+ project to support alternative communication libraries and alternative compilers
42
+ by defining a compiler-independent parallel ABI atop the [ GASNet-EX] exascale
43
+ networking middleware.
44
+
45
+ OpenCoarrays provides a compiler wrapper (` caf ` ), a parallel runtime library
46
+ (` libcaf_mpi ` ), and a program launcher (` cafrun ` ). The wrapper and launcher
47
+ provide a uniform abstraction for compiling and executing Coarray Fortran
48
+ without direct reference to the underlying MPI layer.
52
49
53
50
Downloads
54
51
---------
@@ -58,22 +55,20 @@ Please see our [Releases] page.
58
55
Compatibility
59
56
-------------
60
57
61
- The GNU Compiler Collection ([ GCC] ) Fortran front end ([ gfortran] ) has
62
- used OpenCoarrays since the GCC 5.1.0 release . Discussions are under
63
- way around incorporating OpenCoarrays into other compilers.
58
+ The OpenCoarrays ABI was adopted by ` gfortran ` in release the GCC 5.1.0 release
59
+ and ` gfortran ` continues to work with OpenCoarrays as of this writing.
64
60
65
61
Prerequisites
66
62
-------------
67
63
68
64
Building OpenCoarrays requires
69
65
70
- * An MPI implementation (default: [ MPICH] ).
71
- * CMake.
72
- * A Fortran compiler (default: [ GCC] ).
73
- * _ Optional_ : An [ OpenSHMEM] implementation.
66
+ * An MPI implementation,
67
+ * CMake, and
68
+ * The GCC C and Fortran compilers: ` gcc ` and ` gfortran ` .
74
69
75
- If you use a package manager or the OpenCoarrays installer, any
76
- missing prerequisites will be built for you.
70
+ If you use a package manager or the OpenCoarrays installer, any missing
71
+ prerequisites will be built for you.
77
72
78
73
79
74
Installation
@@ -124,6 +119,11 @@ Acknowledgments
124
119
125
120
We gratefully acknowledge support from the following institutions:
126
121
122
+ * The U.S. Nuclear Regulatory Commission [ NRC] for funding work on supporting
123
+ the Windows operating system, the ` random_init ` subroutine, and the ` co_broadcast ` .
124
+ of objects of derived type with ` allocatable ` components
125
+ * The National Aeronautics and Space Administration [ NASA] for funding the work on
126
+ supporting the ` co_broadcast ` objects of derived type.
127
127
* [ Arm] for approving compiler engineer contributions of code.
128
128
* [ National Center for Atmospheric Research] for access to the
129
129
Yellowstone/Caldera supercomputers and for logistics support during
@@ -137,7 +137,7 @@ We gratefully acknowledge support from the following institutions:
137
137
of Energy under Contract No. DE-AC02-05CH11231, for access to the
138
138
Hopper and Edison supercomputers under the OpenCoarrays project
139
139
start allocation.
140
- * [ Sourcery, Inc.] , for financial support for the domain registration,
140
+ * [ Archaeologic Inc.] for financial support for the domain registration,
141
141
web hosting, advanced development, and conference travel.
142
142
143
143
Donate
@@ -169,7 +169,6 @@ to aid in development efforts.
169
169
[ Contributing ] : #contributing
170
170
[ Acknowledgments ] : #acknowledgments
171
171
172
- [ Fortran 2018] : https://j3-fortran.org/doc/year/18/18-007r1.pdf
173
172
[ Arm ] : https://www.arm.com
174
173
175
174
[ OpenSHMEM ] : http://www.openshmem.org/site/
@@ -178,9 +177,9 @@ to aid in development efforts.
178
177
[ ABI ] : https://gcc.gnu.org/onlinedocs/gfortran/Coarray-Programming.html#Coarray-Programming
179
178
[ MPI ] : https://www.mpi-forum.org/
180
179
[ GCC ] : https://gcc.gnu.org
181
- [ gfortran ] : https://gcc.gnu.org/wiki/GFortran
180
+ [ ` gfortran` ] : https://gcc.gnu.org/wiki/GFortran
182
181
[ MPICH ] : https://www.mpich.org
183
- [ Sourcery, Inc. ] : http://www.sourceryinstitute.org
182
+ [ Sourcery Institute ] : http://www.sourceryinstitute.org
184
183
[ Google ] : https://www.google.com
185
184
[ CINECA ] : https://www.cineca.it/en
186
185
[ NERSC ] : https://www.nersc.gov
@@ -210,7 +209,10 @@ to aid in development efforts.
210
209
[ release img ] : https://img.shields.io/github/release/sourceryinstitute/OpenCoarrays.svg?style=flat-square " Latest release badge "
211
210
[ pdf img ] : https://img.shields.io/badge/PDF-README.md-6C2DC7.svg?style=flat-square " Download this readme as a PDF "
212
211
[ twitter img ] : https://img.shields.io/twitter/url/http/shields.io.svg?style=social
213
- [ Writing Fortran 2018 Today ] : https://www.eventbrite.com/e/writing-fortran-2018-today-object-oriented-parallel-programming-tickets-48982176007
214
- [ Rouson et al. (2017) ] : http://www.opencoarrays.org/uploads/6/9/7/4/69747895/a4-rouson.pdf
212
+ [ NRC ] : https://www.nrc.gov
213
+ [ NASA ] : https://www.nasa.gov
214
+ [ Caffeine ] : https://go.lbl.gov/caffeine
215
+ [ Archaeologic Inc. ] : https://www.archaeologic.codes
216
+ [ GASNet-EX ] : https://go.lbl.gov/gasnet
215
217
216
218
[ default tweet ] : https://twitter.com/intent/tweet?hashtags=HPC,Fortran,PGAS&related=zbeekman,gnutools,HPCwire,HPC_Guru,hpcprogrammer,SciNetHPC,DegenerateConic,jeffdotscience,travisci&text=Stop%20programming%20w%2F%20the%20%23MPI%20docs%20in%20your%20lap%2C%20try%20Coarray%20Fortran%20w%2F%20OpenCoarrays%20%26%20GFortran!&url=https%3A//github.com/sourceryinstitute/OpenCoarrays
0 commit comments