Skip to content

configure: be more verbose about fort TS 29113 #13239

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

hppritcha
Copy link
Member

It turns out that those working with the fortran bindings are becoming increasingly aware of the need to know whether or not Open MPI fortran bindings are being built by a fortran compiler that is 2018 compliant or at least supports 2008 plus TS 29113.

with this patch, when using a fortran compiler that supports TS 29113 features the configury summary will be:

Open MPI configuration:

Version: 5.1.0a1
MPI Standard Version: 3.1
Build MPI C bindings: yes
Build MPI Fortran bindings: mpif.h, use mpi, use mpi_f08(TS 29113)
Build MPI Java bindings (experimental): no
Build Open SHMEM support: false (no spml)
Debug build: no
Platform file: (none)

If the compiler doesn't support TS 29113 features then the (TS 29113) will not be present.

It turns out that those working with the fortran bindings
are becoming increasingly aware of the need to know whether
or not Open MPI fortran bindings are being built by a fortran
compiler that is 2018 compliant or at least supports 2008
plus TS 29113.

with this patch, when using a fortran compiler that supports
TS 29113 features the configury summary will be:

Open MPI configuration:
-----------------------
Version: 5.1.0a1
MPI Standard Version: 3.1
Build MPI C bindings: yes
Build MPI Fortran bindings: mpif.h, use mpi, use mpi_f08(TS 29113)
Build MPI Java bindings (experimental): no
Build Open SHMEM support: false (no spml)
Debug build: no
Platform file: (none)

If the compiler doesn't support TS 29113 features then the (TS 29113)
will not be present.

Signed-off-by: Howard Pritchard <[email protected]>
@hppritcha hppritcha requested a review from jsquyres May 6, 2025 20:07
@@ -49,7 +49,11 @@ EOF
elif test $OMPI_BUILD_FORTRAN_BINDINGS = $OMPI_FORTRAN_USEMPI_BINDINGS ; then
echo "Build MPI Fortran bindings: mpif.h, use mpi" >&AS_MESSAGE_FD
elif test $OMPI_BUILD_FORTRAN_BINDINGS = $OMPI_FORTRAN_USEMPIF08_BINDINGS ; then
echo "Build MPI Fortran bindings: mpif.h, use mpi, use mpi_f08" >&AS_MESSAGE_FD
if test $OMPI_FORTRAN_HAVE_TS -eq 1; then
echo "Build MPI Fortran bindings: mpif.h, use mpi, use mpi_f08(TS 29113)" >&AS_MESSAGE_FD
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
echo "Build MPI Fortran bindings: mpif.h, use mpi, use mpi_f08(TS 29113)" >&AS_MESSAGE_FD
echo "Build MPI Fortran bindings: mpif.h, use mpi, use mpi_f08 (including TS 29113 support)" >&AS_MESSAGE_FD

if test $OMPI_FORTRAN_HAVE_TS -eq 1; then
echo "Build MPI Fortran bindings: mpif.h, use mpi, use mpi_f08(TS 29113)" >&AS_MESSAGE_FD
else
echo "Build MPI Fortran bindings: mpif.h, use mpi, use mpi_f08" >&AS_MESSAGE_FD
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
echo "Build MPI Fortran bindings: mpif.h, use mpi, use mpi_f08" >&AS_MESSAGE_FD
echo "Build MPI Fortran bindings: mpif.h, use mpi, use mpi_f08 (NOT including TS 29113 support)" >&AS_MESSAGE_FD

@jsquyres
Copy link
Member

jsquyres commented May 7, 2025

Do we need a corresponding change in ompi_info output?

@hppritcha
Copy link
Member Author

oh good point about ompi_info. I will add a similar change there.

@hppritcha
Copy link
Member Author

Hmm. well actually ompi_info has a fairly complete area for verbiage about fortran support although i'm sceptical about what its saying about the Intel One API fortran compiler:

Fort mpi_f08 compliance: The mpi_f08 module is available, but due to limitations in the ifx compiler and/or Open MPI, does not support the following: array subsections, direct passthru (where possible) to underlying Open MPI's C functionality

I need to investigate this subarray test in the configury.
Given the amount of verbiage already in the ompi_info output i'm not sure it needs to be supplemented with anything here. The TS 23119 support is implicit in the logic checks starting around https://github.com/open-mpi/ompi/blob/main/ompi/tools/ompi_info/param.c#L175

@hppritcha
Copy link
Member Author

i think the part of ompi_info having to do with some of the mpi_f08 features is stale. and the declaration of MPI_SUBARRAYS_SUPPORTED is hardwired to false in mpif-config.h.in. I think changes to make ompi_info accurate will take more work. I'd rather do that in a subsequent PR. So even when the configury code in ompi_setup_mpi_fortran.m4 finds that OMPI_MPI_SUBARRAYS_SUPPORTED can be set to true, its currently being ignored.

Signed-off-by: Howard Pritchard <[email protected]>
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