HITS-MBM/gromacs-fda

Installation Error from v2016.1-fda2.7

datasciencebio opened this issue · 6 comments

Hi Bernd,

I am trying to install the v2016.1-fda2.7 in a new macbook, after following the fda manual , terminal was showing as follow:

cmake -DCMAKE_INSTALL_PREFIX=/Users/cs/gromacs/fda-2016.1-fda2.8 -DGMX_BUILD_FDA=ON -DGMX_DEFAULT_SUFFIX=OFF -DGMX_BINARY_SUFFIX=_fda -DGMX_SIMD=NONE -DGMX_BUILD_UNITTESTS=ON -DGMX_GPU=OFF ..

-- The C compiler identification is AppleClang 8.1.0.8020042
-- The CXX compiler identification is AppleClang 8.1.0.8020042
-- Check for working C compiler: /Library/Developer/CommandLineTools/usr/bin/cc
-- Check for working C compiler: /Library/Developer/CommandLineTools/usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /Library/Developer/CommandLineTools/usr/bin/c++
-- Check for working CXX compiler: /Library/Developer/CommandLineTools/usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Performing Test CXXFLAG_STD_CXX0X
-- Performing Test CXXFLAG_STD_CXX0X - Success
-- Performing Test CXX11_SUPPORTED
-- Performing Test CXX11_SUPPORTED - Success
-- Performing Test CXX11_STDLIB_PRESENT
-- Performing Test CXX11_STDLIB_PRESENT - Success
-- Try OpenMP C flag = [-fopenmp=libomp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Failed
-- Try OpenMP C flag = [ ]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Failed
-- Try OpenMP C flag = [-fopenmp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Failed
-- Try OpenMP C flag = [/openmp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Failed
-- Try OpenMP C flag = [-Qopenmp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Failed
-- Try OpenMP C flag = [-openmp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Failed
-- Try OpenMP C flag = [-xopenmp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Failed
-- Try OpenMP C flag = [+Oopenmp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Failed
-- Try OpenMP C flag = [-qsmp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Failed
-- Try OpenMP C flag = [-mp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Failed
-- Try OpenMP CXX flag = [-fopenmp=libomp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Failed
-- Try OpenMP CXX flag = [ ]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Failed
-- Try OpenMP CXX flag = [-fopenmp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Failed
-- Try OpenMP CXX flag = [/openmp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Failed
-- Try OpenMP CXX flag = [-Qopenmp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Failed
-- Try OpenMP CXX flag = [-openmp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Failed
-- Try OpenMP CXX flag = [-xopenmp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Failed
-- Try OpenMP CXX flag = [+Oopenmp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Failed
-- Try OpenMP CXX flag = [-qsmp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Failed
-- Try OpenMP CXX flag = [-mp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Failed
-- Could NOT find OpenMP (missing: OpenMP_C_FLAGS OpenMP_CXX_FLAGS)
CMake Warning at cmake/gmxManageOpenMP.cmake:70 (message):
The compiler you are using does not support OpenMP parallelism. This might
hurt your performance a lot, in particular with GPUs. Try using a more
recent version, or a different compiler. For now, we are proceeding by
turning off OpenMP.
Call Stack (most recent call first):
CMakeLists.txt:319 (include)

-- Performing Test CFLAGS_PRAGMA
-- Performing Test CFLAGS_PRAGMA - Success
-- Performing Test CFLAGS_WARN
-- Performing Test CFLAGS_WARN - Success
-- Performing Test CFLAGS_WARN_EXTRA
-- Performing Test CFLAGS_WARN_EXTRA - Success
-- Performing Test CXXFLAGS_PRAGMA
-- Performing Test CXXFLAGS_PRAGMA - Success
-- Performing Test CXXFLAGS_WARN
-- Performing Test CXXFLAGS_WARN - Success
-- Performing Test CXXFLAGS_WARN_EXTRA
-- Performing Test CXXFLAGS_WARN_EXTRA - Success
-- Performing Test CXXFLAGS_DEPRECATED
-- Performing Test CXXFLAGS_DEPRECATED - Success
-- Looking for include file unistd.h
-- Looking for include file unistd.h - found
-- Looking for include file pwd.h
-- Looking for include file pwd.h - found
-- Looking for include file dirent.h
-- Looking for include file dirent.h - found
-- Looking for include file time.h
-- Looking for include file time.h - found
-- Looking for include file sys/time.h
-- Looking for include file sys/time.h - found
-- Looking for include file io.h
-- Looking for include file io.h - not found
-- Looking for include file sched.h
-- Looking for include file sched.h - found
-- Looking for include file regex.h
-- Looking for include file regex.h - found
-- Looking for gettimeofday
-- Looking for gettimeofday - found
-- Looking for sysconf
-- Looking for sysconf - found
-- Looking for nice
-- Looking for nice - found
-- Looking for fsync
-- Looking for fsync - found
-- Looking for _fileno
-- Looking for _fileno - not found
-- Looking for fileno
-- Looking for fileno - found
-- Looking for _commit
-- Looking for _commit - not found
-- Looking for sigaction
-- Looking for sigaction - found
-- Performing Test HAVE_BUILTIN_CLZ
-- Performing Test HAVE_BUILTIN_CLZ - Success
-- Performing Test HAVE_BUILTIN_CLZLL
-- Performing Test HAVE_BUILTIN_CLZLL - Success
-- Looking for clock_gettime in rt
-- Looking for clock_gettime in rt - not found
-- Looking for feenableexcept in m
-- Looking for feenableexcept in m - not found
-- Checking for sched.h GNU affinity API
-- Performing Test sched_affinity_compile
-- Performing Test sched_affinity_compile - Failed
-- Looking for include file mm_malloc.h
-- Looking for include file mm_malloc.h - found
-- Looking for include file malloc.h
-- Looking for include file malloc.h - not found
-- Looking for include file xmmintrin.h
-- Looking for include file xmmintrin.h - found
-- Checking for mm_malloc()
-- Checking for mm_malloc() - supported
-- Looking for posix_memalign
-- Looking for posix_memalign - found
-- Looking for memalign
-- Looking for memalign - not found
-- Check if the system is big endian
-- Searching 16 bit integer
-- Looking for sys/types.h
-- Looking for sys/types.h - found
-- Looking for stdint.h
-- Looking for stdint.h - found
-- Looking for stddef.h
-- Looking for stddef.h - found
-- Check size of unsigned short
-- Check size of unsigned short - done
-- Using unsigned short
-- Check if the system is big endian - little endian
-- Boost version: 1.64.0
-- Found the following Boost libraries:
-- graph
-- Looking for zlibVersion in /usr/lib/libz.dylib
-- Looking for zlibVersion in /usr/lib/libz.dylib - found
-- Could NOT find Hwloc (missing: HWLOC_LIBRARIES HWLOC_INCLUDE_DIRS) (Required is at least version "1.5")
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - found
-- Found Threads: TRUE
-- Looking for include file pthread.h
-- Looking for include file pthread.h - found
-- Atomic operations found
-- Performing Test PTHREAD_SETAFFINITY
-- Performing Test PTHREAD_SETAFFINITY - Failed
-- Check if the system is big endian
-- Searching 16 bit integer
-- Using unsigned short
-- Check if the system is big endian - little endian
-- Looking for inttypes.h
-- Looking for inttypes.h - found
-- Checking for GCC x86 inline asm
-- Checking for GCC x86 inline asm - supported
-- Setting build user/date/host/cpu information
-- Setting build user & time - OK
-- Checking for 64-bit off_t
-- Checking for 64-bit off_t - present
-- Checking for fseeko/ftello
-- Checking for fseeko/ftello - present
-- Checking for SIGUSR1
-- Checking for SIGUSR1 - found
-- Checking for pipe support
-- Looking for C++ include regex
-- Looking for C++ include regex - found
-- Checking for system XDR support
-- Checking for system XDR support - present
-- SIMD instructions disabled
-- Performing Test callconv___vectorcall
-- Performing Test callconv___vectorcall - Success
-- Checking for module 'fftw3f'
-- Found fftw3f, version 3.3.6-pl2
-- Looking for fftwf_plan_r2r_1d in /usr/local/Cellar/fftw/3.3.6-pl2/lib/libfftw3f.dylib
-- Looking for fftwf_plan_r2r_1d in /usr/local/Cellar/fftw/3.3.6-pl2/lib/libfftw3f.dylib - found
-- Looking for fftwf_have_simd_sse in /usr/local/Cellar/fftw/3.3.6-pl2/lib/libfftw3f.dylib
-- Looking for fftwf_have_simd_sse in /usr/local/Cellar/fftw/3.3.6-pl2/lib/libfftw3f.dylib - not found
-- Looking for fftwf_have_sse in /usr/local/Cellar/fftw/3.3.6-pl2/lib/libfftw3f.dylib
-- Looking for fftwf_have_sse in /usr/local/Cellar/fftw/3.3.6-pl2/lib/libfftw3f.dylib - not found
-- Looking for fftwf_have_simd_sse2 in /usr/local/Cellar/fftw/3.3.6-pl2/lib/libfftw3f.dylib
-- Looking for fftwf_have_simd_sse2 in /usr/local/Cellar/fftw/3.3.6-pl2/lib/libfftw3f.dylib - found
objdump: Unknown command line argument '--reloc'. Try: '/Library/Developer/CommandLineTools/usr/bin/objdump -help'
objdump: Did you mean '-color'?
-- Using external FFT library - FFTW3
-- Looking for dgemm

-- Looking for dgemm
- found
-- A library with BLAS API found.
-- Looking for cheev

-- Looking for cheev
- found
-- A library with LAPACK API found.
-- Checking for dlopen
-- Performing Test HAVE_DLOPEN
-- Performing Test HAVE_DLOPEN - Success
-- Checking for dlopen - found
-- Using dynamic plugins (e.g VMD-supported file formats)
-- Checking for suitable VMD version
-- VMD plugins not found. Path to VMD can be set with VMDDIR.
-- Using manually set binary suffix: "_fda"
-- Using manually set library suffix: ""
-- Found PythonInterp: /usr/local/bin/python2.7 (found suitable version "2.7.13", minimum required is "2.7")
-- Performing Test HAS_NO_UNUSED_VARIABLE
-- Performing Test HAS_NO_UNUSED_VARIABLE - Success
-- Performing Test HAS_NO_UNUSED_PARAMETER
-- Performing Test HAS_NO_UNUSED_PARAMETER - Success
-- Performing Test HAS_NO_DEPRECATED_REGISTER
-- Performing Test HAS_NO_DEPRECATED_REGISTER - Success
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/cs/gromacs-fda-2016.1-fda2.8/build

and after typing make, it was showing error as follow

[ 32%] Building CXX object src/gromacs/CMakeFiles/libgromacs.dir/gmxana/fda/Graph.cpp.o
[ 32%] Building CXX object src/gromacs/CMakeFiles/libgromacs.dir/gmxana/fda/Helpers.cpp.o
[ 32%] Building CXX object src/gromacs/CMakeFiles/libgromacs.dir/gmxana/fda/Node.cpp.o
[ 32%] Building CXX object src/gromacs/CMakeFiles/libgromacs.dir/gmxana/fda/PDB.cpp.o
/Users/cs/gromacs-fda-2016.1-fda2.7.1/src/gromacs/gmxana/fda/PDB.cpp:79:12: error: use of undeclared identifier 'sqrt'
int dim = sqrt(forceMatrix.size());
^
1 error generated.
make[2]: *** [src/gromacs/CMakeFiles/libgromacs.dir/gmxana/fda/PDB.cpp.o] Error 1
make[1]: *** [src/gromacs/CMakeFiles/libgromacs.dir/all] Error 2
make: *** [all] Error 2

Is there anything wrong with my gcc version? And do you know how to fix the compiling error?
Thank you

The missing OpenMP support of clang is only a warning. The compiler stops at the undeclared identifier 'sqrt', likely because std or cmath is missing. I will check this.

But the comment of @joanwa is also important:

If you are running on Mac OS X, the best option is the Intel compiler. Both clang and gcc will work, but they produce lower performance and each have some shortcomings. clang 3.8 now offers support for OpenMP, and so may provide decent performance.

at http://manual.gromacs.org/documentation/2016.2/install-guide/index.html

Thank you, I would try to update clang verstion to 3.8

Compilation and tests works fine using Linux clang 4.0. Somehow the Apple clang compiler didn't find the sqrt function in the global namespace which should be defined in math.h. As it is anyway better to use the std::sqrt function, I will change this in all branches.

Apple Clang is now also tested at Travis-CI: https://travis-ci.org/HITS-MBM/gromacs-fda