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