Project

General

Profile

SOLVED: MotionCor2 requires libcufft.so.8.0?

Added by Patrick Goetz almost 7 years ago

I downloaded MotionCor2 as per the instructions here:

http://emg.nysbc.org/projects/appion/wiki/Install_dosefgpu_driftcorr

and for once I have the opposite problem. They seem to have linked the program against a specific version of of libcufft.so, namely libcufft.so.8.0, and Ubuntu only ships with libcufft.so.7.5.

I'm not sure how you would get MotionCor@ working under CentOS 6, or CentOS 7, for that matter. CentOS ships with libcufft.so.4 and CentOS 7 ships with libcufft.so.7.


Replies (6)

RE: MotionCor2 requires libcufft.so.8.0? - Added by Sargis Dallakyan almost 7 years ago

We are installing Cuda 8 from Nvidia download page and not from CentOS. Carl did an excellent job installing Cuda 8 on our GPU boxes. I don't have experience installing Cuda on Ubuntu, but a quick Google search brought this link that I hope is useful for Ubuntu users - http://www.diegoacuna.me/installing-cuda-8-on-ubuntu-16-04/

RE: MotionCor2 requires libcufft.so.8.0? - Added by Carl Negro almost 7 years ago

Hi Patrick,

I have installed Cuda 8 on Ubuntu 16.04 based on the link Sargis posted. I would just add that it is a little out of date so you should use `sudo apt-get install nvidia-384` instead of `sudo apt-get install nvidia-367`. The only other troubleshooting warnings I can give are to make absolutely sure you are downloading the correct cuda-toolkit version. You have to navigate to legacy releases to find the Cuda 8 toolkit: https://developer.nvidia.com/cuda-toolkit-archive.

RE: MotionCor2 requires libcufft.so.8.0? - Added by Patrick Goetz almost 7 years ago

Thanks, installing Cuda 8 from the nvidia source worked, however now I have a new problem:

cnsit@kraken:~$ motioncor2
motioncor2: error while loading shared libraries: libtiff.so.3: cannot open shared object file: No such file or directory

As luck would have it, Ubuntu 16.04 only comes with libtiff.so.5. Where did you find libtiff.so.3?

Looks like I'm going to have to spin up some VM's in order to harvest additional libraries. These guys really need to just statically link stuff like libtiff.

RE: MotionCor2 requires libcufft.so.8.0? - Added by Carl Negro almost 7 years ago

I used a symlink. Check /usr/lib/x86_64-linux-gnu :

lrwxrwxrwx 1 root root   13 Jan 19  2017 libtic.so.5 -> libtic.so.5.9
-rw-r--r-- 1 root root  59K Feb 19  2016 libtic.so.5.9
-rw-r--r-- 1 root root 730K May 29  2017 libtiff.a
lrwxrwxrwx 1 root root   16 May 29  2017 libtiff.so -> libtiff.so.5.2.4
lrwxrwxrwx 1 root root   12 Oct 24 18:50 libtiff.so.3 -> libtiff.so.5
lrwxrwxrwx 1 root root   16 May 29  2017 libtiff.so.5 -> libtiff.so.5.2.4
-rw-r--r-- 1 root root 465K May 29  2017 libtiff.so.5.2.4
-rw-r--r-- 1 root root 8.6K May 29  2017 libtiffxx.a
lrwxrwxrwx 1 root root   18 May 29  2017 libtiffxx.so -> libtiffxx.so.5.2.4
lrwxrwxrwx 1 root root   18 May 29  2017 libtiffxx.so.5 -> libtiffxx.so.5.2.4
-rw-r--r-- 1 root root  10K May 29  2017 libtiffxx.so.5.2.4
lrwxrwxrwx 1 root root   23 Jan 19  2017 libtimezonemap.so.1 -> libtimezonemap.so.1.0.0
-rw-r--r-- 1 root root  68K Dec 23  2015 libtimezonemap.so.1.0.0

RE: MotionCor2 requires libcufft.so.8.0? - Added by Patrick Goetz almost 7 years ago

I'm amazed that this works! But thanks for responding so quickly, and over the weekend at that. I'll give it a try.

RE: MotionCor2 requires libcufft.so.8.0? - Added by Patrick Goetz almost 7 years ago

I tested linking libtiff.so.3 to libtiff.so.5, and motioncor2 appeared to run, but this seems like a recipe for disaster. As with findem64.exe, what I ended up doing is spinning up a CentOS 6 machine and installing the libtiff-devel package, which includes libtiff.so.3.9.4. Then it was a simple matter of copying this library over the processing machine from the CentOS 6 virtual machine.

# mv ~/libtiff.so.3.9.4 /usr/local/lib
# cd /usr/local/lib
# ln -s libtiff.so.3 libtiff.so.3.9.4

I already have /usr/local/lib in the LD_LIBRARY_PATH, so there was nothing more to do.

Interestingly, motioncor2 seemed to be running before I did this, but as soon as I made this change I started getting a different error message:

cnsit@kraken:~$ motioncor2
motioncor2: error while loading shared libraries: libjpeg.so.62: cannot open shared object file: No such file or directory

Fortunately in this case it was just a matter of installing a packaged library:

# apt-get install libjpeg62

Marking this ticket as resolved, and recommending against allowing libtiff.so.5 to pretend that it is libtiff.so.3.

    (1-6/6)