MPI_Type_resize

Rajeev Thakur (thakur@mcs.anl.gov)
Fri, 18 Apr 1997 11:22:16 -0500

I find that the definition of MPI_Type_resize in the misc. chapter is
not precise enough. Specifics given below, refering to the latest
version of the document released yesterday.

211/5: should be "when used in communication and I/O"

211/7-8: This sentence is not clear. It even appears to contradict the
previous one which says "this affects the behavior of the datatype
when used in the construction of new derived datatypes."

I find all of lines 7-12 confusing.
I understand that MPI_Type_resize sets a new lb and a new ub.
I don't understand what sticky or nonsticky means.

In MPI-1.1, when datatypes (with their own lbs and ubs) are passed to
datatype constructor functions, the result is well defined.
For example, MPI-1.1 pg 71, ln. 19-21, says "An entry of type ub can
be deleted if there is another entry of type ub with higher
displacement; and entry of type lb can be deleted if there is another
entry of type lb with a lower displacement."
Doesn't this rule automatically apply when a "resized" datatype is
passed to datatype constructor functions? Or is it different for
resized dataypes?

An example, in terms of typemaps, which shows exactly what
MPI_Type_resize does and doesn't do, would be very helpful here.

Lastly, with reference to the advice to users (211/14-16),
what is the difference between using this function and using
MPI_Type_struct to set lb and ub? I guess it has something to do with
"sticky."

Rajeev