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