I miss that part of the MPI 2 errata. I made the corrections, now MPI_LONG_LONG and MPI_LONG_LONG_INT are identical. Therefore one will have MPI_LONG_LONG == MPI_LONG_LONG_INT.

You can use it from the trunk starting from revision 9701. It will be back-ported on the 1.1 and 1.0.3 on the next days.

  Thanks,
    george.

On Apr 24, 2006, at 3:20 PM, Audet, Martin wrote:


Hi,

The current and the previous versions of OpenMPI define MPI_LONG_LONG_INT and MPI_LONG_LONG constants as the address of two distinct global variables (&ompi_mpi_long_long_int and &ompi_mpi_long_long respectively) which makes the following expression true: MPI_LONG_LONG_INT != MPI_LONG_LONG.

After consulting the MPI standards, I noticed the following:

- The optional datatype corresponding to the optional C/C++ "long long" type is MPI_LONG_LONG_INT according to article 3.2.2. "Message data" of the MPI 1.1 standard (www.mpi-forum.org/docs/ mpi-11-html/node32.html) and article 10.2. "Defined Constants for C and Fortran" (www.mpi-forum.org/docs/mpi-11-html/node169.html) of the MPI 1.1 standard.

- The MPI_LONG_LONG optional datatype appeared for the first time in section 9.5.2. "External Data Representation: ``external32''" of the MPI 2.0 standard (www.mpi-forum.org/docs/mpi-20-html/ node200.htm). This paragraph state that with the external32 data representation, this datatype is eight (8) bytes long.

- However the previous statement was recognized as an error in the MPI 2.0 errata document (www.mpi-forum.org/docs/errata-20-2.html). The MPI 2.0 document should have used MPI_LONG_LONG_INT instead of MPI_LONG_LONG. It also state the following:

In addition, the type MPI_LONG_LONG should be added as an optional type; it is a synonym for MPI_LONG_LONG_INT.

This means that the real optional datatype corresponding to the C/C+ + "long long" datatype is MPI_LONG_LONG_INT and that since MPI_LONG_LONG was mentioned by mistake in the MPI 2.0 standard document, the MPI_LONG_LONG predefined datatype constant is also accepted as a synonym to MPI_LONG_LONG_INT.

We should therefore have MPI_LONG_LONG_INT == MPI_LONG_LONG which is not the case in OpenMPI.

So please have a look at this issue.

Note that MPICH and MPICH2 implementations satisfy: MPI_LONG_LONG_INT == MPI_LONG_LONG.

Regrards,


Martin Audet        E: martin DOT audet AT imi cnrc-nrc gc ca
Research Officer    T: 450-641-5034
Industrial Material Institute / National Research Council
75 de Mortagne, Boucherville, QC, J4B 6Y4, Canada

_______________________________________________
users mailing list
us...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/users

"Half of what I say is meaningless; but I say it so that the other half may reach you"
                                  Kahlil Gibran


Reply via email to