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