Skip to content

v5.10.x: Fortran REAL16: improve detection and wiring across OMPI/OPAL#13714

Open
bosilca wants to merge 2 commits intoopen-mpi:v5.0.xfrom
bosilca:v5.x/topic/better_support_for_fortran_real16
Open

v5.10.x: Fortran REAL16: improve detection and wiring across OMPI/OPAL#13714
bosilca wants to merge 2 commits intoopen-mpi:v5.0.xfrom
bosilca:v5.x/topic/better_support_for_fortran_real16

Conversation

@bosilca
Copy link
Member

@bosilca bosilca commented Feb 3, 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.

When an OPAL type description is decided at build time (such as float12 and float16), create an OPAL-level #define with their selected size. This allow the rest of the code to simply use this size instead of trying to figure out what is the real size of the type.

#13612 backport for the 5.x (including additional necessary commits)

(cherry picked from commit 941af5e)

@github-actions github-actions bot added this to the v5.0.10 milestone Feb 3, 2026
@bosilca bosilca force-pushed the v5.x/topic/better_support_for_fortran_real16 branch from 415a24b to ea7829d Compare February 3, 2026 17:21
@bosilca bosilca changed the title V5.x/topic/better support for fortran real16 v5.10.x: /topic/better support for fortran real16 Feb 3, 2026
@bosilca bosilca changed the title v5.10.x: /topic/better support for fortran real16 v5.10.x: Fortran REAL16: improve detection and wiring across OMPI/OPAL Feb 3, 2026
hppritcha and others added 2 commits February 3, 2026 12:52
for count args.

This helps with the big count effort.

Related to open-mpi#12226

Related to open-mpi#13152

Signed-off-by: Howard Pritchard <howardp@lanl.gov>
(cherry picked from commit 2fef284)
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.

When an OPAL type description is decided at build time (such as float12
and float16), create an OPAL-level #define with their selected size.
This allow the rest of the code to simply use this size instead of
trying to figure out what is the real size of the type.

Signed-off-by: George Bosilca <gbosilca@nvidia.com>
(cherry picked from commit 941af5e)
@bosilca bosilca force-pushed the v5.x/topic/better_support_for_fortran_real16 branch from ea7829d to 55a05f3 Compare February 3, 2026 17:55
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.

2 participants