Open MPI logo

Open MPI User's Mailing List Archives

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

From: Brian Barrett (brbarret_at_[hidden])
Date: 2006-07-04 10:02:42


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/