Skip to content

Tips for Installing Xmipp3 19.04 in Scipion2

David Maluenda Niubó edited this page Aug 13, 2020 · 1 revision

From precompiled Bundles

- xmippBin_Debian-3.19.xx.tgz bundle

The xmippBin_Debian-3.19.xx package is checked on Ubuntu16, Ubuntu18, OpenSUSE42.3*, ***.

(*) We have observed that libjbig.so.0 is not found in OpenSUSE42.3. However, OpenSUSE42.3 contains libjbig.so.2 and it is also valid. Therefore, please link one to the other by sudo ln -s /usr/lib64/libjbig.so.2 /usr/lib64/libjbig.so.0.

This package is compiled with the default configuration of Ubuntu-16.04 and being added the dependencies pointed out by Scipion. Additionally, the CUDA code is compiled with the Nvidia CUDA-8.0 toolkit.

Moreover, OpenCV code is compiled using the OpenCV library provided by Scipion. If you are experimenting troubles related with OpenCV, you can try to install the OpenCV trough Scipion by

scipion install opencv -j 4

where -j 4 means using 4 processors, adjust this to your system to save time (it takes a while).

From Xmipp Sources

Performance optimization

We use -mtune=native and -march=native compilation flags to optimize performance for the machine which compiles the code. If you need to get transferable binaries (in e.g. cluster environment), please remove these flags from the config file.

OpenSUSE Leap 15

OpenSUSE Leap 15 don't supports CUDA-8.0 nor gcc-5. This is a drawback for the GPU code compilation. At this point, we have two options:

  1. Disable CUDA: If Cuda Toolkit is not present in the system, nothing else is required. If some version of Cuda Toolkit is present in the system, the nvcc compiler may be found by Xmipp via which nvcc and, then, it will try to compile the GPU code. To skip this, you can either just export CUDA=False or editing the xmipp.conf file in such a way to be CUDA=False (if you are under Scipion enviroment, you can edit $SCIPION_HOME/config/scipion.conf in the same way).

  2. Manually install CUDA-8.0 and gcc-5:

    • CUDA-8.0:

      Download the Cuda Toolkit v8.0 from https://developer.nvidia.com/cuda-80-ga2-download-archive -> Linux -> OpenSUSE 13.2 -> local and, assuming that it is download at ~/Downloads, install it as follows

         sudo rpm -i ~/Downloads/cuda-repo-opensuse132-8-0-local-ga2-8.0.61-1.x86_64.rpm
         sudo zypper refresh
         sudo zypper install cuda-8-0
      
    • GCC-5:

      Download, compile and install gcc-5 compiler via:

      wget ftp://mirrors.kernel.org/gnu/gcc/gcc-5.4.0/gcc-5.4.0.tar.gz
      tar -xvf gcc-5.4.0.tar.gz
      ./contrib/download_prerequisites
      mkdir ../gcc-build-5.4.0 && cd ../gcc-build-5.4.0
      ../gcc-5.4.0/configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
      make -j4    # substitute 4 for the number of processors to use
      sudo make install
      

      Make sure that the recently installed gcc/g++ is in /usr/local/bin/g++-5 and edit the xmipp.conf in such a way to be

      NVCC_CXXFLAGS=--x cu -D_FORCE_INLINES -Xcompiler -fPIC -Wno-deprecated-gpu-targets --ccbin /usr/local/bin/g++-5 -std=c++11
      

      We have found some issues when installing gcc-5 in openSUSE15. See below some hints:

      Bug fixed related to md-unwind-support.h file.

      Bug fixed related to sanitizer_stoptheworld_linux_libcdep.cc file.

      Bug fixed related to asan.h file.

      Bug fixed related to floatn.h file.

Centos 7

Centos 6