[gmx-users] Compilation issues with GROMACS 5 beta 2

jk broodkiller at gmail.com
Mon Mar 17 13:11:31 CET 2014


Hello everyone, my name is Jacek and I am new to GROMACS :) I have recently
downloaded and tried to compile the second beta of GROMACS 5, and run into
some issues along the way, so I decided to ask around and see if I can find
some help. Basically, what I wanted to do was to compile a few different
variants of GROMACS 5 to see how they perform against each other. I was
interested in comparing single and double precision builds, CUDA vs no CUDA
and MPI vs no MPI, in various combinations. Eventually though, I have only
managed to succesfully compile a single-precision, CUDA-extended and
MPI-paralellized build, and none other.


Now to the details:
(1) Compiling with -DGMX_DOUBLE=OFF, -DGMX_MPI=OFF and -DGMX_GPU=OFF
terminates early with a fatal error of lacking MPI headers:

[  3%] Building C object
src/gromacs/CMakeFiles/libgromacs.dir/gmxpreprocess/calc_verletbuf.c.o
In file included from
/media/sda4/soft/struct/gromacs-5.0-beta2/src/gromacs/legacyheaders/types/commrec.h:40:0,
                 from
/media/sda4/soft/struct/gromacs-5.0-beta2/src/gromacs/legacyheaders/coulomb.h:43,
                 from
/media/sda4/soft/struct/gromacs-5.0-beta2/src/gromacs/gmxpreprocess/calc_verletbuf.c:49:
/media/sda4/soft/struct/gromacs-5.0-beta2/src/gromacs/legacyheaders/types/../../utility/gmxmpi.h:62:17:
fatal error: mpi.h: No such file or directory
compilation terminated.
make[2]: ***
[src/gromacs/CMakeFiles/libgromacs.dir/gmxpreprocess/calc_verletbuf.c.o]
Error 1
make[1]: *** [src/gromacs/CMakeFiles/libgromacs.dir/all] Error 2
make: *** [all] Error 2

(2) Compiling with -DGMX_DOUBLE=OFF, -DGMX_MPI=OFF and -DGMX_GPU=ON
terminates exactly the same, but after some CUDA stuff is compiled.

(3) Compiling with -DGMX_DOUBLE=OFF, -DGMX_MPI=ON and -DGMX_GPU=OFF
terminates at link with a fatal error of lacking CUDA-specific objects:

[ 92%] Building CXX object
share/template/CMakeFiles/template.dir/template.cpp.o
Linking CXX executable ../../bin/template
../../lib/libgromacs_mpi.so.0.0.0: undefined reference to
`nbnxn_cuda_init_const'
(...some more undefined refs)
../../lib/libgromacs_mpi.so.0.0.0: undefined reference to
`pick_compatible_gpus'
collect2: ld returned 1 exit status
make[2]: *** [bin/template] Error 1
make[1]: *** [share/template/CMakeFiles/template.dir/all] Error 2
make: *** [all] Error 2

(4) Compiling with -DGMX_DOUBLE=OFF, -DGMX_GPU=ON and -DGMX_MPI=ON works
fine, as mentioned before.

(5) Compiling with -DGMX_DOUBLE=ON, -DGMX_MPI=OFF and -DGMX_GPU=OFF
terminates identically as (1)

(6) Compiling with -DGMX_DOUBLE=ON, -DGMX_MPI=ON and -DGMX_GPU=OFF
terminates identically as (3)


Each recompilation attempt was made in a fresh direction, with all the files
from a previous build removed, so as to avoid any conflicts. I can post
links to complete compilation logs to PasteBin, if necessary. On the
technical side of things, I am running a 64-bit Ubuntu 12.04 system on a
quad-core i7-860 CPU, with 16GB of RAM and a brand new GTX 780Ti gfx card on
hand-compiled CUDA 5.5 (driver+toolkit).
Of the relevant libs, I have the latest FFTW-3.3.3 compiled nicely in single
('--enable-float --enable-shared --enable-sse2') and double precision
('--enable-shared --enable-sse2') variants stored in separate folders, which
I pass to Cmake through the -DFFTW(F)_LIBRARY parameter. I have OpenMPI
1.4.3.2, MPICH2 and libboost 1.46.1, all from the offical Ubuntu repo.

My guess is that the build system somehow disregards the flags sent to it
and wants MPI/CUDA files even when directly told to skip them. Any ideas on
how to fix/work around this?


--
View this message in context: http://gromacs.5086.x6.nabble.com/Compilation-issues-with-GROMACS-5-beta-2-tp5015221.html
Sent from the GROMACS Users Forum mailing list archive at Nabble.com.


More information about the gromacs.org_gmx-users mailing list