public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
From: Jerry DeLisle <jvdelisle@charter.net>
To: Thomas Koenig <tkoenig@netcologne.de>,
	Damian Rouson <damian@sourceryinstitute.org>,
	ams@codesourcery.com
Cc: Janne Blomqvist <blomqvist.janne@gmail.com>,
	Toon Moene <toon@moene.org>,
	gcc patches <gcc-patches@gcc.gnu.org>,
	gfortran <fortran@gcc.gnu.org>
Subject: OpenCoarrays integration with gfortran
Date: Fri, 21 Sep 2018 16:37:00 -0000	[thread overview]
Message-ID: <e3d15932-dd4a-4349-0571-2d42bc07e890@charter.net> (raw)
In-Reply-To: <7bef0368-f709-642b-3bb4-14cb07aaba25@netcologne.de>

My apologies for kidnapping this thread:
On 9/20/18 1:01 PM, Thomas Koenig wrote:
> Hi Damian,
> 
>> On a related note, two Sourcery Institute developers have attempted to 
>> edit
>> the GCC build system to make the downloading and building of OpenCoarrays
>> automatically part of the gfortran build process.  Neither developer
>> succeeded.
> 
> We addressed integrating OpenCoarray into the gcc source tree at the
> recent Gcc summit during the gfortran BoF session.
> 
> Feedback from people working for big Linux distributions was that they
> would prefer to package OpenCoarrays as a separate library.
> (They also mentioned it was quite hard to build.)

I would like to put in my humble 2 cents worth here.

OpenCoarrays was/is intended for a very broad audience, various large 
systems such as Cray, etc. I think this influenced heavily the path of 
its development, which is certainly OK.

It was/is intended to interface libraries such as OpenMPI or MPICH to 
gfortran as well as other Fortran compilers.

The actual library source code is contained mostly in one source file. 
After all the attempts to integrate into the GNU build systems without 
much success my thinking has shifted. Keep in mind that the OpenCoarrays 
implementation is quite dependent on gfortran and in fact has to do 
special things in the build dependent on the version of gcc/gfortran a 
user happens to use.  I dont think this is a good situation.

So I see two realistic strategies.  The first is already talked about a 
lot and is the cleanest approach for gfortran:

1) Focus on distribution packages such as Fedora, Debian, Ubuntu, 
Windows, etc. Building of these packages needs to be automated into the 
distributions. I think mostly this is what is happening and relies on 
the various distribution maintainers to do so.  Their support is greatly 
appreciated and this really is the cleanest approach.

The second option is not discussed as much because it leaves 
OpenCoarrays behind in a sense and requires an editing cycle in two 
places to fix bugs or add features.

2) Take the one source file, edit out all the macros that define 
prefixes to function calls, hard code the gfortran prefixes etc and fork 
it directly into the libgfortran library under GPL with attributions to 
the original developers as appropriate.

Strategy 2 would lock into specific current standard versions of the MPI 
interface and would support less bleeding edge changes.  It would also 
require either OpenMPI or MPICH as a new gfortran dependency for 
building, which not all users may need. So we would need some 
configuration magic to enable or disable this portion of the build. 
Something like --with-MPI-support would do the trick.

Strategy 2 does add burden to gfortran maintainers who are already 
overloaded. But, as the code matures the burden would decrease, 
particularly once TEAMS are finished.

Strategy 2 does have some advantages. For example, eliminating the need 
for separate CAF and CAFRUN scripts which are a wrapper on gfortran. 
The coarray features are part of the Fortran language and gfortran 
should just "handle it" transparently using an environment variable to 
define the number of images at run time. It would also actually 
eliminate the need to manage all of the separate distribution packages. 
So from a global point of view the overall maintanance effort would be 
reduced.

Strategy 2 would enable a set of users who are not focused so much on 
distributions and loading packages, etc etc and those who are dependent 
on getting through bureaucratic administrations who already are loading 
gfortran on systems and would not have to also get another package 
approved.  People would just have to stop thinking about it and just use it.

So I think there are real advantages to Strategy 2 as well as Strategy 1 
and think it should be at least included in discussions. I would even 
suggest there is likely a combination of 1 and 2 that may hit the mark. 
For example, keeping OpenCoarrays as a separate package for bleeding 
edge development and migrating the stable features into libgfortran on a 
less frequent cycle.

