Open MPI logo

Open MPI User's Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Open MPI User's mailing list

Subject: Re: [OMPI users] EXTERNAL: Re: MPI_GET beyond 2 GB displacement
From: Jed Brown (jed_at_[hidden])
Date: 2010-07-07 21:27:27

On Wed, 07 Jul 2010 17:34:44 -0600, "Price, Brian M (N-KCI)" <brian.m.price_at_[hidden]> wrote:
> Jed,
> The IBM P5 I'm working on is big endian.

Sorry, that didn't register. The displ argument is MPI_Aint which is 8
bytes (at least on LP64, probably also on LLP64), so your use of kind=8
for that is certainly correct. The count argument is a plain int, I
don't see how your code could be correct if you pass in an 8-byte int
there when it expects a 4-byte int (since the upper 4 bytes would be
used on a big-endian system).

> The test program I'm using is written in Fortran 90 (as stated in my question).

Do you "use mpi" or the F77 interface?

> I imagine this is indeed a library issue, but I still don't understand what I've done wrong here.

I can reproduce this in C on x86-64, even with displ much smaller than
2^31 (e.g. by setting displ_unit=4). Apparently Open MPI multiplies
displ*displ_unit and stuffs the result in an int (somewhere in the
implementation), MPICH2 works correctly for me with large displacements.