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.


Reply via email to