(j3.2006) Integration of co-arrays with the intrinsic shift functions

Craig Rasmussen crasmussen
Tue Jul 17 13:00:37 EDT 2007

On Jul 16, 2007, at 5:26 PM, Aleksandar Donev wrote:

> Craig,
>> We should actually
>> integrate co-arrays into the Fortran language and define SUM so that
>> it takes a co-array as an arguments.
> SUM already takes co-arrays as arguments. Co-arrays when referenced  
> on the
> image in question are just like normal arrays. You'll have to come  
> up with
> something more specific than this. Just make sure you don't break  
> generic
> resolution for SUM or break the old serial SUM along the way. Also,  
> SUM is a
> function, and so now we would have an intrinsic function with side- 
> effects
> (synchronization).

Point taken regarding the CO_ prefix.  I assume it is too difficult  
to do SUM given that co-array reference is really a normal array.  I  
assume this means that one can never overload procedures on co-array  
and array arguments.

What is the problem with synchronization occurring in CO_ functions?

>> It is simply amazing to me that
>> there is not a reduction intrinsic on a co-array that returns a
>> scalar of the sum of all of the elements of a co-array.
> If this is deemed useful we can add it to the existing CO_SUM by  
> allowing
> RESULT to be a scalar even if the rank of the co-array argument is  
> larger
> than zero. It sounds reasonable to me. BTW, the basic definition of  
> has been in the draft for a long time...nothing secret about it.

I'm not sure how necessary it is.  I need to do more research.  I  
know that 9% of all MPI calls in the NAS Parallel Benchmarks are  
reductions.  I'll have to look and see if they reduce to a scalar.   
I'm also talking with the Cray authors of "Global-View Abstractions  
for User-Defined Reductions and Scans" on Thursday and Friday.  I'll  
ask them what they think.


More information about the J3 mailing list