On Apr 10, 2006, at 4:31 AM, Ralf Wildenhues wrote:
Apologies for a slightly off-topic (Autoconf-related) question.
I believe OpenMPI deals with Fortran implementations where integer
types contain internal padding (i.e., not all bits are used for the
value); at least I read the configure macros this way.
Is padding in C types a practical issue as well? Say, a 'short'
with a
maximum value of 32767 but 32 or 64 bits storage size?
The only system we found that exhibits this was a Cray Y-MP from the
cray-cyber museum (it's accessible and usable), but we don't know of
more modern systems that do this.
Background: there is discussion[1] over a macro to compute such
ranges,
fit also for cross compilation, but we're unsure about its practical
value. I figured the readers here may have more such experience.
With very few exceptions (Fortran LOGICAL, the max value of a Fortran
handle (basically, the lower of INT_MAX and max value of Fortran
INTEGER), we try very hard to avoid looking at values in the user
buffers. Less work that way ;). George would have to say for sure,
but I think we would do the right thing for the Y-MP, as we look at
both size and alignment issues.
If I remember correctly, the oddness of some of those old Cray
machines for integers was nothing compared to their entertaining
floating point units. But I post-date all those machines, so all I
know is based on lore ;).
I think the Cray X1 does some interesting things with datatype
sizing, but nothing like the Y-MP. Not sure about the MTA machine.
OMPI is a long way from supporting either of those machines, so not a
huge deal for us. The other machines from Cray (the XT-3/Red Storm
and XD-1) are Opteron-based machines that basically only do the
standard LP64 setup. So no worries there.
Brian
--
Brian Barrett
Open MPI developer
http://www.open-mpi.org/