(j3.2006) Fw: (j3-members.2015) Question about DO CONCURRENT

Van Snyder Van.Snyder
Tue Feb 10 16:29:09 EST 2015


On Tue, 2015-02-10 at 21:01 +0000, Bill Long wrote:
> Looking back at old emails, we?ve been discussing this off and on for
> about 10 years, including before F2008 was voted.   Is there a reason
> why the BLOCK option does not work?

If this is a sufficiently frequent problem, could we add a
<specification-part> directly to the DO CONCURRENT construct, with
explicit explanation that the declared entities are private to each
iteration?

Even if we don't do that, should we have at least a note to explain that
objects declared in a BLOCK construct within a DO CONCURRENT construct
are separately private to each iteration?

> Cheers,
> Bill
> 
> 
> On Feb 10, 2015, at 2:24 PM, Daniel C Chen <cdchen at ca.ibm.com> wrote:
> 
> > Shall we allocate some time to talk about it on #206? Do we need a paper to initiate the discussion?
> > 
> > Thanks,
> > 
> > Daniel
> > 
> > XL Fortran Development - IBM Toronto Software Lab
> > Phone: 905-413-3056   
> > Tie: 969-3056   
> > Email: cdchen at ca.ibm.com
> > http://www.ibm.com/software/awdtools/fortran/xlfortran
> > 
> > <graycol.gif>"Malcolm Cohen" ---02/09/2015 19:34:30---I wrote: >    DO CONCURRENT(...)
> > 
> > From:	"Malcolm Cohen" <malcolm at nag-j.co.jp>
> > To:	"fortran standards email list for J3" <j3 at mailman.j3-fortran.org>
> > Date:	02/09/2015 19:34
> > Subject:	Re: (j3.2006) Fw:  (j3-members.2015) Question about DO CONCURRENT
> > Sent by:	j3-bounces at mailman.j3-fortran.org
> > 
> > 
> > 
> > I wrote:
> > >    DO CONCURRENT(...)
> > >      IF (condition) THEN
> > >           X = something
> > >           code using X
> > >      END IF
> > >      code that doesn't use X
> > >   END DO
> > >
> > > you cannot localise X, because if "condition" is true exactly once, the
> > > assignment affects the "outer" X.  OTOH, if condition is true more than once,
> > > you cannot execute in parallel without localising X.  Rather UGH."
> > 
> > Bill Long writes:
> > >A ?solution? should not have the effect of making a currently 
> > >standard-conforming program suddenly not conforming.
> > 
> > This was only introduced in the current standard.  Therefore it is fixable via 
> > interp *IF* we agree that such cases should not be conforming.
> > 
> > Obviously there are various ways of rewriting the code.  "Option 2" works if the 
> > compiler supports both DO CONCURRENT and BLOCK.  Changing the name of X to 
> > something that appears nowhere else in the program unit also works.  Neither of 
> > these are particularly likely to be favoured by many users.
> > 
> > Bill continues:
> > >That would seem to disqualify option 2 below.
> > 
> > Not in itself, however, option 2 below is sadly unworkable anyway...
> > 
> > Daniel Chen suggested:
> > > "A variable that is referenced in an iteration shall either be previously 
> > > defined during that iteration, or shall not be defined or become undefined 
> > > during any other iteration. A variable that is defined or becomes undefined by 
> > > one or more iterations becomes undefined when the loop terminates. "  -- This 
> > > will allow compiler to localised x in the above example.
> > 
> > Unfortunately that would mean the DO CONCURRENT loop cannot achieve anything 
> > other than i/o.  Bathwater meet baby.
> > 
> > I don't see any obvious solution, at least without additional syntax, that is 
> > better than telling the user "don't do that", unsatisfactory though it seems.
> > 
> > Cheers,
> > -- 
> > ................................Malcolm Cohen, Nihon NAG, Tokyo. 
> > 
> > _______________________________________________
> > J3 mailing list
> > J3 at mailman.j3-fortran.org
> > http://mailman.j3-fortran.org/mailman/listinfo/j3
> > 
> > _______________________________________________
> > J3 mailing list
> > J3 at mailman.j3-fortran.org
> > http://mailman.j3-fortran.org/mailman/listinfo/j3
> 
> Bill Long                                                                       longb at cray.com
> Fortran Technical Suport  &                                  voice:  651-605-9024
> Bioinformatics Software Development                     fax:  651-605-9142
> Cray Inc./ Cray Plaza, Suite 210/ 380 Jackson St./ St. Paul, MN 55101
> 
> 
> _______________________________________________
> J3 mailing list
> J3 at mailman.j3-fortran.org
> http://mailman.j3-fortran.org/mailman/listinfo/j3





More information about the J3 mailing list