17.1 open mpi issue

Hi all,

After installing 17.1, I am having trouble with openmpi:

$ /opt/pgi/linux86-64/2017/mpi/openmpi-1.10.2/bin/mpif90
/opt/pgi/linux86-64/2017/mpi/openmpi-1.10.2/bin/.bin/mpif90: error while loading shared libraries: libopen-pal.so.13: cannot open shared object file: No such file or directory

$ locate libopen-pal.so.13
/opt/pgi/linux86-64/2016/mpi/openmpi-1.10.2/lib/libopen-pal.so.13
/opt/pgi/linux86-64/2016/mpi/openmpi-1.10.2/lib/libopen-pal.so.13.0.2
/opt/pgi/linux86-64/2017/mpi/openmpi-1.10.2/lib/libopen-pal.so.13
/opt/pgi/linux86-64/2017/mpi/openmpi-1.10.2/lib/libopen-pal.so.13.0.2

Any suggestions? This may be related to a previous post ny “TheMatt” but I was not able to find a solution based on that.

Thanks, Jan

First of all, you should set up your environment
export PGI=/opt/pgi
export PATH=$PGI/linux86-64/17.1/bin:$PGI/linux86-64/2017/mpi/openmpi/bin

and then mpif90 should work.

But the $PGI/linux86-64/2017/mpi/openmpi-1.10.2/bin/.bin/mpif90
is not what what you should be running.

=============================================
I don’t think you need to do the following if you use the right mpif90 in your path

It looks like someone did not build the /.bin version of mpif90 correctly.

But we can get that working.

export LD_LIBRARY_PATH=/opt/pgi/linux86-64/17.1/lib:/opt/pgi/linux86-64/2017/mpi/openmpi-1.10.2/lib:$LD_LIBRARY_PATH

If you look at
ldd /opt/pgi/linux86-64/2017/mpi/openmpi-1.10.2/bin/mpif90
before and after you set LD_LIBRARY_PATH, you will see why it works now.

after discussing this with engineering, how
:/opt/pgi/linux86-64/2017/mpi/openmpi/bin/mpif90 reconciles its paths
makes the "ldd …/.bin/mpif90 " output irrelevant.



dave

Thanks, setting

LD_LIBRARY_PATH

did the trick. Otherwise my environment was fully set up. This must be an omission in the PGI installation files? Previously, I did have not have to set the LD_LIBRARY_PATH AFAICR.

-Jan

If you look at the outputs of

pgfortran -dryrun x.o -Mmpi=mpi

and

mpif90 -dryrun x.o

you will see the mpif90 output has this extra fragment

-rpath /opt/pgi/linux86-64/2016/mpi/openmpi-1.10.2/lib

which points the executable to an area for finding libraries.

Try adding

-Wl,-rpath,/opt/pgi/linux86-64/2016/mpi/openmpi-1.10.2/lib

to your compile line and see what happens.

dave