[pooma-dev] Assigning to internal guards

Richard Guenther rguenth at tat.physik.uni-tuebingen.de
Fri Sep 27 19:57:25 UTC 2002


On Wed, 25 Sep 2002, James Crotinger wrote:

> We considered this and it was on the list of things to work on someday. If I
> remember correctly, we were going to try to figure out if the layouts all
> matched, including the numbers of internal guards, and if so, generate patch
> iterates that performed the operations on the entire domains, not just the
> physical domains. We already figure out if the layouts match at the
> physical-domain basis, I believe, so this didn't sound like a big extension.
> Indeed, the simplest form of this would be to check that everyone has
> exactly the same layout. 
> 
> Of course, in multiple dimensions you generally don't want internal guards
> on anything that you're not going to stencil, so in practice it isn't clear
> how often this practice will really pay off. (Internal guards can consume a
> lot of memory in 3D.)

We encounter this mainly with using temporaries (to do CSE). So f.i.

 temp(I) = a(I) + b(I);
 c(I) = temp(I-1) + temp(I+1);

or when using in-place stencils which need a temporary, too, like

 temp(I) = a(I) + b(I);
 a(I) = temp(I-1) + temp(I+1);


Oh - and this happens quite often so that for our local testing cluster 3d
simulations are unusable without this optimization (maybe a SCore bug with
extreme load, too, though).

Do you have any starting hints where to look at to implement what you
suggested? I.e. where is the layout matching done (f.e. for a multipatch
engine)?

Thanks, Richard.

--
Richard Guenther <richard.guenther at uni-tuebingen.de>
WWW: http://www.tat.physik.uni-tuebingen.de/~rguenth/
The GLAME Project: http://www.glame.de/





More information about the pooma-dev mailing list