Jed,

The IBM P5 I'm working on is big endian.

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

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

Can anyone tell me how I should be building my OpenMPI libraries and my test 
program so that this test would work correctly?

Thanks.

-----Original Message-----
From: Jed Brown [mailto:five...@gmail.com] On Behalf Of Jed Brown
Sent: Wednesday, July 07, 2010 3:08 PM
To: Price, Brian M (N-KCI); Open MPI Users
Subject: Re: [OMPI users] EXTERNAL: Re: MPI_GET beyond 2 GB displacement

On Wed, 07 Jul 2010 15:51:41 -0600, "Price, Brian M (N-KCI)" 
<brian.m.pr...@lmco.com> wrote:
> Jeff,
> 
> I understand what you've said about 32-bit signed INTs, but in my program, 
> the displacement variable that I use for the MPI_GET call is a 64-bit INT 
> (KIND = 8).

The MPI Fortran bindings expect a standard int, your program is only working 
because your system is little endian so the first 4 bytes are the low bytes 
(correct for numbers less than 2^31), it would be completely broken on a big 
endian system.  This is a library issue, you can't fix it by using different 
sized ints in your program and you would see compiler errors due to the type 
mismatch if you were using Fortran 90 (which is capable of some type checking).

Jed

Reply via email to