@@ -29,52 +29,33 @@ OpenCoarrays
2929
3030News
3131----
32-
33- You can now [ try OpenCoarrays online] as a [ Jupyter] [ notebook kernel]
34- using [ Binder] ! No downloads, configuration or installation required!
35- Please note: the default [ index.ipynb] notebook is read only. You can
36- execute it, but if you want to make changes you should create a copy
37- of it or create an entirely new [ CAF kernel] [ notebook kernel ]
38- notebook.
32+ ### Upcoming events ###
33+ * Nov. 5-8, 2018: "[ Writing Fortran 2018 Today] " course by OpenCoarrays contributors Damian Rouson and Izaak Beekman.
34+ * Nov. 13, 2018: [ Intel Speakerships at SC18] presentation by Damian Rouson and Sameer Shende
35+ * Nov. 16, 2018: SC18 [ PAW-ATM Workshop] presentation by OpenCoarrays contributor Soren Rasmussen.
3936
4037Overview
4138--------
4239
43- [ OpenCoarrays] is an open-source software project
44- that supports the coarray Fortran (CAF) parallel programming features
45- of the Fortran 2008 standard and several features proposed for Fortran
46- 2015 in the draft Technical Specification [ TS 18508] _ Additional
47- Parallel Features in Fortran_ .
48-
49- OpenCoarrays provides a compiler wrapper (named ` caf ` ), a runtime
50- library (named ` libcaf_mpi.a ` by default), and an executable file
51- launcher (named ` cafrun ` ). With OpenCoarrays-aware compilers, the
52- compiler wrapper passes the provided source code to the chosen
53- compiler (` mpifort ` by default). For non-OpenCoarrays-aware compilers,
54- the wrapper transforms CAF syntax into OpenCoarrays procedure calls
55- before invoking the chosen compiler on the transformed code. The
56- runtime library supports compiler communication and synchronization
57- requests by invoking a lower-level communication library--the Message
58- Passing Interface ([ MPI] ) by default. The launcher passes execution
59- to the chosen communication library's parallel program launcher
60- (` mpiexec ` by default).
61-
62- OpenCoarrays defines an application binary interface ([ ABI] ) that
63- translates high-level communication and synchronization requests into
64- low-level calls to a user-specified communication library. This
65- design decision liberates compiler teams from hardwiring
66- communication-library choice into their compilers and it frees Fortran
67- programmers to express parallel algorithms once and reuse identical
68- CAF source with whichever communication library is most efficient for
69- a given hardware platform. The communication substrate for
70- OpenCoarrays built with the preferred build system, CMake, is the
71- Message Passing Interface ([ MPI] ).
72-
73- OpenCoarrays enables CAF application developers to express parallel
74- algorithms without hardwiring a particular version of a particular
75- communication library or library version into their codes. Such
76- abstraction makes application code less sensitive to the evolution of
77- the underlying communication libraries and hardware platforms.
40+ [ OpenCoarrays] supports [ Fortran 2018] compilers by providing a
41+ parallel application binary interface (ABI) that abstracts away the
42+ underlying parallel programming model, which can be the Message
43+ Passing Interface ([ MPI] ) or [ OpenSHMEM] . Parallel Fortran 2018
44+ programs may be written and compiled into object files once, and
45+ then linked or relinked to either MPI or [ OpenSHMEM] without modifying
46+ or recompiling the Fortran source. Not a single line of source code
47+ need change to switch parallel programming models. The default MPI,
48+ which we expect to provide the broadest support for Fortran 2018 for
49+ the foreseeable future. However, having the option to parallel
50+ programming models at link-time aids portability and performance
51+ (see [ Rouson et al. (2017)] and [ Rasmussen et al. (2018)] ).
52+
53+ OpenCoarrays provides a compiler wrapper (` caf ` ), parallel runtime
54+ libraries (` libcaf_mpi ` and ` libcaf_openshmem ` ), and a parallel
55+ executable file launcher (` cafrun ` ). The wrapper and launcher
56+ provide a uniform abstraction for compiling and executing parallel
57+ Fortran 2018 programs without direct reference to the underlying
58+ parallel programming model.
7859
7960Downloads
8061---------
@@ -84,39 +65,35 @@ Please see our [Releases] page.
8465Compatibility
8566-------------
8667
87- The GNU Compiler Collection ([ GCC] ) Fortran front end ([ gfortran] ) is
88- OpenCoarrays-aware for release versions 5.1.0 and higher. Users of
89- other compilers, including earlier versions of gfortran, can access a
90- limited subset of CAF features via the provided [ opencoarrays module] .
91- After installation, please execute the ` caf ` script (which is
92- installed in the ` bin ` directory of the installation path) with no
93- arguments to see a list of the corresponding limitations. Please also
94- notify the corresponding compiler vendor and the OpenCoarrays team
95- that you would like for a future version of the compiler to be
96- OpenCoarrays-aware.
68+ The GNU Compiler Collection ([ GCC] ) Fortran front end ([ gfortran] ) has
69+ used OpenCoarrays since the GCC 5.1.0 release . Discussions are under
70+ way around incorporating OpenCoarrays into other compilers.
9771
9872Prerequisites
9973-------------
10074
101- We expect our LIBCAF_MPI library to be the default OpenCoarrays
102- library. LIBCAF_MPI is the most straightforward to install and use,
103- the most robust in terms of its internal complexity, and the most
104- frequently updated and maintained. Building LIBCAF_MPI requires prior
105- installation of an MPI implementation. We recommend [ MPICH] generally
106- or, if available, [ MVAPICH] for better performance. [ OpenMPI] is
107- another option.
75+ Building OpenCoarrays requires
76+
77+ * An MPI implementation (default: [ MPICH] ).
78+ * CMake.
79+ * A Fortran compiler (default: [ GCC] ).
80+ * _ Optional_ : An [ OpenSHMEM] implementation.
81+
82+ If you use a package manager or the OpenCoarrays installer, any
83+ missing prerequisites will be built for you.
10884
109- We offer an unsupported LIBCAF_GASNet alternative. We intend for
110- LIBCAF_GASNet to be an "expert" alternative capable of outperforming
111- MPI for some applications on some platforms. LIBCAF_GASNet requires
112- greater care to configure and use and building LIBCAF_GASNet requires
113- prior installation of [ GASNet] .
11485
11586Installation
11687------------
11788
11889Please see the [ INSTALL.md] file.
11990
91+ Or [ try OpenCoarrays online] as a [ Jupyter] [ notebook kernel]
92+ using [ Binder] with no downloads, configuration or installation required.
93+ The default [ index.ipynb] notebook is read only, but you can
94+ execute it, copy it to make changes, or create an entirely
95+ new [ CAF kernel] [ notebook kernel ] notebook.
96+
12097Getting Started
12198---------------
12299
@@ -136,16 +113,14 @@ A list of open issues can be viewed on the
136113Support
137114-------
138115
139- * Please submit bug reports and feature requests via our [ Issues] page.
140- * Please submit questions regarding installation and use via our
141- [ Google Group] by signing into [ Google Groups] or [ subscribing] and
142- sending email to
[ [email protected] ] .
116+ Please submit bug reports and feature requests via our [ Issues] page.
143117
144118Acknowledgements
145119----------------
146120
147121We gratefully acknowledge support from the following institutions:
148122
123+ * [ Arm] for approving compiler engineer contributions of code.
149124* [ National Center for Atmospheric Research] for access to the
150125 Yellowstone/Caldera supercomputers and for logistics support during
151126 the initial development of OpenCoarrays.
@@ -191,6 +166,15 @@ to aid in development efforts.
191166[ Contributing ] : #contributing
192167[ Acknowledgements ] : #acknowledgements
193168
169+ [ Fortran 2018 ] : http://isotc.iso.org/livelink/livelink?func=ll&objId=19442438&objAction=Open&viewType=1
170+ [ Rouson et al. (2017) ] : https://github.com/sourceryinstitute/coarray-icar-paw17/blob/master/main.pdf
171+ [ Rasmussen et al. (2018) ] : https://github.com/scrasmussen/coarray-icar-paw18/blob/master/main.pdf
172+ [ Arm ] : https://www.arm.com
173+ [ PAW-ATM Workshop ] : http://sourceryinstitute.github.io/PAW/
174+ [ Writing Fortran 2018 Today ] : https://writing-fortran-2018-today.eventbrite.com
175+ [ Intel Speakerships at SC18 ] : https://easychair.org/cfp/IntelSpeakershipsatSC18
176+
177+ [ OpenSHMEM ] : http://www.openshmem.org
194178[ sourcery-institute logo ] : http://www.sourceryinstitute.org/uploads/4/9/9/6/49967347/sourcery-logo-rgb-hi-rez-1.png
195179[ OpenCoarrays ] : http://www.opencoarrays.org
196180[ ABI ] : https://gcc.gnu.org/onlinedocs/gfortran/Coarray-Programming.html#Coarray-Programming
@@ -233,5 +217,7 @@ to aid in development efforts.
233217[ release img ] : https://img.shields.io/github/release/sourceryinstitute/OpenCoarrays.svg?style=flat-square " Latest release badge "
234218[ pdf img ] : https://img.shields.io/badge/PDF-README.md-6C2DC7.svg?style=flat-square " Download this readme as a PDF "
235219[ twitter img ] : https://img.shields.io/twitter/url/http/shields.io.svg?style=social
220+ https://www.eventbrite.com/e/writing-fortran-2018-today-object-oriented-parallel-programming-tickets-48982176007
221+ [ Writing Fortran 2018 Today ] : https://writing-fortran-2018-today.eventbrite.com
236222
237223[ 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