Skip to content

Conversation

@bosilca
Copy link
Member

@bosilca bosilca commented Jan 6, 2026

Probe REAL*16 against _Float128 first, then __float128, and finally _Quad (Intel) to find a C type with matching bit representation. Ensure OPAL’s FLOAT12/FLOAT16 constructors are always available and map OMPI/MPI REAL16 based on architecture/language specifics.

Wire FLOAT128 types through copy/pack/unpack paths and hook REAL16 into the base MPI_Op table. This enables software-only reductions for REAL16 for as long as the Fortran type has a C equivalent.

Fixes #13564

@bosilca bosilca force-pushed the topic/better_support_for_fortran_real16 branch from 9d83217 to 846dfb9 Compare January 6, 2026 05:00
Copy link
Contributor

@devreal devreal left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Minor nit-pick. Can we document in the code why we pick the order the way it is?

@bosilca bosilca force-pushed the topic/better_support_for_fortran_real16 branch 2 times, most recently from 0148404 to 58cd5a4 Compare January 6, 2026 16:39
@bosilca
Copy link
Member Author

bosilca commented Jan 6, 2026

Minor nit-pick. Can we document in the code why we pick the order the way it is?

Which order ? During configure or in the header files ?

@bosilca bosilca self-assigned this Jan 6, 2026
@jsquyres
Copy link
Member

@bosilca Getting an mpi4py floating point exception in CI. Can you investigate?

@hppritcha
Copy link
Member

this doesn't fix the issue reported in issue #13564

Check first for _Float128 then __float128 and then for _Quad type (Intel
compiler) and pick the one that matches the Fortran REAL16 type. This
commit adds support for pack, unpack as well as MPI_Op.

As of today, no hardware support (AVX* or SVE) exists for the 128 bits floating
point, so the only valid MPI_Op for this type is the base op (provided
in software by most recent compilers).

Signed-off-by: George Bosilca <[email protected]>
@bosilca bosilca force-pushed the topic/better_support_for_fortran_real16 branch from a58d6a0 to 151fd6d Compare January 21, 2026 23:31
@bosilca bosilca changed the title Better support for Fortran REAL16 types Fortran REAL16: improve detection and wiring across OMPI/OPAL Jan 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

quad precision (128 bit) reductions return bad results

4 participants