[gmx-users] building GROMACS 4.5.4 on Power6 with CMAKE

Mark Abraham Mark.Abraham at anu.edu.au
Fri Sep 9 08:44:25 CEST 2011


On 9/09/2011 1:46 AM, Marcin Zielinski wrote:
> Hi there,
>
> I've been having hard times the past days trying to build SP and DP 
> binaries
> of GROMACS 4.5.4 on our Power6 system, here at SARA, using IBM XL 
> compilers,
> LAPACK, BLAS, GSL and FFTW3.
>
> At the end, I think I've succeeded and had to use two dirty hacks to 
> avoid problems.
> I'm waiting now for results confirmation from friend of mine.
>
> First thing, small patch to cmake/FindLAPACK.cmake
> -    set(CMAKE_REQUIRED_LIBRARIES ${_flags} "-Wl,--start-group
> ${${LIBRARIES}} ${_blas};-Wl,--end-group" ${_threads})
> +    set(CMAKE_REQUIRED_LIBRARIES ${_flags} "-Wl,--start-group
> ${${LIBRARIES}} ${_blas} -Wl,--end-group" ${_threads})
> (Note the removed semicolon. )

Thanks. Fixed for next version.

>
> Create Your build directory, I had source dir and build dir in the 
> same root dir.
>
> Second thing, before issuing make (and after cmake) modify 
> src/config.h inside Your build directory:
> line 45: remove ## _ (should look like this: #define 
> F77_FUNC(name,NAME)     name)
> line 48: remove ## _ (should look like this: #define 
> F77_FUNC_(name,NAME)    name)

If you set GMX_ACCELERATION=POWER6 this (and a few other things) should 
happen automatically.

Mark

>
> After that, cmake command, for sp and tools only:
> module load lapack fftw3/3.2.2 gsl/1.15 cmake
>
> cmake \
>       -DFFTW3F_INCLUDE_DIR=<path to fftw3>/include \
>       -DFFTW3F_LIBRARIES=<path to fftw3>/lib/libfftw3f.a \
>       -DGMX_EXTERNAL_BLAS=ON \
>       -DBLAS_LIBRARIES=<path to gsl>/lib/libgslcblas.so \
>       -DGMX_EXTERNAL_LAPACK=ON \
>       -DLAPACK_LIBRARIES=<path to lapack>/lib/liblapack.a \
>       -DGMX_GSL=ON \
>       -DCMAKE_INSTALL_PREFIX=<install dir>/gromacs/4.5.4-sp \
>       -DGMX_X11=OFF \
>       -DCMAKE_CXX_COMPILER=mpCC \
>       -DCMAKE_CXX_FLAGS="-V -q64 -O3 -qarch=pwr6 -qtune=pwr6 -qomp 
> -qessl" \
>       -DCMAKE_CXX_FLAGS_RELEASE="-V -q64 -O3 -qarch=pwr6 -qtune=pwr6 
> -qomp -qessl" \
>       -DCMAKE_C_COMPILER=mpcc \
>       -DCMAKE_C_FLAGS="-V -q64 -O3 -qarch=pwr6 -qtune=pwr6 -qomp 
> -qessl" \
>       -DCMAKE_C_FLAGS_RELEASE="-V -q64 -O3 -qarch=pwr6 -qtune=pwr6 
> -qomp -qessl" \
>       -DCMAKE_F77_COMPILER=mpfort \
>       -DCMAKE_F77_FLAGS="-V -q64 -O3 -qarch=pwr6 -qtune=pwr6 -qomp 
> -qessl" \
>       -DCMAKE_F77_FLAGS_RELEASE="-V -q64 -O3 -qarch=pwr6 -qtune=pwr6 
> -qomp -qessl" \
>       -DCMAKE_EXE_LINKER_FLAGS="-L<path to fftw3>/lib -L/usr/lib64 
> -L<path to gsl>/lib -L/opt/ibmcmp/xlsmp/1.8/lib64 
> -L/sara/sw/lapack/3.3.1-xlf12/lib -L/opt/ibmcmp/xlf/12.1/lib64 
> -llapack -lgslcblas -lgsl -lesslsmp -lxlf90_r -lxlsmp -lxlfmath 
> -lxlomp_ser " \
>       -DCMAKE_SHARED_LINKER_FLAGS="-L<path to fftw3>/lib -L/usr/lib64 
> -L<path to gsl>/lib -L<path to xlf>/xlsmp/1.8/lib64 -L<path to 
> lapack>/lib -L<path to xlf>/xlf/12.1/lib64 -llapack -lgslcblas -lgsl 
> -lesslsmp -lxlf90_r -lxlsmp -lxlfmath -lxlomp_ser" \
>       -DCMAKE_MODULE_LINKER_FLAGS="-L<path to fftw3>/lib -L/usr/lib64 
> -L<path to gsl>/lib -L<path to xlf>/xlsmp/1.8/lib64 -L<path to 
> lapack>/lib -L<path to xlf>/xlf/12.1/lib64 -llapack -lgslcblas -lgsl 
> -lesslsmp -lxlf90_r -lxlsmp -lxlfmath -lxlomp_ser" \
>       -DGMX_MPI=OFF \
>       ../gromacs-4.5.4
>
> From here, there's a straight way for a parallel build for mdrun and 
> same goes for double precision.
> Hope this is going to help to anyone having similar problems as I did.
>
> good luck,




More information about the gromacs.org_gmx-users mailing list