[mpich-devel] (no subject)

Lisandro Dalcin dalcinl at gmail.com
Mon Mar 8 01:15:03 CST 2021


I'm entangled in a discussion with Open MPI folks about whether the struct
datatype constructor should or should not add padding depending on the
oldtypes having or not explicit lb/ub markers.
https://github.com/open-mpi/ompi/issues/8560

Please see the attached example. It basically creates a simple struct
datatype with type signature {unsigned short, unsigned char} in different
ways (which I would expect to be all equivalent).

Running it with latest MPICH 3.4.1

$ for i in `seq 0 5`; do mpicc -DCASE=$i align.c; ./a.out; done
c-sizeof=4  mpi-extent=4
c-sizeof=4  mpi-extent=4
c-sizeof=4  mpi-extent=4
c-sizeof=4  mpi-extent=4
c-sizeof=4  mpi-extent=4
c-sizeof=4  mpi-extent=4

For Open MPI, up to v4.0.x, that was the case, too.
However, with latest Open 4.1.0, now I get:

$ for i in `seq 0 5`; do mpicc -DCASE=$i align.c; ./a.out; done
c-sizeof=4  mpi-extent=4
c-sizeof=4  mpi-extent=4
c-sizeof=4  mpi-extent=4
c-sizeof=4  mpi-extent=4
c-sizeof=4  mpi-extent=3
c-sizeof=4  mpi-extent=2

Open MPI folks claim that their behavior is correct and in line with the
MPI standard. Maybe they have a point regarding the ub/lb definition in
page 105 of MPI-3.1, despite such behavior being quite unintuitive.

On the other hand, MPICH's struct datatype constructor always adjusts the
ub to account for padding. Open MPI obviously don't. I don't see any
wording in the standard where this could be implementation-defined
behavior. If Open MPI folks are right, then MPICH is wrong, or the other
way around. But we cannot have the two major competing implementations
disagree on this.

Regards,


-- 
Lisandro Dalcin
============
Senior Research Scientist
Extreme Computing Research Center (ECRC)
King Abdullah University of Science and Technology (KAUST)
http://ecrc.kaust.edu.sa/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mpich.org/pipermail/devel/attachments/20210308/89e855ab/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: align.c
Type: text/x-csrc
Size: 1714 bytes
Desc: not available
URL: <http://lists.mpich.org/pipermail/devel/attachments/20210308/89e855ab/attachment.bin>


More information about the devel mailing list