Announcing the OpenCoarrays 2.0.0 release

137 views
Skip to first unread message

Zaak Beekman

unread,
Mar 9, 2018, 12:00:30 PM3/9/18
to OpenCoarrays
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

OpenCoarrays 2.0.0 has been released!

Major new features include:

 * Allocatable and pointer components of derived type objects that are coarrays
 * Fortran 2018 teams (GCC development build required)
 * Miscellaneous bug fixes, documentation improvements and build system fixes.

Many thanks to new and old contributors alike including (in no particular order):

 Andre Vehreschild
 Damian Rouson
 Alessandro Fanfarillo
 @neok-m4700
 Janne Blomqvist
 Jerry DeLisle
 and others who have contributed in the past.


Also, thanks to bug reports from:

 @neok-m4700
 Stephan Schulz
 Dan Nagle
 Luke Stagner
 Reinh Bader
 Salvatore Filippone
 @jbmaggard
 Jeff Hammond
 Milan Curcic
 Anton (@mexas)
 and many others who I have no doubt forgotten to mention.

Best,

Izaak "Zaak" Beekman


-----BEGIN PGP SIGNATURE-----

iQIzBAEBCAAdFiEEqUSJ2TjLk2Zo+QkRqTznDYAhvQ8FAlqivZ8ACgkQqTznDYAh
vQ/EoA//dkAHRKcSF61SQEaaESUovZweN5ciSbZ96SRlNhJi/4ujPYYyDFLnH0Du
Cx1IZVuRBgyuzIjVI7IquyFVaKNX7xMCX64pAjRo54GDVkikFDXhWokr+OfSkN9o
9DQSVeg4tL7ZiE8j+0MdscYUIW9IMNFl7Sbcs46gbqBCHDj3AMYiuBFMPVM4pNXS
kiBBdou+TwCnX8zTGnUvms+MnkzQigFVCpdlgkxe1Y7HFvyda1LqpsHXndzb837W
C/6yvQiJj+OTP0tIXK3jJ9HQ5nABImDZgfPpvqvx801XMe1y//HSznUxjZCDmjFV
04vdArkIFhksoZlPcNUa34RABg8wgalp/CBh/oIElxX2yPIQntNrGCp3ByrRmOQr
jblrQzZndg+ZHrxZOnjaLaMXyfjls1iyFjjnegsx779PZdaSgOncRFmgMfMJ5TZW
GGmU2OWlFnd0aehmVKqmhXDyLqLxvPD/Kh0mEpkjsUPhzeNasQHQq4A0DGTvzpEM
xzc3jKbK6Jz5ybNaASog5iJq4r3t8NfkX4trq5Qa8StqHYQ5uAU53f8gTmKiLtDW
0UNi/2/x0v9ztLeqyfiT3d7cs+sZnLEBu5PFmw8rVTZPI3wIfqzvWIDWiztW/Yzm
7CKwOU5TgHA2jQn0dlQbArMaDzGFgm4TTdsSQjB86BySJrtsR8Q=
=Rr+R
-----END PGP SIGNATURE-----

michael siehl

unread,
Mar 10, 2018, 3:26:49 AM3/10/18
to OpenCoarrays

Great job!!!

Congratulations to all of you. To me, Fortran 2018 teams do mark an important milestone and a new era for the possibilities of Fortran and PGAS programming. I will try out installation of this new release on a laptop computer and use of the Fortran 2018 team features.


Best wishes

dam...@sourceryinstitute.org

unread,
Mar 10, 2018, 11:49:39 AM3/10/18
to OpenCoarrays
Thanks for your continued interest and encouragement, Michael.  I am excited about this OpenCoarrays 2.0.0 release and the upcoming GCC 8 release.  The combination of GCC 8 + OpenCoarray s2.0.0 provides _partial_ support for every _major_ Fortran 2018 feature.  Although gfortran developer Paul Thomas would rightfully admonish me for overstatement, the underlined caveats are important. There are missing features that I consider minor.  And the supported major features don't cover some very important use cases. A few missing use cases are (1) event_type is not currently extensible, (2) teams will not work in the presence of failed images, and now there is the really huge hole that I just discovered this week and summarized in issue 511. I've developed a reasonably comprehensive test to expose the issue and I'm hopeful that we can have it fixed by the time GCC 8 releases.  I'm shocked that we didn't notice this gaping hole before now. :O

