On 02/01/2014 12:42 PM, Patrick Boehl wrote:
Hi all,
I have a question on datatypes in openmpi:
Is there an (easy?) way to use __float128 variables with openmpi?
Specifically, functions like
MPI_Allreduce
seem to give weird results with __float128.
Essentially all I found was
http://beige.ucs.indiana.edu/I590/node100.html
where they state
----
MPI_LONG_DOUBLE
This is a quadruple precision, 128-bit long floating point number.
----
But as far as I have seen, MPI_LONG_DOUBLE is only used for long doubles.
The Open MPI Version is 1.6.3 and gcc is 4.7.3 on a x86_64 machine.
It seems unlikely that 10 year old course notes on an unspecified MPI
implementation (hinted to be IBM power3) would deal with specific
details of openmpi on a different architecture.
Where openmpi refers to "portable C types" I would take long double to
be the 80-bit hardware format you would have in a standard build of gcc
for x86_64. You should be able to gain some insight by examining your
openmpi build logs to see if it builds for both __float80 and __float128
(or neither). gfortran has a 128-bit data type (software floating point
real(16), corresponding to __float128); you should be able to see in the
build logs whether that data type was used.