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/