On the subject of bug fixes, community contributions will become increasingly important going forward.  OpenCoarrays is at a very important crossroads wherein the people who have contributed the most code to the core library are no longer available and all funding for contributing to OpenCoarrays is tied to specific projects. Without community contributions, most bug fixes will be to support those projects. But OpenCoarrays is open-source so users are welcome to contribute code.  And Sourcery Institute is a nonprofit so donations to support bug fixes are also welcome.

Damian

michael siehl

unread,
Apr 17, 2018, 5:47:47 AM4/17/18
to OpenCoarrays
Just some early feedback and only in case someone else gets similar experiences:

For a week, I did struggle with a subtle bug when creating child teams: If the parent of a newly created child team was not the initial team (which has team number -1), then runtime of the program did fail (the program did hang) if the child's set of new teams consisted of more than one new team. (I am using gfortran 8.01 experimental version). After making my test program simpler by outcommenting unnecessary passages of the code the runtime failure vanished. Then, going back to the original sources that previously failed, no further runtime failure occurred and I am not able to reproduce such failures again. Maybe it was a problem with gfortran 8.01 compilation or linking process, I don't now.

Further (minor) limitations I did discover yet:

With current OpenCoarrays 2.0.0 / gfortran 8.0.1, I can't allocate coarrays (of derived type) in child teams yet, but only in a team that comprises all images of  the program as a whole. (Allocating derived type coarrays in child teams that comprise only a subset of images does make the program execution hang; it seems as if the allocate statement tries to synchronize with all images of the program).

Gfortran 8.0.1 does not allow for NAMED change team constructs yet.

Actually, I am highly impressed how well the OpenCoarrays 2.0.0 / gfortran 8.0.1 Fortran 2018 teams implementation does already work.

michael siehl

unread,
Apr 18, 2018, 9:03:49 AM4/18/18
to OpenCoarrays
|For a week, I did struggle with a subtle bug when creating child teams: If the |parent of a newly created child team was not the initial team (which has team |number -1), then runtime of the program did fail (the program did hang) if the |child's |set of new teams consisted of more than one new team. (I am using |gfortran 8.01 experimental version). After making my test program simpler by |outcommenting unnecessary passages of the code the runtime failure vanished. |Then, going |back to the original sources that previously failed, no further |runtime failure occurred and I am not able to reproduce such failures again. |Maybe it was a problem with gfortran 8.01 compilation or linking process, I don't |now.

No bug with OpenCoarrays/gfortran, but my own coding mistake instead: I just figured out that I did use the wrong team-variable with a sync team statement in a child team with the failing codes. After fixing this the codes work just perfectly.
I will start uploading (to GitHub) working example codes applying F18 team features soon.

Zaak Beekman

unread,
Apr 18, 2018, 9:52:44 AM4/18/18
to michael siehl, OpenCoarrays
Hi Michael,

Glad to hear things are working for you! Please file a bug report for any issues you discover at https://github.com/sourceryinstitute/OpenCoarrays/issues/new

Thanks!
--
You received this message because you are subscribed to a topic in the Google Groups "OpenCoarrays" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/opencoarrays/hCTBKRVb4n8/unsubscribe.
To unsubscribe from this group and all its topics, send an email to opencoarrays...@googlegroups.com.
Visit this group at https://groups.google.com/group/opencoarrays.
To view this discussion on the web visit https://groups.google.com/d/msgid/opencoarrays/627d68c0-5c93-4b2b-8801-8c588e2d1925%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

michael siehl

unread,
Apr 18, 2018, 4:07:38 PM4/18/18
to OpenCoarrays

Surprisingly, the OpenCoarrays/gfortran runtime can handle such errors with an appropriate error message:


'Fortran runtime error on image 1: SYNC TEAM called on team different from current or ancestor or descendant'.


This worked with the wrong team_variable taken from another team at the same team-level (non-nested teams). With my first test I did not get the error message because the wrong team_variable was that of an ancestor team.

michael siehl

unread,
May 7, 2018, 5:51:00 AM5/7/18
to OpenCoarrays
I just tried to compile OpenCoarrays 2.0.0 using the latest gfortran (GCC) 8.1 Release and received an internal compiler error message (with error messages in german): I wonder if anyone else did succeed compiling OpenCoarrays with GCC 8.1 yet?