As I said, my 2 cents worth.

Regards to all,

Jerry







  parent reply	other threads:[~2018-09-21 16:25 UTC|newest]

Thread overview: 187+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-09-05 11:49 [PATCH 00/25] AMD GCN Port ams
2018-09-05 11:49 ` [PATCH 05/25] Add sorry_at diagnostic function ams
2018-09-05 13:39   ` David Malcolm
2018-09-05 13:41     ` David Malcolm
2018-09-11 10:30       ` Andrew Stubbs
2018-09-05 11:49 ` [PATCH 01/25] Handle vectors that don't fit in an integer ams
2018-09-05 11:54   ` Jakub Jelinek
2018-09-14 16:03   ` Richard Sandiford
2018-11-15 17:20     ` Andrew Stubbs
2018-09-05 11:49 ` [PATCH 04/25] SPECIAL_REGNO_P ams
2018-09-05 12:21   ` Joseph Myers
2018-09-11 22:42   ` Jeff Law
2018-09-12 11:30     ` Andrew Stubbs
2018-09-13 10:03       ` Andrew Stubbs
2018-09-13 14:14         ` Andrew Stubbs
2018-09-13 14:39           ` Paul Koning
2018-09-13 14:49             ` Andrew Stubbs
2018-09-13 14:58               ` Paul Koning
2018-09-13 15:22                 ` Andrew Stubbs
2018-09-13 17:13                   ` Paul Koning
2018-09-17 22:59           ` Jeff Law
2018-10-04 19:13         ` Jeff Law
2018-09-12 15:31   ` Richard Henderson
2018-09-12 16:14     ` Andrew Stubbs
2018-09-05 11:49 ` [PATCH 02/25] Propagate address spaces to builtins ams
2018-09-20 13:09   ` Richard Biener
2018-09-22 19:22   ` Andreas Schwab
2018-09-24 16:53     ` Andrew Stubbs
2018-09-24 17:40       ` Andreas Schwab
2018-09-25 14:27     ` [patch] Fix AArch64 ILP ICE Andrew Stubbs
2018-09-26  8:55       ` Andreas Schwab
2018-09-26 13:39       ` Richard Biener
2018-09-26 16:17         ` Andrew Stubbs
2019-09-03 14:01   ` [PATCH 02/25] Propagate address spaces to builtins Kyrill Tkachov
2019-09-03 15:00     ` Jeff Law
2019-09-04 14:21       ` Kyrill Tkachov
2019-09-04 15:29         ` Kyrill Tkachov
2019-09-03 15:43     ` Andrew Stubbs
2018-09-05 11:50 ` [PATCH 03/25] Improve TARGET_MANGLE_DECL_ASSEMBLER_NAME ams
2018-09-11 22:56   ` Jeff Law
2018-09-12 14:43     ` Richard Biener
2018-09-12 15:07       ` Jeff Law
2018-09-12 15:16         ` Richard Biener
2018-09-12 16:32           ` Andrew Stubbs
2018-09-12 17:39             ` Julian Brown
2018-09-15  6:01               ` Julian Brown
2018-09-19 15:23                 ` Julian Brown
2018-09-20 12:36                   ` Richard Biener
2018-09-05 11:50 ` [PATCH 10/25] Convert BImode vectors ams
2018-09-05 11:56   ` Jakub Jelinek
2018-09-05 12:05   ` Richard Biener
2018-09-05 12:40     ` Andrew Stubbs
2018-09-05 12:44       ` Richard Biener
2018-09-11 14:36         ` Andrew Stubbs
2018-09-12 14:37           ` Richard Biener
2018-09-17  8:51   ` Richard Sandiford
2018-09-05 11:50 ` [PATCH 12/25] Make default_static_chain return NULL in non-static functions ams
2018-09-17 18:55   ` Richard Sandiford
2018-09-28 14:23     ` Andrew Stubbs
2018-09-05 11:50 ` [PATCH 07/25] [pr82089] Don't sign-extend SFV 1 in BImode ams
2018-09-17  8:46   ` Richard Sandiford
2018-09-26 15:52     ` Andrew Stubbs
2018-09-26 16:49       ` Richard Sandiford
2018-09-27 12:20         ` Andrew Stubbs
2018-09-05 11:50 ` [PATCH 08/25] Fix co-array allocation ams
     [not found]   ` <7f5064c3-afc6-b7b5-cade-f03af5b86331@moene.org>
2018-09-05 18:07     ` Janne Blomqvist
2018-09-19 16:38       ` Andrew Stubbs
2018-09-19 22:27         ` Damian Rouson
2018-09-19 22:55           ` Andrew Stubbs
2018-09-20  1:21             ` Damian Rouson
2018-09-20 20:49           ` Thomas Koenig
2018-09-20 20:59             ` Damian Rouson
2018-09-21  7:38             ` Toon Moene
2018-09-23 11:57               ` Janne Blomqvist
2018-09-21 16:37             ` Jerry DeLisle [this message]
2018-09-21 19:37               ` OpenCoarrays integration with gfortran Janne Blomqvist
2018-09-21 19:44               ` Richard Biener
2018-09-21 20:25               ` Damian Rouson
2018-09-22  3:47                 ` Jerry DeLisle
2018-09-23 10:41                   ` Toon Moene
2018-09-23 18:03                     ` Bernhard Reutner-Fischer
2018-09-24 11:14                     ` Alastair McKinstry
2018-09-27 12:51                       ` Richard Biener
2018-09-20 15:59         ` [PATCH 08/25] Fix co-array allocation Janne Blomqvist
2018-09-20 16:37           ` Andrew Stubbs
2018-09-05 11:50 ` [PATCH 06/25] Remove constant vec_select restriction ams
2018-09-11 22:44   ` Jeff Law
2018-09-05 11:50 ` [PATCH 09/25] Elide repeated RTL elements ams
2018-09-11 22:46   ` Jeff Law
2018-09-12  8:47     ` Andrew Stubbs
2018-09-12 15:14       ` Jeff Law
2018-09-19 17:25     ` Andrew Stubbs
2018-09-20 11:42       ` Andrew Stubbs
2018-09-26 16:23         ` Andrew Stubbs
2018-10-04 18:24         ` Jeff Law
2018-10-11 14:28           ` Andrew Stubbs
2018-09-05 11:51 ` [PATCH 16/25] Fix IRA ICE ams
2018-09-17  9:36   ` Richard Sandiford
2018-09-18 22:00     ` Andrew Stubbs
2018-09-20 12:47       ` Richard Sandiford
2018-09-20 13:36         ` Andrew Stubbs
2018-09-05 11:51 ` [PATCH 18/25] Fix interleaving of Fortran stop messages ams
     [not found]   ` <994a9ec6-2494-9a83-cc84-bd8a551142c5@moene.org>
2018-09-05 18:11     ` Janne Blomqvist
2018-09-12 13:55       ` Andrew Stubbs
2018-09-05 11:51 ` [PATCH 11/25] Simplify vec_merge according to the mask ams
2018-09-17  9:08   ` Richard Sandiford
2018-09-20 15:44     ` Andrew Stubbs
2018-09-26 16:26       ` Andrew Stubbs
2018-09-26 16:50       ` Richard Sandiford
2018-09-26 17:06         ` Andrew Stubbs
2018-09-27  7:28           ` Richard Sandiford
2018-09-27 14:13             ` Andrew Stubbs
2018-09-27 16:28               ` Richard Sandiford
2018-09-27 21:14                 ` Andrew Stubbs
2018-09-28  8:42                   ` Richard Sandiford
2018-09-28 13:50                     ` Andrew Stubbs
2019-02-22  3:40                       ` H.J. Lu
2018-09-05 11:51 ` [PATCH 15/25] Don't double-count early-clobber matches ams
2018-09-17  9:22   ` Richard Sandiford
2018-09-27 22:54     ` Andrew Stubbs
2018-10-04 22:43       ` Richard Sandiford
2018-10-22 15:36         ` Andrew Stubbs
2018-09-05 11:51 ` [PATCH 14/25] Disable inefficient vectorization of elementwise loads/stores ams
2018-09-17  9:16   ` Richard Sandiford
2018-09-17  9:54     ` Andrew Stubbs
2018-09-17 12:40       ` Richard Sandiford
2018-09-17 12:46         ` Andrew Stubbs
2018-09-20 13:01           ` Richard Biener
2018-09-20 13:51             ` Richard Sandiford
2018-09-20 14:14               ` Richard Biener
2018-09-20 14:22                 ` Richard Sandiford
2018-09-05 11:51 ` [PATCH 17/25] Fix Fortran STOP ams
     [not found]   ` <c0630914-1252-1391-9bf9-f03434d46f5a@moene.org>
