[Mpi-22] Should all constants/types be available in all language bindings?

Jeff Squyres jsquyres at [hidden]
Thu Oct 23 15:13:22 CDT 2008



I notice that OMPI, MPICH2, Intel MPI, and HP MPI all do the following:

  * define Fortran datatypes in mpi.h (e.g., MPI_INTEGER, MPI_DOUBLE)
  * define Fortran datatypes in the C++ MPI namespace (e.g.,  
MPI::INTEGER, MPI::DOUBLE, etc.)
  * do *not* define C datatypes in mpif.h (e.g., MPI_INT, MPI_FLOAT,  
etc.)

Why?  AFAICT, there is no rule about what constants have to appear in  
which language bindings.  But doesn't that implicitly mean that all  
constants are supposed to appear in all language bindings?

(the argument for having MPI_DOUBLE available in C, for example, is  
that a C routine may be invoked to send or receive a message  
containing Fortran data.  Similar arguments exist for why you'd want  
MPI datatypes from other languages available in your language)

This is also related to whether the type MPI::Fint should exist or not.

I just filed a ticket about these issues (https://svn.mpi-forum.org/trac/mpi-forum-web/ticket/56 
) and marked it as "feedback requested", meaning that I need feedback  
from the Forum before a proposal can be made.

What do people think?


-- 
Jeff Squyres
Cisco Systems




More information about the Mpi-22 mailing list