CarpetIOASCCI transfers too much data for output

Issue #1626 new
Roland Haas created an issue

CarpetIOASCII currently transfers all patches from all processes to the io process which then discard everything that does not need to be output for 1d or 2d output. Technical details:

The commstate loop in line 660 of ioascii.cc uses data_ext to call copy_from() on tmpdatas which were also created using data_ext. data_ext is set to light_boxes[...].exterior while the actual output extent is given by ext as returned by GetOutputBBox.

If I run the attached parfile with "mpirun -n 4 cactus_sim ioascii.par", then I get output from only components 0 and 2 but not 1 and 3 in the x.x.asc file. However, adding some poisoning and debug output to ioascii.cc I seem to receive all data from all components (patch attached as well) even those of which no data makes it into the output file.

Keyword: CarpetIOASCII

Comments (2)

  1. Roland Haas reporter

    The same issue in IODF5 was addressed in git hash ebba415e "CarpetIOHDF5: Optimize lower-dimensional output -- only transfer necessary data to the I/O process" of carpet and most likely (given that the two thorns started out as being somewhat similar) could be applied here as well.

  2. Log in to comment