I am trying to load a shared library written by me for my mpi
application. But when I call mpirun its unable to locate the shared
library. The shared library does exist in the path. I have also set the
LD_LIBRARY_PATH. As you can see from the output of ldd its able to
locate the library.
I am attaching the output
$ ldd ./test
libdsm.so.1 => ./libdsm.so.1 (0x0000002a9566c000)
liblamio.so.4 => /usr/lib/liblamio.so.4 (0x0000002a95772000)
liblam.so.4 => /usr/lib/liblam.so.4 (0x0000002a9589e000)
libutil.so.1 => /lib/libutil.so.1 (0x0000002a95aa8000)
libdl.so.2 => /lib/libdl.so.2 (0x0000002a95bac000)
libpthread.so.0 => /lib/libpthread.so.0 (0x0000002a95caf000)
libc.so.6 => /lib/libc.so.6 (0x0000002a95dc3000)
/lib64/ld-linux-x86-64.so.2 => /lib64/ld-linux-x86-64.so.2 (0x0000002a95556000)
$ lamnodes
n0 compute1:1:origin,this_node
n1 compute2:1:
$ mpirun -v N ./test
30269 ./test running on n0 (o)
26474 ./test running on n1
./test: error while loading shared libraries: libdsm.so.1: cannot open
shared object file: No such file or directory
-----------------------------------------------------------------------------
It seems that [at least] one of the processes that was started with
mpirun did not invoke MPI_INIT before quitting (it is possible that
more than one process did not invoke MPI_INIT -- mpirun was only
notified of the first one, which was on node n0).
mpirun can *only* be used with MPI programs (i.e., programs that
invoke MPI_INIT and MPI_FINALIZE). You can use the "lamexec" program
to run non-MPI programs over the lambooted nodes.
-----------------------------------------------------------------------------
Any help on this is appreciated.
Thanks,
Bharath
---
Bharath Ramesh <bramesh_at_[hidden]> http://csgrad.cs.vt.edu/~bramesh
|