-
Notifications
You must be signed in to change notification settings - Fork 929
Closed
Description
Hi,
I have a simple C++ MPI code (just prints "hello") which I have built with GCC 14.1.0 and the shared libraries it depends on are shown below:
$ ldd hello_cpp.exe
linux-vdso.so.1 (0x00007ffeec52b000)
libmpi.so.40 => /apps/ku/amd_9655_cpu/gcc-14_1_0/openmpi/5.0.8/lib/libmpi.so.40 (0x00007f10cc823000)
libstdc++.so.6 => /apps/ku/amd_9655_cpu/gcc/14.1.0/lib64/libstdc++.so.6 (0x00007f10cc5b1000)
libm.so.6 => /lib64/libm.so.6 (0x00007f10cc4c9000)
libgcc_s.so.1 => /apps/ku/amd_9655_cpu/gcc/14.1.0/lib64/libgcc_s.so.1 (0x00007f10cc49c000)
libc.so.6 => /lib64/libc.so.6 (0x00007f10cc293000)
libopen-pal.so.80 => /apps/ku/amd_9655_cpu/gcc-14_1_0/openmpi/5.0.8/lib/libopen-pal.so.80 (0x00007f10cc167000)
libucp.so.0 => /apps/ku/amd_9655_cpu/gcc-14_1_0/ucx/1.17.0/lib/libucp.so.0 (0x00007f10cbfed000)
libuct.so.0 => /apps/ku/amd_9655_cpu/gcc-14_1_0/ucx/1.17.0/lib/libuct.so.0 (0x00007f10cbfa1000)
libucs.so.0 => /apps/ku/amd_9655_cpu/gcc-14_1_0/ucx/1.17.0/lib/libucs.so.0 (0x00007f10cbdf3000)
libucm.so.0 => /apps/ku/amd_9655_cpu/gcc-14_1_0/ucx/1.17.0/lib/libucm.so.0 (0x00007f10cbdd4000)
libz.so.1 => /usr/lib64/libz.so.1 (0x00007f10cbdb8000)
libpmix.so.2 => /apps/ku/amd_9655_cpu/gcc-14_1_0/pmix/5.0.8/lib/libpmix.so.2 (0x00007f10cbb8b000)
libmunge.so.2 => /usr/lib64/libmunge.so.2 (0x00007f10cbb82000)
libevent_core-2.1.so.7 => /apps/ku/amd_9655_cpu/gcc-14_1_0/libevent/2.1.12/lib/libevent_core-2.1.so.7 (0x00007f10cbb4c000)
libevent_pthreads-2.1.so.7 => /apps/ku/amd_9655_cpu/gcc-14_1_0/libevent/2.1.12/lib/libevent_pthreads-2.1.so.7 (0x00007f10cbb47000)
libhwloc.so.15 => /usr/lib64/libhwloc.so.15 (0x00007f10cbaee000)
/lib64/ld-linux-x86-64.so.2 (0x00007f10ccbc3000)
You can see that libstdc++.so.6 is resolved at /apps/ku/amd_9655_cpu/gcc/14.1.0/lib64. However, when I try to run that application, it instead loads /lib64/libstdc++.so.6, which is obviously incorrect:
$ mpirun -n 2 ./hello_cpp.exe
./hello_cpp.exe: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.32' not found (required by ./hello_cpp.exe)
./hello_cpp.exe: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.32' not found (required by ./hello_cpp.exe)
--------------------------------------------------------------------------
prterun detected that one or more processes exited with non-zero status,
thus causing the job to be terminated. The first process to do so was:
Process name: [prterun-cn-0902-17-176777@1,0]
Exit code: 1
--------------------------------------------------------------------------
I do not know why it is picking up the wrong libstdc++.so.6. When I run it without mpirun, it executes without any issues. Any help will be greatly appreciated.
Regards,
Metadata
Metadata
Assignees
Labels
No labels