> One point that Jim makes is that a datatype containing actual
> addresses is invalid for this function. I do
*NOT* ?
> see any reason for the restriction. Absolute addresses are simply
> offsets from MPI_BOTTOM and so the LB and UB values would tend to be
> large (or in my version, the virtual origin would be a large
> negative number). The true extent would still be (ub-lb) and a temp
> buffer could be allocated and used.
I'm afraid I don't understand how this could work, Dick.
The problem is that once you have absolute addresses in the datatype,
then you can't reasonably allocate a buffer, because no matter what
the data is going to arrive/be sent from the absolute address, so
unless you can allocate your buffer to occupy that same address (which
seems unlikely, since the user presumably already has data there, or
why would they have bound it into the datatype ?), you lose.
In some sense you are correct, this call can produce information about
a datatype with an absolute address in it. The problem is that this is
likely to be highly mis-leading
The fundamental issue here (which isn't really to do with extent at
all), is that the datatype contains two different styles of
information :-
1) semantic content of the data (i.e. it's a float, int, a double, 32
characters, ...) [commonly referred to as the "type signature"].
2) layout and absolute address information.
To make this gathering type of example (or a database example) work
nicely you want to extract the semantic information and ignore the
layout completely.
Really the first type of information is high level and portable, while
the second is grungy low-level stuff related to a particular hardware
architecture and even a specific process (once absolute addresses are
bound in).
For this to work nicely, you need some other functions which have been
sketeched out on previous occasions, but never formalised, something
like
MPI_Natural_datatype( OUT MPI_Datatype , IN MPI_Datatype )
which would return a new datatype which had the same type signature as
the input datatype, but was layed out in the "natural" manner for the
current machine. (i.e. with the correct alignment gaps, but no other gaps).
-- Jim
James Cownie
BBN UK Ltd
Phone : +44 117 9071438
E-Mail: jcownie@bbn.com