LAMMPS WWW Site - LAMMPS Documentation - LAMMPS Mailing List Archives
Re: [lammps-users] GPU Lammps : cannot open shared object file
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [lammps-users] GPU Lammps : cannot open shared object file

From: "Vaidyanathan M.S" <msvaidyanathan1729@...24...>
Date: Wed, 15 Nov 2017 13:55:23 -0600

I work on HPCs. So they are in the default location of HPC rather than in /usr/lib. But in one of the follow up emails, Axel asked to contact the local HPC support people. I shall do it then. I just wanted to make sure there is nothing which is wrong from my part in understanding LAMMPS link to GPU before contacting them.

Thanks for the help.

On Wed, Nov 15, 2017 at 12:43 PM, Stefan Paquay <stefanpaquay@...24...> wrote:
I don't know for sure but my guess is at runtime, the local directory is not checked for libraries. Why is there no in a sensible location? Mine is in /usr/lib/. You probably don't want your executable to actually use the stubs either.

On Wed, Nov 15, 2017 at 1:32 PM, Vaidyanathan M.S <msvaidyanathan1729@...24...> wrote:

I am trying to install GPU version of LAMMPS. I was successful in compiling LAMMPS with GPU version and it did generate the executable lmp_mesabi. Details regarding arch/version of computer/LAMMPS are at the end of the email.

However when I try to run, it throws the exception

error while loading shared libraries: cannot open shared object file: No such file or directory

From reading the previous threads, I realized it is a problem with the dynamic linking. 

When I execute 

vsethura@...7239... [~/mylammps/src] % ldd lmp_mesabi =>  (0x00007ffdf1bfa000)
/lib64/ (0x00007f2941afd000) => /panfs/roc/intel/x86_64/2016/parallel_studio_xe_msi/compilers_and_libraries_2016.3.210/linux/mpi/intel64/lib/ (0x00007f294132e000) => /lib64/ (0x00007f2941111000) => /usr/lib64/ (0x00007f2940ec1000) => /panfs/roc/msisoft/cuda/8.0/lib64/ (0x00007f2940c5b000) => not found => /lib64/ (0x00007f2940a57000) => /panfs/roc/msisoft/gcc/4.9.2_2/lib64/ (0x00007f2940745000) => /panfs/roc/intel/x86_64/2016/parallel_studio_xe_msi/compilers_and_libraries_2016.3.210/linux/mkl/lib/intel64/ (0x00007f293fc35000) => /panfs/roc/intel/x86_64/2016/parallel_studio_xe_msi/compilers_and_librares_2016.3.210/linux/mkl/lib/intel64/ (0x00007f293e224000) => /panfs/roc/intel/x86_64/2016/parallel_studio_xe_msi/compilers_and_libraries_2016.3.210/linux/mkl/lib/intel64/ (0x00007f293d54b000) => /lib64/ (0x00007f293d2c7000) => /panfs/roc/intel/x86_64/2016/parallel_studio_xe_msi/compilers_and_libraries_2016.3.210/linux/mpi/intel64/lib/ (0x00007f293cf29000) => /lib64/ (0x00007f293cd21000) => /panfs/roc/msisoft/gcc/4.9.2_2/lib64/ (0x00007f293cb0b000) => /lib64/ (0x00007f293c777000)
/lib64/ (0x00007f2941cfe000)

I realize that the is not found. 

But I did give a correct softlink to the main file. For instance, when I execute,

vsethura@...7240...9... [~/mylammps/lib/gpu] % ls -l 

lrwxrwxrwx 1 vsethura dorfmank 50 Nov 15 11:30 -> /panfs/roc/msisoft/cuda/8.0/lib64/stubs/

which I would expect to mean that it is correctly linked.

Further, as per Axel's suggestion in one of the previous posts, I added the -Wl,-rpath links to the Makefile.lammps too. The following is my lammps Makefile from GPU folder

gpu_SYSINC =
gpu_SYSLIB =  -lcudart -lcuda
gpu_SYSPATH = -L/panfs/roc/msisoft/cuda/8.0/lib64/stubs -Wl,-rpath,/path/panfs/roc/msisoft/cuda/8.0/lib64/stubs

Also, I added the path to LD_LIBRARY_PATH

export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/panfs/roc/msisoft/cuda/8.0/lib64/stubs

It would be great if anyone could point out what I am doing wrong or missing something obvious.

More details


LAMMPS Version: LAMMPS (22 Sep 2017)

Thanks in advance

Vaidyanathan M S

Postdoctoral Research Assistant

University of Minnesota, Twin Cities

Check out the vibrant tech community on one of the world's most
engaging tech sites,!
lammps-users mailing list