Skip to content

Commit ee1aff2

Browse files
committed
Merge pull request #59 from zbeekman/issue-52-synchronize-master-to-branch
Part II of II issue 52 re-syncronize master and 1.x - In preparation for migrating to Github Flow workflow
2 parents 2f674cc + c0316ae commit ee1aff2

File tree

15 files changed

+894
-873
lines changed

15 files changed

+894
-873
lines changed

.gitattributes

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# Set the default behavior, in case people don't have core.autocrlf set.
2+
* text=auto
3+
4+
# Explicitly declare text files you want to always be normalized and converted
5+
# to native line endings on checkout.
6+
*.c text
7+
*.h text
8+
*.f90 text
9+
*.F90 text
10+
*.md text
11+
*.txt text
12+
13+
# Denote all files that are truly binary and should not be modified.
14+
*.mod binary
15+
*.o binary
16+
*.a binary
17+
*.tar binary
18+
*.gz binary
19+
*.tgz binary
20+
21+
# Prevent dev-ops files from making it into the release archives
22+
.travis.yml export-ignore
23+
.gitattributes export-ignore
24+
.gitignore export-ignore

AUTHORS

Lines changed: 0 additions & 9 deletions
This file was deleted.

AUTHORS.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# Contributors to OpenCoarrays
2+
3+
- Alessandro Fanfarillo <[email protected]>
4+
- Damian Rouson <[email protected]>
5+
- Daniel Carrera <[email protected]>
6+
- Jeff Hammond <[email protected]>
7+
- Tobias Burnus <[email protected]>

CAF_ABI.txt renamed to CAF_ABI.md

File renamed without changes.

CMakeLists.txt

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,12 +29,13 @@ if ("${CMAKE_Fortran_COMPILER_ID}" MATCHES "GNU" )
2929
# add_definitions(-DPREFIX_NAME=_gfortran_caf_)
3030
else()
3131
message(WARNING
32-
"*** Attempting to build with untested Fortran compiler: ${CMAKE_Fortran_COMPILER_ID}."
33-
"*** Please report any failures to [email protected]"
32+
"\n"
33+
"Attempting to build with untested Fortran compiler: ${CMAKE_Fortran_COMPILER_ID}. "
34+
"Please report any failures to [email protected]\n\n"
3435
)
3536
endif()
3637

37-
if (CMAKE_VERSION VERSION_GREATER 3.2.3)
38+
if (NOT CMAKE_VERSION VERSION_LESS 3.3.1)
3839
# Detect Fortran compiler version directly
3940
if(gfortran_compiler AND (CMAKE_Fortran_COMPILER_VERSION VERSION_GREATER 5.0.0))
4041
set(opencoarrays_aware_compiler true)

CONTRIBUTING renamed to CONTRIBUTING.md

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
1-
Contribution procedure
1+
# Contribution procedure
22

33
This document describes several pieces of information required for
4-
a contribution of code to OpenCoarrays to be approved.
4+
a contribution of code to OpenCoarrays to be approved.
55

6-
----------------------------------------------------------------------
76

8-
Pull requests
7+
# Pull requests
98

109
We accept pull requests on the GitHub repository.
1110
Please follow the procedure explained at
@@ -17,9 +16,8 @@ git commit --signoff
1716

1817
in order to accept the Developer Certificate of Origin (below).
1918

20-
--------------------------------------------------------------------
2119

22-
Developer Certificate of Origin
20+
# Developer Certificate of Origin
2321
Version 1.1
2422

2523
Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
@@ -34,23 +32,23 @@ Developer's Certificate of Origin 1.1
3432

3533
By making a contribution to this project, I certify that:
3634

37-
(a) The contribution was created in whole or in part by me and I
35+
1. The contribution was created in whole or in part by me and I
3836
have the right to submit it under the open source license
3937
indicated in the file; or
4038

