Skip to content

Commit e665b2b

Browse files
committed
Small cleanup with mdl and markdownlint-cli
In general I agree that bare URLs are bad and some lines in the links section are too long, but this is a good improvement, and low hanging fruit.
1 parent fd165b6 commit e665b2b

File tree

1 file changed

+78
-17
lines changed

1 file changed

+78
-17
lines changed

README.md

Lines changed: 78 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ OpenCoarrays
1919
[![Download as PDF][pdf img]](https://md2pdf.herokuapp.com/sourceryinstitute/OpenCoarrays/blob/master/README.pdf)
2020
[![Twitter URL][twitter img]][default tweet]
2121

22-
2322
[Overview](#overview) ·
2423
[Downloads](#downloads) ·
2524
[Compatibility](#compatibility) ·
@@ -36,13 +35,42 @@ OpenCoarrays
3635

3736
Overview
3837
--------
39-
[OpenCoarrays] is an open-source software project that supports the coarray Fortran (CAF) parallel programming features of the Fortran 2008 standard and several features proposed for Fortran 2015 in the draft Technical Specification [TS 18508] _Additional Parallel Features in Fortran_.
40-
41-
OpenCoarrays provides a compiler wrapper (named `caf`), a runtime library (named `libcaf_mpi.a` by default), and an executable file launcher (named `cafrun`). With OpenCoarrays-aware compilers, the compiler wrapper passes the provided source code to the chosen compiler (`mpif90` by default). For non-OpenCoarrays-aware compilers, the wrapper transforms CAF syntax into OpenCoarrays procedure calls before invoking the chosen compiler on the transformed code. The runtime library supports compiler communication and synchronization requests by invoking a lower-level communication library--the Message Passing Interface ([MPI]) by default. The launcher passes execution to the chosen communication library's parallel program launcher (`mpirun` by default).
4238

43-
OpenCoarrays defines an application binary interface ([ABI]) that translates high-level communication and synchronization requests into low-level calls to a user-specified communication library. This design decision liberates compiler teams from hardwiring communication-library choice into their compilers and it frees Fortran programmers to express parallel algorithms once and reuse identical CAF source with whichever communication library is most efficient for a given hardware platform. The communication substrate for OpenCoarrays built with the preferred build system, CMake, is the Message Passing Interface ([MPI]).
44-
45-
OpenCoarrays enables CAF application developers to express parallel algorithms without hardwiring a particular version of a particular communication library or library version into their codes. Such abstraction makes application code less sensitive to the evolution of the underlying communication libraries and hardware platforms.
39+
[OpenCoarrays] is an open-source software project
40+
that supports the coarray Fortran (CAF) parallel programming features
41+
of the Fortran 2008 standard and several features proposed for Fortran
42+
2015 in the draft Technical Specification [TS 18508] _Additional
43+
Parallel Features in Fortran_.
44+
45+
OpenCoarrays provides a compiler wrapper (named `caf`), a runtime
46+
library (named `libcaf_mpi.a` by default), and an executable file
47+
launcher (named `cafrun`). With OpenCoarrays-aware compilers, the
48+
compiler wrapper passes the provided source code to the chosen
49+
compiler (`mpif90` by default). For non-OpenCoarrays-aware compilers,
50+
the wrapper transforms CAF syntax into OpenCoarrays procedure calls
51+
before invoking the chosen compiler on the transformed code. The
52+
runtime library supports compiler communication and synchronization
53+
requests by invoking a lower-level communication library--the Message
54+
Passing Interface ([MPI]) by default. The launcher passes execution
55+
to the chosen communication library's parallel program launcher
56+
(`mpirun` by default).
57+
58+
OpenCoarrays defines an application binary interface ([ABI]) that
59+
translates high-level communication and synchronization requests into
60+
low-level calls to a user-specified communication library. This
61+
design decision liberates compiler teams from hardwiring
62+
communication-library choice into their compilers and it frees Fortran
63+
programmers to express parallel algorithms once and reuse identical
64+
CAF source with whichever communication library is most efficient for
65+
a given hardware platform. The communication substrate for
66+
OpenCoarrays built with the preferred build system, CMake, is the
67+
Message Passing Interface ([MPI]).
68+
69+
OpenCoarrays enables CAF application developers to express parallel
70+
algorithms without hardwiring a particular version of a particular
71+
communication library or library version into their codes. Such
72+
abstraction makes application code less sensitive to the evolution of
73+
the underlying communication libraries and hardware platforms.
4674

4775
Downloads
4876
---------
@@ -51,13 +79,34 @@ Please see our [Releases] page.
5179

5280
Compatibility
5381
-------------
54-
The GNU Compiler Collection ([GCC]) Fortran front end ([gfortran]) is OpenCoarrays-aware for release versions 5.1.0 and higher. Users of other compilers, including earlier versions of gfortran, can access a limited subset of CAF features via the provided [opencoarrays module]. After installation, please execute the `caf` script (which is installed in the `bin` directory of the installation path) with no arguments to see a list of the corresponding limitations. Please also notify the corresponding compiler vendor and the OpenCoarrays team that you would like for a future version of the compiler to be OpenCoarrays-aware.
82+
83+
The GNU Compiler Collection ([GCC]) Fortran front end ([gfortran]) is
84+
OpenCoarrays-aware for release versions 5.1.0 and higher. Users of
85+
other compilers, including earlier versions of gfortran, can access a
86+
limited subset of CAF features via the provided [opencoarrays module].
87+
After installation, please execute the `caf` script (which is
88+
installed in the `bin` directory of the installation path) with no
89+
arguments to see a list of the corresponding limitations. Please also
90+
notify the corresponding compiler vendor and the OpenCoarrays team
91+
that you would like for a future version of the compiler to be
92+
OpenCoarrays-aware.
5593

5694
Prerequisites
5795
-------------
58-
We expect our LIBCAF_MPI library to be the default OpenCoarrays library. LIBCAF_MPI is the most straightforward to install and use, the most robust in terms of its internal complexity, and the most frequently updated and maintained. Building LIBCAF_MPI requires prior installation of an MPI implementation. We recommend [MPICH] generally or, if available, [MVAPICH] for better performance. [OpenMPI] is another option.
5996

60-
We offer an unsupported LIBCAF_GASNet alternative. We intend for LIBCAF_GASNet to be an "expert" alternative capable of outperforming MPI for some applications on some platforms. LIBCAF_GASNet requires greater care to configure and use and building LIBCAF_GASNet requires prior installation of [GASNet].
97+
We expect our LIBCAF_MPI library to be the default OpenCoarrays
98+
library. LIBCAF_MPI is the most straightforward to install and use,
99+
the most robust in terms of its internal complexity, and the most
100+
frequently updated and maintained. Building LIBCAF_MPI requires prior
101+
installation of an MPI implementation. We recommend [MPICH] generally
102+
or, if available, [MVAPICH] for better performance. [OpenMPI] is
103+
another option.
104+
105+
We offer an unsupported LIBCAF_GASNet alternative. We intend for
106+
LIBCAF_GASNet to be an "expert" alternative capable of outperforming
107+
MPI for some applications on some platforms. LIBCAF_GASNet requires
108+
greater care to configure and use and building LIBCAF_GASNet requires
109+
prior installation of [GASNet].
61110

62111
Installation
63112
------------
@@ -84,20 +133,33 @@ Support
84133
-------
85134

86135
* Please submit bug reports and feature requests via our [Issues] page.
87-
* Please submit questions regarding installation and use via our [Google Group] by signing into [Google Groups] or [subscribing] and sending email to [[email protected]].
136+
* Please submit questions regarding installation and use via our
137+
[Google Group] by signing into [Google Groups] or [subscribing] and
138+
sending email to [[email protected]].
88139

89140
Acknowledgements
90141
----------------
142+
91143
We gratefully acknowledge support from the following institutions:
92144

93-
* [National Center for Atmospheric Research] for access to the Yellowstone/Caldera supercomputers and for logistics support during the initial development of OpenCoarrays.
94-
* [CINECA] for access to Eurora/PLX for the project HyPS- BLAS under the ISCRA grant program for 2014.
95-
* [Google] for support of a related [Google Summer of Code] 2014 project.
96-
* 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.
97-
* [Sourcery, Inc.], for financial support for the domain registration, web hosting, advanced development, and conference travel.
145+
* [National Center for Atmospheric Research] for access to the
146+
Yellowstone/Caldera supercomputers and for logistics support during
147+
the initial development of OpenCoarrays.
148+
* [CINECA] for access to Eurora/PLX for the project HyPS- BLAS under
149+
the ISCRA grant program for 2014.
150+
* [Google] for support of a related [Google Summer of Code] 2014
151+
project.
152+
* The National Energy Research Scientific Computing Center ([NERSC]),
153+
which is supported by the Office of Science of the U.S. Department
154+
of Energy under Contract No. DE-AC02-05CH11231, for access to the
155+
Hopper and Edison supercomputers under the OpenCoarrays project
156+
start allocation.
157+
* [Sourcery, Inc.], for financial support for the domain registration,
158+
web hosting, advanced development, and conference travel.
98159

99160
Donate
100161
------
162+
101163
If you find this software useful, please consider donating
102164
[your time](CONTRIBUTING.md) or
103165
[your money](http://www.sourceryinstitute.org/store/p5/Donation.html)
@@ -150,7 +212,6 @@ to aid in development efforts.
150212
151213
[Google Summer of Code]: https://www.google-melange.com/archive/gsoc/2014/orgs/gcc
152214

153-
154215
[Issues]: https://github.com/sourceryinstitute/OpenCoarrays/issues
155216
[Releases]: https://github.com/sourceryinstitute/OpenCoarrays/releases
156217

0 commit comments

Comments
 (0)