Skip to content

Applications compiled with 4.1.4 will not use libmpi from 5.0.x #11347

@wckzhang

Description

@wckzhang

A continuation of - #11269 - but the issue has diverged enough to create a new issue in my opinion.

Even though Open MPI does not have an ABI break and is forward compatible, it looks like applications will only look for the specific version of libmpi, in the case of 4.1.4, this is libmpi.so.40. Open MPI 5.0.x currently has the version of libmpi.so.80. Thus when the application searches for a libmpi, it does not select the libmpi.so.80 belonging to Open MPI.

[ec2-user@ip-10-0-0-28 pt2pt]$ export LD_LIBRARY_PATH=/home/ec2-user/ompi5install/lib
[ec2-user@ip-10-0-0-28 pt2pt]$ ls /home/ec2-user/ompi5install/lib/ | grep libmpi.so
libmpi.so
libmpi.so.80
libmpi.so.80.0.0
[ec2-user@ip-10-0-0-28 pt2pt]$ ldd osu_bw | grep libmpi
	libmpi.so.40 => /opt/amazon/openmpi/lib64/libmpi.so.40 (0x00007f477a477000)
.
.
<Additional debug>
[ec2-user@ip-10-0-0-28 pt2pt]$ LD_DEBUG=libs ldd ./osu_latency > tmp.txt

<tmp.txt output>
     28417:     find library=libmpi.so.40 [0]; searching
     28417:      search path=/home/ec2-user/ompi5install/lib/tls/haswell/avx512_1/x86_64:/home/ec2-user/ompi5install/lib/tls/haswell/avx512_1:/home/ec2-user/ompi5install/lib/tls/haswell/x86_64:/home/ec2-user/ompi5install/lib/tls/haswell:/home/ec2-user/ompi5install/lib/tls/avx512_1/x86_64:/home/ec2-user/ompi5install/lib/tls/avx512_1:/home/ec2-user/ompi5install/lib/tls/x86_64:/home/ec2-user/ompi5install/lib/tls:/home/ec2-user/ompi5install/lib/haswell/avx512_1/x86_64:/home/ec2-user/ompi5install/lib/haswell/avx512_1:/home/ec2-user/ompi5install/lib/haswell/x86_64:/home/ec2-user/ompi5install/lib/haswell:/home/ec2-user/ompi5install/lib/avx512_1/x86_64:/home/ec2-user/ompi5install/lib/avx512_1:/home/ec2-user/ompi5install/lib/x86_64:/home/ec2-user/ompi5install/lib            (LD_LIBRARY_PATH)
     28417:       trying file=/home/ec2-user/ompi5install/lib/tls/haswell/avx512_1/x86_64/libmpi.so.40
     28417:       trying file=/home/ec2-user/ompi5install/lib/tls/haswell/avx512_1/libmpi.so.40
     28417:       trying file=/home/ec2-user/ompi5install/lib/tls/haswell/x86_64/libmpi.so.40
     28417:       trying file=/home/ec2-user/ompi5install/lib/tls/haswell/libmpi.so.40
     28417:       trying file=/home/ec2-user/ompi5install/lib/tls/avx512_1/x86_64/libmpi.so.40
     28417:       trying file=/home/ec2-user/ompi5install/lib/tls/avx512_1/libmpi.so.40
     28417:       trying file=/home/ec2-user/ompi5install/lib/tls/x86_64/libmpi.so.40
     28417:       trying file=/home/ec2-user/ompi5install/lib/tls/libmpi.so.40
     28417:       trying file=/home/ec2-user/ompi5install/lib/haswell/avx512_1/x86_64/libmpi.so.40
     28417:       trying file=/home/ec2-user/ompi5install/lib/haswell/avx512_1/libmpi.so.40
     28417:       trying file=/home/ec2-user/ompi5install/lib/haswell/x86_64/libmpi.so.40
     28417:       trying file=/home/ec2-user/ompi5install/lib/haswell/libmpi.so.40
     28417:       trying file=/home/ec2-user/ompi5install/lib/avx512_1/x86_64/libmpi.so.40
     28417:       trying file=/home/ec2-user/ompi5install/lib/avx512_1/libmpi.so.40
     28417:       trying file=/home/ec2-user/ompi5install/lib/x86_64/libmpi.so.40
     28417:       trying file=/home/ec2-user/ompi5install/lib/libmpi.so.40
     28417:      search path=/opt/amazon/openmpi/lib64/tls/haswell/avx512_1/x86_64:/opt/amazon/openmpi/lib64/tls/haswell/avx512_1:/opt/amazon/openmpi/lib64/tls/haswell/x86_64:/opt/amazon/openmpi/lib64/tls/haswell:/opt/amazon/openmpi/lib64/tls/avx512_1/x86_64:/opt/amazon/openmpi/lib64/tls/avx512_1:/opt/amazon/openmpi/lib64/tls/x86_64:/opt/amazon/openmpi/lib64/tls:/opt/amazon/openmpi/lib64/haswell/avx512_1/x86_64:/opt/amazon/openmpi/lib64/haswell/avx512_1:/opt/amazon/openmpi/lib64/haswell/x86_64:/opt/amazon/openmpi/lib64/haswell:/opt/amazon/openmpi/lib64/avx512_1/x86_64:/opt/amazon/openmpi/lib64/avx512_1:/opt/amazon/openmpi/lib64/x86_64:/opt/amazon/openmpi/lib64            (RUNPATH from file ./osu_latency)
     28417:       trying file=/opt/amazon/openmpi/lib64/tls/haswell/avx512_1/x86_64/libmpi.so.40
     28417:       trying file=/opt/amazon/openmpi/lib64/tls/haswell/avx512_1/libmpi.so.40
     28417:       trying file=/opt/amazon/openmpi/lib64/tls/haswell/x86_64/libmpi.so.40
     28417:       trying file=/opt/amazon/openmpi/lib64/tls/haswell/libmpi.so.40
     28417:       trying file=/opt/amazon/openmpi/lib64/tls/avx512_1/x86_64/libmpi.so.40
     28417:       trying file=/opt/amazon/openmpi/lib64/tls/avx512_1/libmpi.so.40
     28417:       trying file=/opt/amazon/openmpi/lib64/tls/x86_64/libmpi.so.40
     28417:       trying file=/opt/amazon/openmpi/lib64/tls/libmpi.so.40
     28417:       trying file=/opt/amazon/openmpi/lib64/haswell/avx512_1/x86_64/libmpi.so.40
     28417:       trying file=/opt/amazon/openmpi/lib64/haswell/avx512_1/libmpi.so.40
     28417:       trying file=/opt/amazon/openmpi/lib64/haswell/x86_64/libmpi.so.40
     28417:       trying file=/opt/amazon/openmpi/lib64/haswell/libmpi.so.40
     28417:       trying file=/opt/amazon/openmpi/lib64/avx512_1/x86_64/libmpi.so.40
     28417:       trying file=/opt/amazon/openmpi/lib64/avx512_1/libmpi.so.40
     28417:       trying file=/opt/amazon/openmpi/lib64/x86_64/libmpi.so.40
     28417:       trying file=/opt/amazon/openmpi/lib64/libmpi.so.40

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions