[Patch, Fortran, 4.7] PR 18918 - Add initial support for a coarray communication library

Tobias Burnus burnus@net-b.de
Fri Mar 25 13:41:00 GMT 2011


Dear Walter, dear Damian, dear all,

W Spector wrote:
> Would it make sense to offer a third option - using shared memory 
> parallelism?

Indeed, such an option is planned. However, as coarrays's memory model 
fits rather MPI's and as it seemed that an (initial) library version 
would lead to a cleaner interface, the first version will be a library 
based on, where the first implementation will be MPI. (Potentially, 
there could be several library, implementing the coarray communication 
using also other communication libraries than MPI.)

(I might be mistaken, but I think all non-coarray variables would be 
thread private ("__thread"), only coarrays would be shared arrays. One 
than has careful to think of how to make sure the program works 
correctly and all required variables are indeed thread private.)

Rouson, Damian wrote
> If I understand this correctly (and if you all don't mind a user
> contributing to the discussion), this would be a big plus.  What I like
> the most about Fortran 2008 coarrays (besides the elegant syntax) is the
> implementation-independence.  What the standard refers to as an image
> could presumably map to an OpenMP thread on one platform, a MPI process on
> another, or some mix thereof.
>
> On related note, what will be even better will be if a future standard
> allows the programmer to determine the mix in order to map processes to
> nodes on a distributed platform and threads to cores within the node.

While I think that it is useful to think about it, I think it gets 
difficult to explicitly make this distinction as Fortran user. If one 
uses MPI, the MPI implementation usually uses shared memory if possibly 
and other means (TCP, Infiniband, etc.) if not.

For the current proposal to extend Fortran 2008's coarray support, see 
an early draft for a TR at 
http://j3-fortran.org/doc/meeting/192/10-166.pdf - if you have 
comments/additional suggestions, get in touch with J3.

Tobias



More information about the Fortran mailing list