Should all constants/types be available in all language bindings?
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
participants (1)
-
unknown@example.com