Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Local install issues #2

Closed
bforsbe opened this issue Jun 17, 2016 · 11 comments
Closed

Local install issues #2

bforsbe opened this issue Jun 17, 2016 · 11 comments

Comments

@bforsbe
Copy link
Contributor

bforsbe commented Jun 17, 2016

Originally reported by: Robert McLeod (Bitbucket: robbmcleod, GitHub: robbmcleod)


My GPU nodes are on a cluster where I don't have sudo. The default 'make install' tries to install globally, which of course doesn't work. This is a change from how Relion has worked in the past. Here is what I changed to install it locally in my home directory:

from ~/relion2-beta/build/

cmake -DCMAKE_INSTALL_PREFIX="~/relion2-beta/" ..

make all install

Yields the executables in ~/relion2-beta/bin/ and the libraries in ~/relion2-beta/lib/

Following bugs are related to said local install:

Bug: However, relion main executable isn't copied with the new make prefix. Can be copied manually.

Bug: All of the relion_star* bash scripts need to be made executable with chmod after installation.

Bug: ~/relion2-beta/bin/relion_refine_mpi: error while loading shared libraries: libfltk_images.so.1.3: cannot open shared object file: No such file or directory

Work-around: The ftkl and fftw libraries weren't created on install. I copied them over from relion-1.4 install and then added the ~/relion2-beta/lib to my LD_LIBRARY_PATH environment variable in my submission script.

After resolution of these problems I appear to have successfully started a 2D classification on a known-good dataset on one of our GPU servers (4 Tesla K80s). It does claim to be running in double-precision mode.


@bforsbe
Copy link
Contributor Author

bforsbe commented Jun 17, 2016

Original comment by Bjoern Forsberg (Bitbucket: bforsbe, GitHub: bforsbe):


Could you post the output of the cmake configuration? I believe that the double precision stated at the beginning of the run refers to the precision used on the CPU, which is double by default.

@bforsbe
Copy link
Contributor Author

bforsbe commented Jun 17, 2016

Original comment by Sjors Scheres (Bitbucket: scheres, GitHub: scheres):


Hi Robert,
Thank you for your detailed feedback. Please note that with the cmake system it is not necessary to use 'make install'. Just type make -j 8 from the build directory, and this will create all the files you're looking for inside the bin and lib directory inside build/. The scripts should also be there. I think some of the workarounds you mention are consequences of changing this default method.
Happy to hear how this goes.
Sjors

@bforsbe
Copy link
Contributor Author

bforsbe commented Jun 17, 2016

Original comment by Sjors Scheres (Bitbucket: scheres, GitHub: scheres):


Just to be clear for others. Something like this should work (but please do like Robert and report any problems you might have):

git clone https://@bitbucket.org/tcblab/relion2-beta.git

cd relion2-beta/

mkdir build

cd build/

cmake ..

make -j 12

@bforsbe
Copy link
Contributor Author

bforsbe commented Jun 18, 2016

Original comment by Robert McLeod (Bitbucket: robbmcleod, GitHub: robbmcleod):


Cmake 2.8.12 logs with FLTK dependency issue

@bforsbe
Copy link
Contributor Author

bforsbe commented Jun 18, 2016

Original comment by Robert McLeod (Bitbucket: robbmcleod, GitHub: robbmcleod):


So with a bit more time I see that you have setup Google Drive links for the external dependencies. This seems to be the part that isn't working for me under some circumstances.

On our cluster we have various CMake modules that come with different environments for different flavours of MPI and compilers. For example with an older version of Cmake (2.8.12) with the 'goolf-1.7.20' environment that we used for Relion >=1.4 it can't download FLTK because of a mis-matched hash and crashes in the make step. For whatever reason yesterday it built to completion, possibly the FLTK didn't get off a kill signal to the others? It seems to be more robust if compiling with one thread. Here if I change to Cmake 3.4.3 and OpenMPI 1.7.20 it does work. So perhaps it is best to recommend a higher minimum Cmake version and/or MPI flavour? Or it could be specific to our environment.

Here's an example with a freshly cloned repo:

mcleod@login11:~/relion2-beta/build$ module load CUDA/7.5.18

mcleod@login11:~/relion2-beta/build$ module load CMake/2.8.12-goolf-1.7.20

