[gmx-users] Installation on Ubuntu 12.04LTS

Mare Libero mareliber27 at yahoo.com
Sun Jun 30 01:06:17 CEST 2013

Thanks guys! I think it's working now. Just in case others may run into the same difficulties, I am summarizing below what worked for me.

I installed both gcc-4.4 and gcc-4.7 from synaptic. Then updated CUDA to 5.0, with the package "cuda_5.0.35_linux_64_ubuntu11.10-1.run" available from the nvidia site. Compiling cuda toolkit will require gcc-4.4, so I had to temporarily change some links:
sudo ln -s /usr/bin/gcc-4.4 /usr/bin/gcc
sudo ln -s /usr/bin/g++-4.4 /usr/bin/g++

Then I installed the toolkit and the samples:
sudo ./cuda_5.0.35_linux_64_ubuntu11.10-1.run -toolkit

Installing the CUDA samples required some extra packages on my system:
sudo apt-get install freeglut3
sudo ln -s /usr/lib/x86_64-linux-gnu/libglut.so.3 /usr/lib/libglut.so
sudo ./cuda_5.0.35_linux_64_ubuntu11.10-1.run -samples

Then update my .bashrc:
export LD_LIBRARY_PATH=/usr/local/cuda-5.0/lib64/:/usr/local/cuda-5.0/lib:$LD_LIBRARY_PATH
export PATH=/usr/local/cuda-5.0/bin/:$PATH

Finally confirm that CUDA 5.0 is the defoult compiler:
nvcc -version

Now I changed back the gcc links to install gromacs:
sudo ln -s /usr/bin/gcc-4.7 /usr/bin/gcc
sudo ln -s /usr/bin/g++-4.7 /usr/bin/g++

CUDA apparently check which gcc version is used, and will complain for gcc version above 4.6. Gromacs on the other end will require gcc-4.7. I found a solution on a blog, and comment out the compiler-check in the CUDA header file "/usr/local/cuda-5.0/include/host_config.h"

Comment out:
//#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ > 6)
//#error -- unsupported GNU version! gcc 4.7 and up are not supported!
//#endif /* __GNUC__> 4 || (__GNUC__ == 4 && __GNUC_MINOR__ > 6) */

Now I could cmake/make/install gromacs:
sudo make install

And add the /usr/local/gromacs/bin/ directory to my path.

I am still trying to fix the issues with the intel compiler. The gcc compiled version benchmark at 52ns/day with the lysozyme in water tutorial.

Thanks again.

 From: Szilárd Páll <szilard.pall at cbr.su.se>
To: Mare Libero <mareliber27 at yahoo.com>; Discussion list for GROMACS users <gmx-users at gromacs.org> 
Sent: Thursday, June 27, 2013 10:47 AM
Subject: Re: [gmx-users] Installation on Ubuntu 12.04LTS

On Thu, Jun 27, 2013 at 12:57 PM, Mare Libero <mareliber27 at yahoo.com> wrote:
> Hello everybody,
> Does anyone have any recommendation regarding the installation of gromacs 4.6 on Ubuntu 12.04? I have the nvidia-cuda-toolkit that comes in synaptic (4.0.17-3ubuntu0.1 installed in /usr/lib/nvidia-cuda-toolkit) and the drivers 304.88.
> Apparently, this is not compatible with gcc-4.5 and higher. When I issue:
> $ cmake .. -DGMX_GPU=ON -DCUDA_TOOLKIT_ROOT_DIR=/usr/lib/nvidia-cuda-toolkit -DGMX_BUILD_OWN_FFTW=ON
> $ make
> the compilation ends with:
> In file included from /usr/lib/nvidia-cuda-toolkit/include/cuda_runtime.h:59:0,
>                  from <command-line>:0:
> /usr/include/host_config.h:82:2: error: #error -- unsupported GNU version! gcc 4.5 and up are not supported!
> If I downgrade to gcc-4.4 this error disappears, but gromacs compilation fails with a different error:
> cc1plus: error: unrecognized command line option "-fexcess-precision=fast"
> CMake Error at cuda_tools_generated_pmalloc_cuda.cu.o.cmake:198 (message):
>   Error generating
>   /home/me/Downloads/gromacs-4.6.2/build/src/gmxlib/cuda_tools/CMakeFiles/cuda_tools.dir//./cuda_tools_generated_pmalloc_cuda.cu.o
> make[2]: *** [src/gmxlib/cuda_tools/CMakeFiles/cuda_tools.dir/./cuda_tools_generated_pmalloc_cuda.cu.o] Error 1
> make[1]: *** [src/gmxlib/cuda_tools/CMakeFiles/cuda_tools.dir/all] Error 2
> make: *** [all] Error 2

I guess what happens is that you are using gcc 4.5 for the CPU code
and gcc 4.4 as the nvcc host compiler. However, the compiler options
used for gcc (CMAKE_CXX_FLAGS) get propagated to nvcc;
-fexcess-precision=fast is supported by gcc 4.5, but not by 4.4, hence
the error when compiling CUDA code.

> Also, I tried the Intel compilers that comes with the non-commercial  Intel c++ composer XE (which I believe are recommended). The compilation produces a number of warnings, and then dies with the following error:
> $ CC=/opt/intel/bin/icc  cmake .. -DGMX_GPU=ON -DCUDA_TOOLKIT_ROOT_DIR=/usr/lib/nvidia-cuda-toolkit -DGMX_BUILD_OWN_FFTW=ON
> [ 63%] Building C object share/template/CMakeFiles/template.dir/template.c.o
> make[2]: *** No rule to make target `src/gmxlib/libgmx.so.8', needed by `share/template/template'.  Stop.
> make[1]: *** [share/template/CMakeFiles/template.dir/all] Error 2
> make: *** [all] Error 2

This should work, but CUDA 4.0 is ancient surely does not support icc
13. I suggest that you get CUDA 5.0 and use gcc 4.7 (or a new icc). If
you really want to stick to CUDA 4.0, try using gcc 4.4 as the general
C++ compiler (CMAKE_CXX_COMPILER) which should avoid the above error.

> Thanks in advance for your help,
> Al
> --
> gmx-users mailing list    gmx-users at gromacs.org
> http://lists.gromacs.org/mailman/listinfo/gmx-users
> * Please search the archive at http://www.gromacs.org/Support/Mailing_Lists/Search before posting!
> * Please don't post (un)subscribe requests to the list. Use the
> www interface or send it to gmx-users-request at gromacs.org.
> * Can't post? Read http://www.gromacs.org/Support/Mailing_Lists

More information about the gromacs.org_gmx-users mailing list