-
Notifications
You must be signed in to change notification settings - Fork 868
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
PGI F08 symbol Issue on POWER #3075
Comments
@jjhursey and I chatted about this issue this afternoon; he got a bit of an education on Fortran. 😄 We narrowed the issue down a bit (the
@jjhursey's next step is to talk to the PGI compiler team. |
I was able to create a small reproducer for this (possible) compiler bug. It works with GNU and XL compilers, but fails with PGI. I'll work on getting that reproducer to the PGI group and see what they have to say. Thanks @jsquyres for the Fortran (and ompi fortran build) refresher. Makes me love C even more 😄 |
Here is a link to the reproducer: shell$ make gnu
rm -f *.o *.mod *.so app
gcc -g -c constants.c -MD -fpic -DPIC -o constants.o
gfortran -g -c my_lib.f90 -o my_lib.o
gfortran -g -shared -fpic -o libmy_lib.so constants.o my_lib.o
gfortran -g app.f90 -o app -L. -lmy_lib
shell$ ./app
MY_INTEGER is 7
MY_INTEGER%MY_VAL is 7 shell$ make xl
rm -f *.o *.mod *.so app
xlc -g -c constants.c -MD -fpic -DPIC -o constants.o
/opt/ibm/xlC/13.1.2/bin/.orig/xlc: warning: 1501-269 fpic is not supported on this Operating System platform. Option fpic will be ignored.
xlf -g -c my_lib.f90 -o my_lib.o
** my_lib === End of Compilation 1 ===
1501-510 Compilation successful for file my_lib.f90.
xlf -g -G -o libmy_lib.so constants.o my_lib.o
xlf -g app.f90 -o app -L. -lmy_lib
** app === End of Compilation 1 ===
1501-510 Compilation successful for file app.f90.
shell$ ./app
MY_INTEGER is 7
MY_INTEGER%MY_VAL is 7 shell$ make pgi
rm -f *.o *.mod *.so app
pgcc -g -c constants.c -MD -fpic -DPIC -o constants.o
pgfortran -g -c my_lib.f90 -o my_lib.o
pgfortran -g -shared -fpic -o libmy_lib.so constants.o my_lib.o
pgfortran -g app.f90 -o app -L. -lmy_lib
shell$ ./app
MY_INTEGER is 0
MY_INTEGER%MY_VAL is 0 |
PGI confirmed this is an issue on both of their linuxpower and linux86-64 builds. They filed the issue as TPR 23919. |
@jjhursey Your Fortran mastery achievement (level 2) has been unlocked. |
That image is epic. |
Should we just update the compiler section of the NEWS and close this issue. Picture is cute but cobol would probably be more relevant. |
I think we should add a note to the I'd like to keep this issue open until we have a final solution from the providers. There is nothing OMPI needs to do, but this ticket will give the providers a point of reference when we follow up. I received this email from the PGI folks regarding the problem.
I've asked them for a reference to that discussion. I'll post a link if there is one. |
Here is the binutils Bugzilla link: It looks like it'll be fixed in the 2.28 release. |
See #2606 (comment) for some language for the |
* Related to Issue open-mpi#2606 and Issue open-mpi#3075 * The core problem in those two issues is related to a regression in ld upstream. Add a note in the README about this issue. Signed-off-by: Joshua Hursey <[email protected]>
* Related to Issue open-mpi#2606 and Issue open-mpi#3075 * The core problem in those two issues is related to a regression in ld upstream. Add a note in the README about this issue. Signed-off-by: Joshua Hursey <[email protected]> (cherry picked from commit 1c6a253) Signed-off-by: Joshua Hursey <[email protected]>
* Related to Issue open-mpi#2606 and Issue open-mpi#3075 * The core problem in those two issues is related to a regression in ld upstream. Add a note in the README about this issue. Signed-off-by: Joshua Hursey <[email protected]> (cherry picked from commit 1c6a253) Signed-off-by: Joshua Hursey <[email protected]>
* Related to Issue open-mpi#2606 and Issue open-mpi#3075 * The core problem in those two issues is related to a regression in ld upstream. Add a note in the README about this issue. Signed-off-by: Joshua Hursey <[email protected]> (cherry picked from commit 1c6a253) Signed-off-by: Joshua Hursey <[email protected]>
I encounter this issue on my cluster (OpenPOWER) using pgfortran. It seems that this problem still exists with the new version of pgfortran and ld. Here is the result using the test case.
|
This is very likely a known issue, fixed in master and soon to be merged into the |
I have tested the code in the master branch and can confirm that the error is fixed there. |
I can also confirm that this is fixed.
|
MTT found this issue with Open MPI using the PGI compiler (16.10 on ppc64le) and the F08 module.
As you can see below the
use mpi
module is fine, but theuse mpi_f08
module is not.Attaching a debugger the datatype being passed into the
MPI_Recv
(andMPI_Send
- which also triggers an error, butMPI_Recv
just won the race to issue an error here) is0
instead7
.The
ring_usempif08
program has a weak symbol for the datatype:Which if not resolved probably defaults to
0
causing the issue.The issue is in
master
and the release branches. The Fortran marshaling code is complex so I'm filing a bug to get some more visibility on the problem.The text was updated successfully, but these errors were encountered: