[gmx-users] Installation on Ubuntu 12.04LTS

Szilárd Páll szilard.pall at cbr.su.se
Thu Jul 4 19:13:05 CEST 2013


As some may end up following these steps let me make a few comments.

On Sun, Jun 30, 2013 at 1:06 AM, Mare Libero <mareliber27 at yahoo.com> wrote:
> 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

Actually, AFAIK it's the compilation of the nvidia kernel module that
asks for the same compiler to be used as the one the kernel was
compiled with. However, if you really have Ubuntu 12.04 it could not
be 4.4 that the driver installation asked for (as 12.04 comes with gcc
4.6).

> 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++

That's rather dirty, you could use alternatives instead (see man
update-alternatives).

> 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

I don't remember ever having to employ such hacks. In general, I would
strongly advise against such practices as messing with your standard
lib locations could cause update/installation issues down the road.

> 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++

Like above, using alternatives is a better practice.

>
> 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

GROMACS does not *require* 4.6, but it is strongly recommended.

> 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) */

As it has been discussed on the list before, it's typically safe to do
this, but be warned that sometimes (although rarely) using
non-officially supported combination of gcc & nvcc can lead to
compilation issues (workarounds available online).

>
> Now I could cmake/make/install gromacs:
> cmake .. -DGMX_GPU=ON -DGMX_BUILD_OWN_FFTW=ON
> make
> sudo make install
>
> And add the /usr/local/gromacs/bin/ directory to my path.

Source /usr/local/gromacs/bin/GMXRC instead - you get the path set up
and more (e.g. flag/option autocomplete).

>
> 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.

icc 12 and 13 should just work with CUDA 5.0.

Cheers,
--
Szilárd

>
> 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