2018-09-05 18:09     ` Janne Blomqvist
2018-09-12 13:56       ` Andrew Stubbs
2018-09-05 11:51 ` [PATCH 13/25] Create TARGET_DISABLE_CURRENT_VECTOR_SIZE ams
2018-09-17 19:31   ` Richard Sandiford
2018-09-18  9:02     ` Andrew Stubbs
2018-09-18 11:30       ` Richard Sandiford
2018-09-18 20:27         ` Andrew Stubbs
2018-09-19 13:46           ` Richard Biener
2018-09-28 12:48             ` Andrew Stubbs
2018-10-01  8:05               ` Richard Biener
2018-09-05 11:52 ` [PATCH 23/25] Testsuite: GCN is always PIE ams
2018-09-14 16:39   ` Jeff Law
2018-09-05 11:52 ` [PATCH 19/25] GCN libgfortran ams
     [not found]   ` <41281e27-ad85-e50c-8fed-6f4f6f18289c@moene.org>
2018-09-05 18:14     ` Janne Blomqvist
2018-09-06 12:37       ` Andrew Stubbs
2018-09-11 22:47   ` Jeff Law
2018-09-05 11:52 ` [PATCH 20/25] GCN libgcc ams
2018-09-05 12:32   ` Joseph Myers
2018-11-09 18:49   ` Jeff Law
2018-11-12 12:01     ` Andrew Stubbs
2018-09-05 11:52 ` [PATCH 22/25] Add dg-require-effective-target exceptions ams
2018-09-17  9:40   ` Richard Sandiford
2018-09-17 17:53   ` Mike Stump
2018-09-20 16:10     ` Andrew Stubbs
2018-09-05 11:52 ` [PATCH 24/25] Ignore LLVM's blank lines ams
2018-09-14 16:19   ` Jeff Law
2020-03-23 15:29     ` Thomas Schwinge
2020-03-24 21:05       ` Thomas Schwinge
2018-09-05 11:53 ` [PATCH 25/25] Port testsuite to GCN ams
2018-09-05 13:40 ` [PATCH 21/25] GCN Back-end (part 1/2) Andrew Stubbs
2018-11-09 19:11   ` Jeff Law
2018-11-12 12:13     ` Andrew Stubbs
2018-09-05 13:43 ` [PATCH 21/25] GCN Back-end (part 2/2) Andrew Stubbs
2018-09-05 14:22   ` Joseph Myers
2018-09-05 14:35     ` Andrew Stubbs
2018-09-05 14:44       ` Joseph Myers
2018-09-11 16:25         ` Andrew Stubbs
2018-09-11 16:41           ` Joseph Myers
2018-09-12 13:42     ` Andrew Stubbs
2018-09-12 15:32       ` Joseph Myers
2018-09-12 16:46         ` Andrew Stubbs
2018-09-12 16:50           ` Joseph Myers
2018-11-09 19:40   ` Jeff Law
2018-11-12 12:53     ` Andrew Stubbs
2018-11-12 17:20       ` Segher Boessenkool
2018-11-12 17:52         ` Andrew Stubbs
2018-11-12 18:33           ` Segher Boessenkool
2018-11-12 18:55           ` Jeff Law
2018-11-13 10:23             ` Andrew Stubbs
2018-11-13 10:33               ` Segher Boessenkool
2018-11-16 16:10             ` Segher Boessenkool
2018-11-17 14:07               ` Segher Boessenkool
2018-11-14 22:31       ` Jeff Law
2018-11-15  9:55         ` Andrew Stubbs
2018-11-16 13:33           ` Andrew Stubbs

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=e3d15932-dd4a-4349-0571-2d42bc07e890@charter.net \
    --to=jvdelisle@charter.net \
    --cc=ams@codesourcery.com \
    --cc=blomqvist.janne@gmail.com \
    --cc=damian@sourceryinstitute.org \
    --cc=fortran@gcc.gnu.org \
    --cc=gcc-patches@gcc.gnu.org \
    --cc=tkoenig@netcologne.de \
    --cc=toon@moene.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).