MPI is a standard. All MPI libraries, including MPICH, Open MPI and
LAM, follow this standard. There is no difference between their API.
That's one of the most interesting features of MPI, providing a
standard interface for message passing on all architectures.
Now your warning is real, but it does not have anything to do with a
non respect of the MPI standard by the MPI library. It happens
because of non respect of the MPI standard by the user. In fact, you
can read all the MPI standard and you will see that nowhere inside it
is stated that an MPI_Datatype is an integer. At least not for C.
Now, it happens that MPICH define the MPI_Datatype as being an
integer. But it is not the case with Open MPI nor LAM. Your constants
have to be of the type MPI_Datatype not integers in order to be fully
compliant with the MPI standard and therefore with all available MPI
On Jul 4, 2006, at 2: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?
> I am afraid I might be wrong about something else,
> thanks again,
> users mailing list