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