(j3.2006) Public Comment J32034

Michael Ingrassia michaeli
Tue Jul 8 20:33:27 EDT 2008

To: J3
From: Michael Ingrassia
Subject: Public Comment J32034
Date: 2008 July 08

Commenter's Subject was "CRITICAL and BLOCK"

I won't be commenting on most of the CO-ARRAY features
because I don't quite yet fully understand them.  But in
most of the different kinds of parallel computing I've done
in the past the need for critical sections arises.

Instead of a CRITICAL construct, I think that CRITICAL
should be a keyword like PURE or RECURSIVE (and such) that
applied to procedure declarations.  Similarly, it should
be an optional keyword on the new BLOCK construct:

block-stmt is [ block-construct-name : ] [ CRITICAL ] BLOCK

The reason is that when I've needed critical sections the
shared data being manipulated is often something that should
be imported (USE) for that particular section alone and not
visible elsewhere.  There are also often additional local
variables needed only temporarily for manipulating the
shared data.  So it's often the case that critical sections
coincide with the need for declarations.  Rather than add
the ability to declare within CRITICAL constructs, it makes
sense to  combine the feature with existing constructs that
already can declare things.

As an aside, except for this possible merging with CRITICAL,
the only real value I see for the BLOCK construct is if some
form of control of host association is forthcoming.


More information about the J3 mailing list