[Developers] Symmetry thorns

Erik Schnetter schnetter at aei.mpg.de
Fri Aug 13 13:11:03 CDT 2004


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On Friday 13 August 2004 17:48, Erik Schnetter wrote:
> As to the dependence on Slab that you don't want in Cactus, I'll have
> a look at the symmetry thorns and see just what is missing, and how
> much work it would be to change the symmetry thorns.

The rotating symmetry thorns use TAT/Slab to communicate all necessary 
symmetry boundaries between the processors at once.  Each processor 
needs a different piece of the boundary, and this kind of hyperslabbing 
is not possible with the standard Cactus hyperslabbing interface.  The 
standard interface requires that the same hyperslab is communicated 
between all processors.

I see several possibilities:

(1) Serialise the communication.  Loop over all processors that own a 
piece of the symmetry boundary, and transfer this hyperslab with a 
GetHyperslab call.  Disadvantage: On N^3 processors, this will require 
O(N^2) serial communication calls.

(2) Communicate more than what is needed.  Send all of the symmetry 
boundary to all processors.  Disadvantage: On N^3 processors, this will 
transmit O(N^5) (five!) times as much data as is required.

(3) Master and slave approach.  Collect the whole symmetry boundary on 
the root processor, and have the root processor distribute chunks of 
this to the processors that need the data.  Disadvantage: (a) the 
communication happens in two serial steps, and (b) the second step 
requires direct MPI calls, because there is no Cactus API for this.

(4) Update the Cactus hyperslabbing interface as well as the PUGH and 
Carpet implementations so that they can handle the case where different 
processors require different slabs.

- -erik

- -- 
Erik Schnetter <schnetter at aei.mpg.de>   http://www.aei.mpg.de/~eschnett/

My email is as private as my paper mail.  I therefore support encrypting
and signing email messages.  Get my PGP key from www.keyserver.net.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (GNU/Linux)

iD8DBQFBHQQ3m3uiSwno3f0RAhDCAJ44zIsmKOd7bdsUvv2eUYNX+K7xbwCgyqhO
ErGUmMVpsqwcIpXvGzHhAkY=
=QVH5
-----END PGP SIGNATURE-----





More information about the Developers mailing list