[gmx-users] cmake + Intel + CUDA + gcc 4.1.2 = bad time

Malcolm Tobias mtobias at wustl.edu
Tue Jul 2 20:59:08 CEST 2013


I'm attempting to build gromacs 4.6.2 with a bit of everything: CUDA support, MPI, Intel compilers, etc. using the new cmake system.  I've set CC and CXX to specify the Intel compilers:

[root at login002 build]# echo $CC

[root at login002 build]# echo $CXX

and sourced the setup script for good measure:

/export/intel/composer_xe_2013.1.117/bin/compilervars.sh intel64

During cmake, everything appears to be happy:

[root at login002 build]# /export/cmake-2.8.1/bin/cmake -DGMX_GPU=ON DCUDA_TOOLKIT_ROOT_DIR=/export/cuda-5.0 -DGMX_BUILD_OWN_FFTW=ON -DGMX_FFT_LIBRARY=mkl -DGMX_MPI=ON -DCMAKE_INSTALL_PREFIX=/export/gromacs-4.6.2 .. | tee cmake.out
-- The C compiler identification is Intel
-- Check for working C compiler: /export/intel/composer_xe_2013.1.117/bin/intel64/icc
-- Check for working C compiler: /export/intel/composer_xe_2013.1.117/bin/intel64/icc -- works
-- Looking for NVIDIA GPUs present in the system
-- Could not detect NVIDIA GPUs
-- Found CUDA: /usr/local/cuda
-- MPI is not compatible with thread-MPI. Disabling thread-MPI.
-- Found MPI: /export/openmpi-1.4.3/lib/libmpi_cxx.so
-- Setting the nvcc host compiler to: /export/intel/composer_xe_2013.1.117/bin/intel64/icc
-- Setting Intel Compiler compatibity mode to gcc 4.5 for nvcc host compilation
-- Using external FFT library - Intel MKL

But I quickly get a compile-time error:

[root at login002 build]# make
-- Configuring done
-- Generating done
-- Build files have been written to: /export/src/gromacs-4.6.2/build
[  0%] Building NVCC (Device) object src/gmxlib/cuda_tools/./cuda_tools_generated_copyrite_gpu.cu.o
/usr/include/c++/4.1.2/bits/cpp_type_traits.h(358): error: expected an identifier

/usr/include/c++/4.1.2/bits/cpp_type_traits.h(371): error: expected an identifier

So something about the cmake process is reverting to the default GNU compilers (4.1.2) when it's trying to build some of the CUDA stuff.  I tried tricking it to use something more recent:

alias /usr/bin/gcc44 gcc
alias g++=/usr/bin/g++44 

But I still see the path pointing to 4.1.2.  Any suggestions on things to try?  


Malcolm Tobias

More information about the gromacs.org_gmx-users mailing list