41-
(b) The contribution is based upon previous work that, to the best
39+
2. The contribution is based upon previous work that, to the best
4240
of my knowledge, is covered under an appropriate open source
4341
license and I have the right under that license to submit that
4442
work with modifications, whether created in whole or in part
4543
by me, under the same open source license (unless I am
4644
permitted to submit under a different license), as indicated
4745
in the file; or
4846

49-
(c) The contribution was provided directly to me by some other
47+
3. The contribution was provided directly to me by some other
5048
person who certified (a), (b) or (c) and I have not modified
5149
it.
5250

53-
(d) I understand and agree that this project and the contribution
51+
4. I understand and agree that this project and the contribution
5452
are public and that a record of the contribution (including all
5553
personal information I submit with it, including my sign-off) is
5654
maintained indefinitely and may be redistributed consistent with

GETTING_STARTED.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ the underlying communication library directly:
9898

9999
mpif90 -fcoarray=lib -L/opt/opencoarrays/ tally.f90 \ -lcaf_mpi -o htally-I<OpenCoarrays-install-path>/mod
100100

101-
and also run the program with the lower-level commnication library:
101+
and also run the program with the lower-level communication library:
102102

103103
mpirun -np <number-of-images> ./tally
104104

README.md

Lines changed: 110 additions & 110 deletions
Original file line numberDiff line numberDiff line change
@@ -1,110 +1,110 @@
1-
[This document is formatted with GitHub-Flavored Markdown. ]:#
2-
[For better viewing, including hyperlinks, read it online at ]:#
3-
[https://github.com/sourceryinstitute/opencoarrays/blob/master/README.md]:#
4-
5-
# OpenCoarrays #
6-
7-
* [Overview]
8-
* [Downloads]
9-
* [Compatibility]
10-
* [Prerequisites]
11-
* [Installation]
12-
* [Contributing]
13-
* [Acknowledgements]
14-
15-
## <a name="overview">Overview</a> ##
16-
[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_.
17-
18-
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 OpenCoarrys 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).
19-
20-
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]).
21-
22-
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.
23-
24-
<a name="downloads">
25-
## Downloads</a> ##
26-
Please see our [Releases] page.
27-
28-
## <a name="compatibility">Compatibility</a> ##
29-
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.
30-
31-
## <a name="prerequisites">Prerequisites</a> ##
32-
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.
33-
34-
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].
35-
36-
<a name="installation">
37-
## Installation</a> ##
38-
39-
Please see the [INSTALL.md] file.
40-
41-
<a name="installation">
42-
## Getting Started</a> ##
43-
44-
To start using OpenCoarrays, please see the [GETTING_STARTED.md] file.
45-
46-
<a name="contributing">
47-
## Contributing</a> ##
48-
49-
Please see the [CONTRIBUTING] file.
50-
51-
<a name="status">
52-
## Status</a> ##
53-
54-
Please see the [STATUS.md] file.
55-
56-
## <a name="support">Support</a> ##
57-
58-
* Please submit bug reports and feature requests via our [Issues]).
59-
* Please submit questions regarding installation and use via our [Google Group] by signing into [Google Groups] or [subscribing] and sending email to [[email protected]].
60-
* We offer an additional [menu of services] on a contract basis.
61-
62-
## <a name="acknowledgements">Acknowledgements</a> ##
63-
We gratefully acknowledge support from the following institutions:
64-
65-
* [National Center for Atmospheric Research] for access to the Yellowstone/Caldera supercomputers and for logistics support during the initial development of OpenCoarrays.
66-
* [CINECA] for access to Eurora/PLX for the project HyPS- BLAS under the ISCRA grant program for 2014.
67-
* [Google] for support of a related [Google Summer of Code] 2014 project.
68-
* 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.
69-
* [Sourcery, Inc.], for financial support for the domain registration, web hosting, advanced development, and conference travel.
70-
71-
[Hyperlinks]:#
72-
73-
[Overview]: #overview
74-
[Downloads]: #downloads
75-
[Compatibility]: #compatibility
76-
[Prerequisites]: #prerequisites
77-
[Installation]: #installation
78-
[Contributing]: #contributing
79-
[Acknowledgements]: #acknowledgements
80-
81-
82-
[OpenCoarrays]: http://www.opencoarrays.org
83-
[ABI]: https://gcc.gnu.org/onlinedocs/gfortran/Function-ABI-Documentation.html#Function-ABI-Documentation
84-
[TS 18508]: http://isotc.iso.org/livelink/livelink?func=ll&objId=16769292&objAction=Open
85-
[MPI]: http://www.mpi-forum.org
86-
[ABI]: https://gcc.gnu.org/onlinedocs/gfortran/Function-ABI-Documentation.html#Function-ABI-Documentation
87-
[GCC]: http://gcc.gnu.org
88-
[gfortran]: https://gcc.gnu.org/wiki/GFortran
89-
[opencoarrays module]: ./src/extensions/opencoarrays.F90
90-
[MPICH]: http://www.mpich.org
91-
[MVAPICH]: http://mvapich.cse.ohio-state.edu/)
92-
[OpenMPI]: http://www.open-mpi.org
93-
[Sourcery, Inc.]: http://www.sourceryinstitute.org
94-
[Google]: http://google.com
95-
[CINECA]: http://www.cineca.it/en
96-
[NERSC]: http://www.nersc.gov
97-
[NCAR]: http://ncar.ucar.edu
98-
[INSTALL.md]: ./INSTALL.md
99-
[GASNet]: http://gasnet.lbl.gov
100-
[menu of services]: http://opencoarrays.org/services
101-
[CONTRIBUTING.md]: ./CONTRIBUTING.md
102-
[STATUS.md]: ./STATUS.md
103-
[GETTING_STARTED.md]: ./GETTING_STARTED.md
104-
[Google Groups]: https://groups.google.com
105-
[subscribing]: https://groups.google.com/forum/#!forum/opencoarrays/join
106-
107-
[Google Summer of Code]: https://www.google-melange.com
108-
[OpenCoarrays Google Group]: https://groups.google.com/forum/#!forum/opencoarrays)
109-
[Issues]: https://github.com/sourceryinstitute/opencoarrays/issue
110-
[Releases]: https://github.com/sourceryinstitute/opencoarrays/releases
1+
[This document is formatted with GitHub-Flavored Markdown. ]:#
2+
[For better viewing, including hyperlinks, read it online at ]:#
3+
[https://github.com/sourceryinstitute/opencoarrays/blob/master/README.md]:#
4+
5+
# OpenCoarrays #
6+
7+
* [Overview]
8+
* [Downloads]
9+
* [Compatibility]
10+
* [Prerequisites]
11+
* [Installation]
12+
* [Contributing]
13+
* [Acknowledgements]
14+
15+
## <a name="overview">Overview</a> ##
16+
[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_.
17+
18+
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 OpenCoarrys 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).
19+
20+
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]).
21+
22+
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.
23+
24+
<a name="downloads">
25+
## Downloads</a> ##
26+
Please see our [Releases] page.
27+
28+
## <a name="compatibility">Compatibility</a> ##
29+
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.
30+
31+
## <a name="prerequisites">Prerequisites</a> ##
32+
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.
33+
34+
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].
35+
36+
<a name="installation">
37+
## Installation</a> ##
38+
39+
Please see the [INSTALL.md] file.
40+
41+
<a name="installation">
42+
## Getting Started</a> ##
43+
44+
To start using OpenCoarrays, please see the [GETTING_STARTED.md] file.
45+
46+
<a name="contributing">
47+
## Contributing</a> ##
48+
49+
Please see the [CONTRIBUTING.md] file.
50+
51+
<a name="status">
52+
## Status</a> ##
53+
54+
Please see the [STATUS.md] file.
55+
56+
## <a name="support">Support</a> ##
57+
58+
* Please submit bug reports and feature requests via our [Issues]).
59+
* Please submit questions regarding installation and use via our [Google Group] by signing into [Google Groups] or [subscribing] and sending email to [[email protected]].
60+
* We offer an additional [menu of services] on a contract basis.
61+
62+
## <a name="acknowledgements">Acknowledgements</a> ##
63+
We gratefully acknowledge support from the following institutions:
64+
65+
* [National Center for Atmospheric Research] for access to the Yellowstone/Caldera supercomputers and for logistics support during the initial development of OpenCoarrays.
66+
* [CINECA] for access to Eurora/PLX for the project HyPS- BLAS under the ISCRA grant program for 2014.
67+
* [Google] for support of a related [Google Summer of Code] 2014 project.
68+
* 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.
69+
* [Sourcery, Inc.], for financial support for the domain registration, web hosting, advanced development, and conference travel.
70+
71+
[Hyperlinks]:#
72+
73+
[Overview]: #overview
74+
[Downloads]: #downloads
75+
[Compatibility]: #compatibility
76+
[Prerequisites]: #prerequisites
77+
[Installation]: #installation
78+
[Contributing]: #contributing
79+
[Acknowledgements]: #acknowledgements
80+
81+
82+
[OpenCoarrays]: http://www.opencoarrays.org
83+
[ABI]: https://gcc.gnu.org/onlinedocs/gfortran/Function-ABI-Documentation.html#Function-ABI-Documentation
84+
[TS 18508]: http://isotc.iso.org/livelink/livelink?func=ll&objId=16769292&objAction=Open
85+
[MPI]: http://www.mpi-forum.org
86+
[ABI]: https://gcc.gnu.org/onlinedocs/gfortran/Function-ABI-Documentation.html#Function-ABI-Documentation
87+
[GCC]: http://gcc.gnu.org
88+
[gfortran]: https://gcc.gnu.org/wiki/GFortran
89+
[opencoarrays module]: ./src/extensions/opencoarrays.F90
90+
[MPICH]: http://www.mpich.org
91+
[MVAPICH]: http://mvapich.cse.ohio-state.edu/)
92+
[OpenMPI]: http://www.open-mpi.org
93+
[Sourcery, Inc.]: http://www.sourceryinstitute.org
94+
[Google]: http://google.com
95+
[CINECA]: http://www.cineca.it/en
96+
[NERSC]: http://www.nersc.gov
97+
[NCAR]: http://ncar.ucar.edu
98+
[INSTALL.md]: ./INSTALL.md
99+
[GASNet]: http://gasnet.lbl.gov
100+
[menu of services]: http://opencoarrays.org/services
101+
[CONTRIBUTING.md]: ./CONTRIBUTING.md
102+
[STATUS.md]: ./STATUS.md
103+
[GETTING_STARTED.md]: ./GETTING_STARTED.md
104+
[Google Groups]: https://groups.google.com
105+
[subscribing]: https://groups.google.com/forum/#!forum/opencoarrays/join
106+
107+
[Google Summer of Code]: https://www.google-melange.com
108+
[OpenCoarrays Google Group]: https://groups.google.com/forum/#!forum/opencoarrays)
109+
[Issues]: https://github.com/sourceryinstitute/opencoarrays/issue
110+
[Releases]: https://github.com/sourceryinstitute/opencoarrays/releases

src/extensions/opencoarrays.F90

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -220,7 +220,7 @@ subroutine opencoarrays_co_reduce(a, opr, opr_flags, result_image, stat, errmsg,
220220
#ifdef COMPILER_SUPPORTS_CAF_INTRINSICS
221221
bind(C,name="_caf_extensions_co_reduce")
222222
#else
223-
bind(C,name="_gfortran_extensions_co_reduce")
223+
bind(C,name="_gfortran_caf_co_reduce")
224224
#endif
225225
use iso_c_binding, only : c_ptr,c_funptr,c_int,c_char
226226
type(c_ptr), intent(in), value :: a

0 commit comments

Comments
 (0)