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/


Reply via email to