From: Paul H. Hargrove (PHHargrove_at_lbl_dot_gov)
Date: Sun Apr 11 2010 - 15:30:45 PDT
Reinhold Bader wrote:
[snip]
> Note that if I replace the declaration
> shared [*] int a[THREADS][3];
> by
> shared [3] int a[THREADS][3];
> (which I believe should be equivalent in this situation)
> the problem seems not to appear (neither the changing values nor the
> incorrect affinities).
>   
[snip]
Yes, I find that the replacement declaration makes all three compilers 
agree in all respects.
I will include that in the bug report.
However, my lack of confidence in understanding multi-dimensional arrays 
in UPC leaves me unable to agree or disagree with your believe that 
'[*]' and '[3]' are equivalent.  Based on the three compilers it looks 
as if Cray and GCCUPC have different layouts in the '[*]' case (and 
Berkeley UPC appears to have one that may overlap itself in some way!).
Is anybody reading this who can state with any certainty the correct 
layout for the following:
    shared [*] int a[THREADS][3];
In particular is it, or is it NOT, equivalent to
    shared [3] int a[THREADS][3];
-Paul
-- 
Paul H. Hargrove                          PHHargrove_at_lbl_dot_gov
Future Technologies Group                 Tel: +1-510-495-2352
HPC Research Department                   Fax: +1-510-486-6900
Lawrence Berkeley National Laboratory