============================================================
   
Building OpenCoarrays configuration: Release
============================================================

-- The C compiler identification is GNU 8.1.0
-- The Fortran compiler identification is GNU 8.1.0
-- Check for working C compiler: /home/ms/GCC-8-1-0_release/bin/gcc
-- Check for working C compiler: /home/ms/GCC-8-1-0_release/bin/gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
.
.
Scanning dependencies of target build_hello_multiverse
[  8%] Generating hello_multiverse
[  8%] Built target build_hello_multiverse
Scanning dependencies of target build_coarray_distributed_transpose
[ 10%] Generating coarray_distributed_transpose
/home/ms/OpenCoarrays-2.0.0/src/tests/integration/dist_transpose/coarray_distributed_transpose.F90:57:0:

             
do i = 2, num_nodes;    variable[i] = variable;      end do
 
interner
Compiler-Fehler: in gfc_dep_resolver, bei fortran/dependency.c:2258
0x6c74b6 gfc_dep_resolver(gfc_ref*, gfc_ref*, gfc_reverse*)
   
../../gcc/fortran/dependency.c:2258
.
.
0x6ce89f gfc_be_parse_file
   
../../gcc/fortran/f95-lang.c:204
Bitte senden Sie einen vollständigen Fehlerbericht auf Englisch ein;
inclusive vorverarbeitetem
Quellcode, wenn es dienlich ist.
Please include the complete backtrace with any bug report.
Weitere Hinweise finden Sie unter »<https://gcc.gnu.org/bugs/>«.
Error: comand:
   
`/home/ms/GCC-8-1-0_release/bin/gfortran -I/home/ms/OpenCoarrays-2.0.0/prerequisites/builds/opencoarrays/2.0.0/include/OpenCoarrays-2.0.0_GNU-8.1.0 -fcoarray=lib -Wl,-rpath -Wl,/usr/local/lib -Wl,--enable-new-dtags -I /usr/local/include -DPREFIX_NAME=_gfortran_caf_ -DGCC_GE_7 -DGCC_GE_8 -DHAVE_MPI -DMPI_WORKING_MODULE -O3 -o /home/ms/OpenCoarrays-2.0.0/prerequisites/builds/opencoarrays/2.0.0/bin/OpenCoarrays-2.0.0-tests/coarray_distributed_transpose /home/ms/OpenCoarrays-2.0.0/src/tests/integration/dist_transpose/coarray_distributed_transpose.F90 /home/ms/OpenCoarrays-2.0.0/prerequisites/builds/opencoarrays/2.0.0/lib/libcaf_mpi.a /usr/local/lib/libmpifort.so /usr/local/lib/libmpi.so`
failed to compile
.
make
[2]: *** [src/tests/integration/dist_transpose/coarray_distributed_transpose] Fehler 1
make
[1]: *** [src/tests/integration/dist_transpose/CMakeFiles/build_coarray_distributed_transpose.dir/all] Fehler 2
make
: *** [all] Fehler 2
2018-05-07 09:23:16 UTC [     info] Cleaning up. Done



Zaak Beekman

unread,
May 7, 2018, 9:26:55 AM5/7/18
to michael siehl, OpenCoarrays
Hi Michael,

Yes, the compiler team had a partial patch that merged before the release and one that merged after :-(. The patch to fix all of this was just approved on the GFortran mailing list. I can try to find if for you if I have time later (unlikely).

Thanks,
Zaak




--
You received this message because you are subscribed to a topic in the Google Groups "OpenCoarrays" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/opencoarrays/hCTBKRVb4n8/unsubscribe.
To unsubscribe from this group and all its topics, send an email to opencoarrays...@googlegroups.com.
Visit this group at https://groups.google.com/group/opencoarrays.

Damian Rouson

unread,
May 7, 2018, 10:28:33 AM5/7/18
to Zaak Beekman, michael siehl, OpenCoarrays
The patch is here:


I’ve tested and GCC 8.1.0 can build OpenCoarrays after the patch is applied.

Best Regards,
_______________________
Damian Rouson, Ph.D., P.E.
President, Sourcery Institute

michael siehl

unread,
May 8, 2018, 5:21:20 AM5/8/18
to OpenCoarrays
Hi Zaak and Damian,
thanks very much. I will try this soon.

Michael
Reply all
Reply to author
Forward
0 new messages