[mpich-devel] datatype accessors with uncommited datatypes

Lisandro Dalcin dalcinl at gmail.com
Thu Dec 27 12:48:18 CST 2012


On 27 December 2012 15:36, Jeff Hammond <jhammond at alcf.anl.gov> wrote:
> This is what the MPI standard says:
>
> 4.1.9 Commit and Free
> A datatype object has to be committed before it can be used in a
> communication. As an argument in datatype constructors, uncommitted
> and also committed datatypes can be used. There is no need to commit
> basic datatypes. They are “pre-committed.”
>
> There is some ambiguity since the functions to which you refer lie
> outside of the union of "communication" and "datatype constructors".
> However, since MPI_TYPE_SIZE(_X) determine "the total size of the data
> in a message that would be created with this datatype", I wonder if
> there is an implementation wherein the "compilation" that can
> potentially occur during MPI_TYPE_COMMIT is required in order to
> satisfy MPI_TYPE_SIZE(_X).
>

I would argue that a "datatype constructor" is a much more complex
operation that a "datatype accessor", so if construction should work
with uncommited, I would expect accessors to work, too. Moreover, the
current implementation of MPI_Type_size() seems to agree with my POV.

> Is it necessary for mpi4py to have the behavior of the older version
> of MPICH to function properly or can you work around this for now?
>

It is not a problem of mpi4py, actually, buy user's code out there
that could potentially break (BTW, this issue also applies to C and
Fortran codes).


--
Lisandro Dalcin
---------------
CIMEC (INTEC/CONICET-UNL)
Predio CONICET-Santa Fe
Colectora RN 168 Km 472, Paraje El Pozo
3000 Santa Fe, Argentina
Tel: +54-342-4511594 (ext 1011)
Tel/Fax: +54-342-4511169


More information about the devel mailing list