[Users] Hyperslab Error
Garrison, David
Garrison at uhcl.edu
Thu Jul 28 02:15:14 CDT 2011
Hello,
I am trying to use Generic Hyperslabbing to change an initial array from the normal Cactus MPI distribution to one where all the GF points can exist in one loop on one processor. For example if phi_temp is an N^3 array and phi_in is an (N-2)^3 array,
sizex = cctk_gsh[0];
sizey = cctk_gsh[1];
sizez = cctk_gsh[2];
fsizex = cctk_gsh[0]-2;
fsizey = cctk_gsh[1]-2;
fsizez = cctk_gsh[2]-2;
struct xferinfo info1[3];
for (d=0; d<3; ++d) {
/* Source array: Cactus layout */
info1[d].src.gsh = cctk_gsh[d];
info1[d].src.lbnd = cctk_lbnd[d];
info1[d].src.lsh = cctk_lsh[d];
info1[d].src.lbbox = cctk_bbox[2*d];
info1[d].src.ubbox = cctk_bbox[2*d+1];
info1[d].src.nghostzones = cctk_nghostzones[d];
/* Destination array: New layout */
info1[d].dst.gsh = cctk_gsh[d];
info1[d].dst.lbnd = 0;
info1[d].dst.lsh = cctk_gsh[d];
info1[d].dst.lbbox = cctk_bbox[2*d];
info1[d].dst.ubbox = cctk_bbox[2*d+1];
info1[d].dst.nghostzones = cctk_nghostzones[d];
/* Source slab: whole array */
info1[d].src.off = 0;
info1[d].src.len = cctk_gsh[d];
info1[d].src.str = 1;
/* Destination slab: whole array */
info1[d].dst.off = 0;
info1[d].dst.len = cctk_gsh[d];
info1[d].dst.str = 1;
/* No transformation */
info1[d].xpose = d;
info1[d].flip = 0;
}
ierr = Slab_Transfer
(cctkGH, cctk_dim, info1, -1,
CCTK_VARIABLE_REAL, phi_temp,
CCTK_VARIABLE_REAL, phi_temp);
assert (! ierr);
phi_in = malloc(sizeof(CCTK_REAL)*fsizex*fsizey*fsizez);
for(k = 1; k <= fsizez; k++)
{
for(j = 1; j <= fsizey; j++)
{
for(i = 1; i <= fsizex; i++)
{
phi_in[(i-1) + (j-1)*fsizex + (k-1)*fsizex*fsizey] = phi_temp[i + j*sizex + k*sizex*sizey];
}
}
}
Running the code as is causes segmentation fault and some of the output GFs are distorted. If I comment out the Slab_Transfer I don't get a Segmentation fault. If I run the code with a single processor, there is no segmentation fault and no distortion in the GFs. Can you see what I'm doing wrong with the hyperslabbing? There must be a better way to get the transfer to work while avoiding the errors.
-DG
--
David Garrison, Ph.D.
Associate Professor and Chair of Physics
University of Houston-Clear Lake
Bayou 3531
Houston, TX 77058
Tel: 281-283-3796
Fax: 281-283-3709
http://sce.uhcl.edu/garrison
For more information about the UHCL Physics Program go to
http://www.uhcl.edu/physics or sign up for UHCL newsletters at
https://ecommunications.houston.edu/uhcl/join.html
"If we knew what it was we were doing, it would not be called research,
would it?" ‹ Albert Einstein.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.einsteintoolkit.org/pipermail/users/attachments/20110728/c3a7476f/attachment.html
More information about the Users
mailing list