-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Hello all,
while debugging some code using grid arrays with DISTRIB=CONSTANT I
noticed that Cactus's IOASCII output code outputs data from all
processes which differs from Carpet's CarpetIOASCII which outputs only
data from a single process.
Carpet (and Cactus) seems to assume (see comments in line 89 in
CarpetIOHDF5/src/Output.cc) that "DISTRIB=CONSTANT arrays
(including grid scalars) are assumed to be the same on all
processors". Certainly many grid arrays with DISTRIB=CONSTANT (eg. the
SphericalSurface radius arrays) behave like this.
PUGH/IOASCII on the other hand seems to not make this assumption. In
PUGH's case according to line 721 of SetupPGV.c
- --8<--
/* A -ve size means constant load per proc */
if (sh[dir] < 0)
{
if (local_size_includes_ghosts)
{
this->nsize[dir] = (nprocs[dir]-2) *
(-sh[dir] - 2*nghosts[dir]) +
2 * (-sh[dir] - nghosts[dir]);
}
else
{
this->nsize[dir] = nprocs[dir] * (-sh[dir]);
}
}
- --8<--
Cactus would even allow ghost points for DISTRIB=CONSTANT arrays. This
seems strange to me (and makes trying to make IOASCII behave the way
CarpetIOASCII does much harder). If the array is not distributed
across processes, why would there be ghost zones? Would it not make
more sense to actively forbid GHOSTSIZE>0 for DISTRIB=CONSTANT grid
arrays? In that case the local_size_includes_ghosts stuff is also not
needed since nghosts would always be zero when sh[dir] < 0 (which PUGH
uses to indicate DISTRIB=CONSTANT arrays).
Yours,
Roland
- --
My email is as private as my paper mail. I therefore support encrypting
and signing email messages. Get my PGP key from http://keys.gnupg.net.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
Comment: Using GnuPG with Icedove - http://www.enigmail.net/
iEYEARECAAYFAlMdHRcACgkQTiFSTN7SboV6pgCdESwd3aRgq1nDxzOZGeYJVGbr
/XMAnjwyRGqAT6Fvb5wv9yO1oMqU+tQc
=uLqz
-----END PGP SIGNATURE-----
_______________________________________________
Users mailing list
[email protected]
http://cactuscode.org/mailman/listinfo/users