mcleod@login11:~/relion2-beta/build$ cmake ..
-- The C compiler identification is GNU 4.4.7
-- The CXX compiler identification is GNU 4.4.7
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- BUILD TYPE set to the default type: 'Release'
-- Setting fallback CUDA_ARCH=35
-- Setting cpu precision to double
-- Setting gpu precision to single
-- Found CUDA: /scicore/soft/apps/CUDA/7.5.18 (found version "7.5")
-- Using cuda wrapper to compile....
-- Cuda version is >= 7.5 and single-precision build, enable double usage warning.
-- Found MPI_C: /scicore/soft/apps/OpenMPI/1.8.4-GCC-4.8.4/lib/libmpi.so
-- Found MPI_CXX: /scicore/soft/apps/OpenMPI/1.8.4-GCC-4.8.4/lib/libmpi_cxx.so;/scicore/soft/apps/OpenMPI/1.8.4-GCC-4.8.4/lib/libmpi.so
-- MPI_INCLUDE_PATH : /scicore/soft/apps/OpenMPI/1.8.4-GCC-4.8.4/include
-- MPI_LIBRARIES : /scicore/soft/apps/OpenMPI/1.8.4-GCC-4.8.4/lib/libmpi_cxx.so;/scicore/soft/apps/OpenMPI/1.8.4-GCC-4.8.4/lib/libmpi.so
-- MPICXX_INCLUDE_PATH : /scicore/soft/apps/OpenMPI/1.8.4-GCC-4.8.4/include/openmpi/ompi/mpi/cxx
-- Looking for XOpenDisplay in /usr/lib64/libX11.so;/usr/lib64/libXext.so
-- Looking for XOpenDisplay in /usr/lib64/libX11.so;/usr/lib64/libXext.so - found
-- Looking for gethostbyname
-- Looking for gethostbyname - found
-- Looking for connect
-- Looking for connect - found
-- Looking for remove
-- Looking for remove - found
-- Looking for shmat
-- Looking for shmat - found
-- Looking for IceConnectionNumber in ICE
-- Looking for IceConnectionNumber in ICE - found
-- Found X11: /usr/lib64/libX11.so
-- Could NOT find FLTK (missing: FLTK_LIBRARIES FLTK_INCLUDE_DIR FLTK_FLUID_EXECUTABLE)
-- FLTK was NOT found


-- ------- WILL USE LOCALLY BUILT FLTK LIBS --------


-- no previous fltk found, the following paths are set for libs/headers TO BE built
-- FLTK_INCLUDE_DIR: /scicore/home/stahlberg/mcleod/relion2-beta/external/fltk/include
-- FLTK_LIBRARIES: /scicore/home/stahlberg/mcleod/relion2-beta/external/fltk/lib/libfltk.so
-- Found FFTW: fftw3
-- FFTW_LIBRARIES: /usr/lib64/libfftw3.so
-- Looking for sincos
-- Looking for sincos - found
-- Looking for sincos
-- Looking for sincos - not found
-- Building shared libs (smaller build size and binaries)
-- CMAKE_BINARY_DIR:/scicore/home/stahlberg/mcleod/relion2-beta/build
-- added autopick_mpi...
-- added mask_create...
-- added display...
-- added refine_mpi...
-- added preprocess_mpi...
-- added stack_create...
-- added manualpick...
-- added particle_symmetry_expand...
-- added run_ctffind...
-- added reconstruct...
-- added star_combine...
-- added helix_toolbox...
-- added autopick...
-- added run_motioncorr_mpi...
-- added particle_polish_mpi...
-- added star_compare...
-- added refine...
-- added find_tiltpairs...
-- added tiltpair_plot...
-- added run_ctffind_mpi...
-- added preprocess...
-- added project...
-- added particle_sort_mpi...
-- added particle_sort...
-- added particle_reposition...
-- added particle_polish...
-- added run_motioncorr...
-- added postprocess...
-- added pipeliner...
-- added image_handler...
-- added maingui...
-- Configuring done
-- Generating done
-- Build files have been written to: /scicore/home/stahlberg/mcleod/relion2-beta/build
mcleod@login11:~/relion2-beta/build$ make -j 6
[ 1%] [ 3%] [ 4%] [ 4%] Scanning dependencies of target FLTK
Scanning dependencies of target copy_scripts
Building NVCC (Device) object src/apps/CMakeFiles/relion_gpu_util.dir//gpu_utils/cuda_kernels/./relion_gpu_util_generated_helper.cu.o
Building NVCC (Device) object src/apps/CMakeFiles/relion_gpu_util.dir/
/gpu_utils/./relion_gpu_util_generated_cuda_backprojector.cu.o
Building NVCC (Device) object src/apps/CMakeFiles/relion_gpu_util.dir//gpu_utils/./relion_gpu_util_generated_cuda_projector_plan.cu.o
Building NVCC (Device) object src/apps/CMakeFiles/relion_gpu_util.dir/
/gpu_utils/./relion_gpu_util_generated_cuda_autopicker.cu.o
[ 5%] Creating directories for 'FLTK'
[ 6%] Performing download step (download, verify and extract) for 'FLTK'
[ 6%] Built target copy_scripts
[ 6%] -- downloading...
src='https://drive.google.com/uc?export=download&id=0B942d76zVnSeazZWcExRaXIyVDg'
dst='/scicore/home/stahlberg/mcleod/relion2-beta/external/fltk/fltk-1.3.3-source.tar.gz'
timeout='none'
CMake Error at /scicore/home/stahlberg/mcleod/relion2-beta/build/FLTK-prefix/src/FLTK-stamp/download-FLTK.cmake:9 (file):
file DOWNLOAD HASH mismatch

for file: [/scicore/home/stahlberg/mcleod/relion2-beta/external/fltk/fltk-1.3.3-source.tar.gz]
  expected hash: [9ccdb0d19dc104b87179bd9fd10822e3]
    actual hash: [d41d8cd98f00b204e9800998ecf8427e]

make[2]: *** [FLTK-prefix/src/FLTK-stamp/FLTK-download] Error 1
make[1]: *** [CMakeFiles/FLTK.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....

@bforsbe
Copy link
Contributor Author

bforsbe commented Jun 19, 2016

Original comment by Bjoern Forsberg (Bitbucket: bforsbe, GitHub: bforsbe):


Thank you so much for the detailed update. This was really helpful, because I learnt something valuable from here:

"The actual hash you see (d41d8cd98f00b204e9800998ecf8427e) is the one for an empty file, and it's what happens when CMake doesn't have SSL support."

I tired using wget and I got the correct hash, so in all likelihood we need to require a cmake-version built with SSL-support. This will be amended, thanks!

I'll look into the installation of the main executable and post-install modifications of scripts, and resolve this issue when we push an amended version.

As a side-note for others possibly facing similar issues with FLTK deps on remote nodes which do not need a graphical interface-capability, simply skipping the need for FLTK is possible through omission of the GUI-related features, by modifying the configuration and build procedure stated above by Sjors to :

#!bash
git clone https://<username>@bitbucket.org/tcblab/relion2-beta.git
cd relion2-beta/
mkdir build
cd build/
cmake -DGUI=OFF ..
make -j 12

@bforsbe
Copy link
Contributor Author

bforsbe commented Jun 22, 2016

Original comment by Jon Diprose (Bitbucket: well-jon, GitHub: Unknown):


Ah, should have read further down that one!

@bforsbe
Copy link
Contributor Author

bforsbe commented Jun 27, 2016

Original comment by Dari Kimanius (Bitbucket: dkimanius, GitHub: dkimanius):


Issue #11 was marked as a duplicate of this issue.

@bforsbe
Copy link
Contributor Author

bforsbe commented Jun 28, 2016

Original comment by Bjoern Forsberg (Bitbucket: bforsbe, GitHub: bforsbe):


All initial issues stated should be fixed in v2.0.b4 (d12ab71)

@bforsbe
Copy link
Contributor Author

bforsbe commented Aug 9, 2016

Original comment by Robert McLeod (Bitbucket: robbmcleod, GitHub: robbmcleod):


Hi,

Please consider using http instead of ftp for downloading dependencies. My IT department is paranoid and we have no FTP access on the cluster, but wget with http works fine. Thanks.

@bforsbe
Copy link
Contributor Author

bforsbe commented Aug 9, 2016

Original comment by Bjoern Forsberg (Bitbucket: bforsbe, GitHub: bforsbe):


There's a backup DL location you can use. All you need to do is switch line 53 for line 54 in cmake/BuildFFTW.cmake. That uses https.

biochem-fan pushed a commit that referenced this issue Sep 23, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants