One piece of relevant text in MPI 2.0 is in section 4.12.6 (in MPI-2.0) says that "All predefined datatypes can be used in datatype constructors in any language."  However, the example uses MPI_Type_f2c ton convert the Fortran handle to the C version before passing it into the MPI_Type_create_struct routine, so this text could be interpreted as allowing the use of those datatypes through the handle conversion mechanism without requiring them to be defined in each languages header file.  Presumably the requirement is that they be predefined with the value that you'd get from the handle conversion function?

Bill

On Jul 16, 2008, at 8:18 AM, Hubert Ritzdorf wrote:

Hi,

when I remember correctly, it was decided to provide the C MPI datatypes
in Fortran since
the Fortran datatypes are supported in C and C++.

Hubert

Jeff Squyres wrote:
I will file a proposal about this if there is a problem, but I wanted
to ask the group before I did so.  In the changelog for MPI-2.1:

2. Section 3.2.2 on page 27, Section 16.1.6 on page 453, and Annex A.1
on page 491.
MPI_LONG_LONG_INT, MPI_LONG_LONG (as synonym), MPI_UNSIGNED_LONG_LONG,
MPI_SIGNED_CHAR, and MPI_WCHAR are moved from optional to official and they
are therefore defined for all three language bindings.

Note that it says that these C datatype names must be in all three
language bindings.

Are C MPI datatypes supposed to be available in Fortran?  I looked in
mpif.h for Open MPI, MPICH2, HP MPI, and Intel MPI, and I didn't see C
MPI datatypes in there (e.g., MPI_INT and MPI_FLOAT).

So:

- is there language somewhere in MPI that says that C datatypes are
not supposed to be in mpif.h? (and therefore the MPI-2.1 changelog is
wrong)

or

- are all 4 of the above MPI's wrong for not including the C datatypes
in mpif.h?

--Jeff Squyres
Cisco Systems


_______________________________________________
mpi-22 mailing list

<smime.p7s><ATT00001.txt>

William Gropp
Paul and Cynthia Saylor Professor of Computer Science
University of Illinois Urbana-Champaign