Re: low level datatype accessing

Rajeev Thakur (thakur@mcs.anl.gov)
Tue, 22 Oct 1996 13:11:35 -0500

A related question. If a struct is defined as {(int,0), (ub,16)}, and
this datatype is passed to MPI_Get_type_envelope, does it return
count=1 or count=2? I would prefer it to be count=2. Then
MPI_Get_type_contents could also return two blocklens, displacements,
and datatypes, the second one being blocklen=0, displacement=16,
datatype=MPI_UB.

Rajeev

> Date: Tue, 22 Oct 96 13:50:46 EDT
> From: David Taylor <taylor@think.com>
> Sender: owner-mpi-core@mcs.anl.gov
> Precedence: bulk
>
> In Section 7.6.1 Low Level Datatype Accessing, after giving the syntax
> of MPI_Get_type_envelope, it says:
>
> Advice to users. The MPI_UB and MPI_LB markers are not given by
> these calls...
>
> I'm sorry I wasn't at the October meeting, but I'm wondering if someone
> might shed some light on the discussion that led to this advice to
> users.
>
> It was my intent when I proposed this function that the MPI_UB and
> MPI_LB markers *be given by these calls*. That they be considered basic
> types; that they be returned by MPI_Type_contents in sequence as they
> were originally passed to MPI_Type_struct; and that when passed to
> MPI_Type_envelope, it return the constant MPI_BASIC.
>
> When implementing an earlier version of the specification of these
> calls, I made them behave as I described above. To me it seemed the
> natural thing to do and it still feels natural to me. I'm curious as to
> the reason for the advice to users -- to me it makes the functions both
> harder to implement and harder to use.