Skip to content

XL Fortran Compiler F08 Bindings broken for OpenSHMEM #3612

Open
@jjhursey

Description

@jjhursey

The README says:

  • IBM's xlf compilers: NO known good version that can build/link
    the MPI f08 bindings or build/link the OpenSHMEM Fortran bindings.

However, this no longer seems to be accurate for the MPI f08 bindings. I can confirm that the OpenSHMEM Fortran bindings do not work.

I checked the master branch with XL compiler:
shell$ xlf -qversion
IBM XL Fortran for Linux, V15.1.5 (5725-C75, 5765-J10)
Version: 15.01.0005.0000
shell$ ./configure --disable-dlopen CC=xlc_r CXX=xlC_r FC=xlf_r
...
shell$ cd examples/
shell$ make ring_usempif08 hello_usempif08
mpifort -g ring_usempif08.f90 -o ring_usempif08
** ring   === End of Compilation 1 ===
1501-510  Compilation successful for file ring_usempif08.f90.
mpifort -g hello_usempif08.f90 -o hello_usempif08
** main   === End of Compilation 1 ===
1501-510  Compilation successful for file hello_usempif08.f90.
shell$ mpifort --showme
xlf_r -I/tmp/jjhursey/install/ompi-master/include -I/tmp/jjhursey/install/ompi-master/lib -Wl,-rpath -Wl,/tmp/jjhursey/install/ompi-master/lib -Wl,--enable-new-dtags -L/tmp/jjhursey/install/ompi-master/lib -lmpi_usempif08 -lmpi_usempi_ignore_tkr -lmpi_mpifh -lmpi
shell$ mpifort -qversion
IBM XL Fortran for Linux, V15.1.5 (5725-C75, 5765-J10)
Version: 15.01.0005.0000
shell$ mpirun -np 2 ./ring_usempif08
Process 0 sending 10 to  1 tag 201 ( 2 processes in ring)
Process 0 sent to  1
Process 0 decremented value:  9
Process 0 decremented value:  8
Process 0 decremented value:  7
Process 0 decremented value:  6
Process 0 decremented value:  5
Process 0 decremented value:  4
Process 0 decremented value:  3
Process 0 decremented value:  2
Process 0 decremented value:  1
Process 0 decremented value:  0
Process  0 exiting
Process  1 exiting
shell$ mpirun -np 2 ./hello_usempif08
Hello, world, I am  0 of  2: Open MPI v4.0.0a1, package: Open MPI jjhursey@c656f6n03 Distribution, ident: 4.0.0a1, repo rev: v2.x-dev-4209-g22631832, Unreleased developer copy                                                                                                            
Hello, world, I am  1 of  2: Open MPI v4.0.0a1, package: Open MPI jjhursey@c656f6n03 Distribution, ident: 4.0.0a1, repo rev: v2.x-dev-4209-g22631832, Unreleased developer copy                                                                                                            

For OSHMEM it's not quite all working:

shell$ make hello_oshmemfh
shmemfort -g hello_oshmemfh.f90 -o hello_oshmemfh
** hello_oshmem   === End of Compilation 1 ===
1501-510  Compilation successful for file hello_oshmemfh.f90.
shell$ mpirun -np 2 ./hello_oshmemfh
Hello, world, I am  0 of  2: (version: 1.3)
Hello, world, I am  1 of  2: (version: 1.3)
shell$ make ring_oshmemfh
shmemfort -g ring_oshmemfh.f90 -o ring_oshmemfh
** ring_oshmem   === End of Compilation 1 ===
1501-510  Compilation successful for file ring_oshmemfh.f90.
ring_oshmemfh.o: In function `ring_oshmem':
/tmp/jjhursey/ompi/examples/ring_oshmemfh.f90:48: undefined reference to `shmem_int8_wait_until'
make: *** [ring_oshmemfh] Error 1

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions