On 12/5/2010 3:22 PM, Gustavo Correa wrote:
I would just rebuild OpenMPI withOUT the compiler flags that change the standard
sizes of "int" and "float" (do a "make cleandist" first!), then recompile your
program,
and see how it goes.
I don't think you are gaining anything by trying to change the standard
"int/integer" and
"real/float" sizdes, and most likely they are inviting trouble, making things
more confusing.
Worst scenario, you will at least be sure that the bug is somewhere else, not
on the mismatch
of basic type sizes.
If you need to pass 8-byte real buffers, use MPI_DOUBLE_PRECISION, or MPI_REAL8
in your (Fortran) MPI calls, and declare them in the Fortran code accordingly
(double precision or real(kind=8)).
If I remember right, there is no 8-byte integer support in the Fortran MPI
bindings,
only in the C bindings, but some OpenMPI expert could clarify this.
Hence, if you are passing 8-byte integers in your MPI calls this may be also
problematic.
My colleagues routinely use 8-byte integers with Fortran, but I agree
it's not done by changing openmpi build parameters. They do use
Fortran compile line options for the application to change the default
integer and real to 64-bit. I wasn't aware of any reluctance to use
MPI_INTEGER8.
--
Tim Prince