-
Notifications
You must be signed in to change notification settings - Fork 864
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
mpi_f08 configure tests failing for NAG #9795
Comments
Can we have the full (compressed)
so we should not focus on just one. I think that should be enough for NAG support to determine if/how to make it work with their compiler. |
Gilles,
I'll get it to you next week when I get back to work.
Note that it's entirely possible NAG *cannot* support ignoring TKR. NAG is
pretty strict to the Fortran Standard, so if they feel they support
TYPE(*), DIMENSION(..) (aka the void* of Fortran) completely, they'd have
no reason to need to ignore TKR.
Is there a reason Open MPI requires supporting ignoring TKR? Or perhaps, is
there a way to tell it to not test for it? The MPI Standard seems to say
that the Fortran 2008 interfaces for MPI procedures are all based on TYPE(*),
DIMENSION(..). And if a compiler supports that, it seems like ignoring TKR
is redundant at that point.
…On Thu, Dec 30, 2021 at 10:51 PM Gilles Gouaillardet < ***@***.***> wrote:
Can we have the full (compressed) config.log?
configure tries different methods to support the ignore_tkr thing
- as-is (e.g. no pragma/directive)
- !GCC$ ATTRIBUTES NO_ARG_CHECK
- !DEC$ ATTRIBUTES NO_ARG_CHECK
- !$PRAGMA IGNORE_TKR
- !DIR$ IGNORE_TKR
- !IBM* IGNORE_TKR
so we should not focus on just one.
The code is in the _OMPI_FORTRAN_CHECK_IGNORE_TKR() and
OMPI_FORTRAN_CHECK_IGNORE_TKR_SUB() subroutines from
config/ompi_fortran_check_ignore_tkr.m4.
I think that should be enough for NAG support to determine if/how to make
it work with their compiler.
If needed, I can post the 6 Fortran snippets that are tried to compile.
—
Reply to this email directly, view it on GitHub
<#9795 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAWYEXTKTMSQ63VVF4USPCDUTUSC3ANCNFSM5LAL3EPA>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
--
Matt Thompson
“The fact is, this is about us identifying what we do best and
finding more ways of doing less of it better” -- Director of Better Anna
Rampton
|
If NAG doesn't support ignoring TKR, then -- at least at the moment -- Open MPI's Open MPI certainly can -- and should -- be extended to properly support
I should also note that, starting earlier this month/before the Christmas break, there is a low-but-nonzero level of ongoing activity to generate the Fortran bindings based on the MPI Forum JSON / Python bindings library. If someone is of the mind to properly support |
Could you please attach the Fortran code that is used to determine if the compiler supports F2008? If NAG can see that it is valid Fortran, then they can investigate a bug in their compiler. The latter would not be a massive surprise as they have just released this new version (7.1) of the compiler. |
@wadudmiah There's not just one test -- there's a whole bunch of them. They are collectively used to determine whether the Fortran compiler supports "enough" F08 for Open MPI's I also explained a bit more in https://www.mail-archive.com/users@lists.open-mpi.org/msg34698.html:
That's why it would be useful to see the It's also possible that since NAG doesn't support "ignore TKR" pragmas, then Open MPI's |
Hello, Thanks for looking into this. The config.log (edit: for OpenMPI 5.0.0rc2) is here . It would be nice, given all the effort involved in putting these new facilities into the Fortran Standard and then implementing them in compilers, to see them actually used in the field. |
I have also logged all the invocations, sources and responses by the NAG Fortran Compiler during configure here. You will find dbgnagind1234.txt text files that contain the compiler options, dbgnagsrc1234_5.f90 text files that contain the sources for the 5th option and dbgnagcap1234.txt text files that capture the compiler's messages. |
Thanks @ThemosTsikas. From your
I've posted #9812 with these 2 fixes, and a tarball created from this branch here: https://aws.open-mpi.org/~jsquyres/unofficial/openmpi-gitclone-pr9812.tar.bz2. Could you give either the PR or the tarball a try? |
Tried again with pr9812 tarball, config.log. |
Thanks! Let me follow up with you on #9812... |
I note the erroneous That is, the program following the interface subroutine foo(buffer, count) ! buffer type(*), intent(in) :: buffer integer, intent(in) :: count end subroutine foo end interface i.e. note the lack of DIMENSION(*) there. The second bug is that FORCE_ASSUMED_SHAPE has the wrong data type for its argument; there is an interface specifying COMPLEX,DIMENSION(:,:) but the procedure is defined with REAL,DIMENSION(:,:). The test program only calls this with COMPLEX arguments. Just changing (on line 69207) "real"->"complex" fixes that. The third bug is that |
@malcom-cohen Thanks - very much looking forward to using these features with NAG compiler! |
I hate to revive a zombit issue, but I was wondering if support for this got into v5.0.X say? (Just because I see it in the labels). We'd love to move to use |
Just to say it, but can confirm that |
Yeah, I'm sorry -- I think we did a bunch of work on it back then, but then ran out of time / resources, and not enough people were asking for Is there renewed interest? There's two possible approaches to fix this:
We've talked about auto-generating for quite a while (both C and the various Fortran bindings), but haven't gotten past the do-a-bunch-of-first-steps phase because this is unfortunately a ton of work. That being said, #12226 is steps in the right direction -- albeit for the MPI-4 embiggening -- but it could open the door for someone who has some time to build upon it for the other bindings. |
The interest is not exactly renewed. It only went away because there was no response to my suggesting fixes for the invalid Fortran OpenMPI was trying to use. Neither I nor my colleague who tried to get it working before understood why OpenMPI should rely on compilers not being as good at error detection as they could be.
So, I just gave up on OpenMPI and used MPICH instead.
If you’d like me to try again with a newer OpenMPI and suggest some fixes again, I can do that.
Cheers,
…--
..............Malcolm Cohen, NAG Oxford/Tokyo.
From: Jeff Squyres ***@***.***>
Sent: Wednesday, January 31, 2024 5:09 AM
To: open-mpi/ompi ***@***.***>
Cc: Malcolm-Cohen ***@***.***>; Comment ***@***.***>
Subject: Re: [open-mpi/ompi] mpi_f08 configure tests failing for NAG (Issue #9795)
Yeah, I'm sorry -- I think we did a bunch of work on it back then, but then ran out of time / resources, and not enough people were asking for mpi_f08 support with the NAG Fortran compiler.
|
Per this thread on the users mailing list, the
configure
tests formpi_f08
are apparently failing incorrectly for the NAG compiler v7.2 in Open MPI v4.1.x:That thread also cites this from config.log, which could be a clue into what is happening:
Finally, a user contacted NAG tech support about this issue, and they replied with this:
I'm labeling this as a v4.1 and v5.0 issue. I don't think it will be worthwhile to back-port relevant fixes back to v4.0.x.
FYI @ThemosTsikas @mathomp4 @wadudmiah @tkacvinsky
The text was updated successfully, but these errors were encountered: