On Jul 4, 2006, at 12:51 AM, Manal Helal wrote:

I am trying to compile a code that was done for MPICH2 to openmpi 1.1,
and I am getting a warning:

 warning: passing argument 3 of ‘MPI_Irecv’ makes pointer from integer
without a cast

MPI_Irecv takes the third parameter (the buffer type) as integer
(MPI_Datatype), and I am using constants declared with (#define) and
these used to work fine with me on MPICH2.

Are the MPI APIs interfaces different in open-mpi? if so, where can I
get this reference?

Your problem is the assumption that a datatype is an integer. The standard does not define the type of MPI_DATATYPE. MPICH uses integers, but Open MPI uses pointers to structures. Instead of using your own #defines for datatypes, you need to use the defined MPI datatypes (MPI_INT, MPI_DOUBLE, etc.) or derived datatypes.


Hope this helps,

Brian

--
  Brian Barrett
  Open MPI developer
  http://www.open-mpi.org/



Reply via email to