[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