On 15/10/2011 4:48 AM, Mirco Wahab wrote:
Dear Gromacs users,

I'm trying to build an Intel-MKL-linked version of
gromacs 4.5.5 and can't figure how to do that using
cmake.

There are already some (new) instructions on the GROMACS
web site regarding Intel icc but not how to use the
corresponding mkl.

On my system, the Intel 2011 (non commercial) compiler suite
is installed in:
  CCDIR=/opt/intel/composer_xe_2011_sp1.6.233/bin/intel64

and it's MKL is located here:
  MKL_FFTW_INCLUDE=$MKLROOT/include/fftw
  MKL_FFTW_LIBDIR=$MKLROOT/lib/intel64

From the examples given in the Gromacs docs (web), I came up
with the following (non-working) cmake invocation:

--- 8< --- [cut here] ---------------

export GMXVERSION=gromacs-4.5.5
export CCDIR=/opt/intel/composer_xe_2011_sp1.6.233/bin/intel64
export MKL_FFTW_INCLUDE=$MKLROOT/include/fftw
export MKL_FFTW_LIBDIR=$MKLROOT/lib/intel64
export CXX=icpc
export CC=icc

cmake ../$GMXVERSION                         \
      -DGMX_FFT_LIBRARY=mkl                  \
      -DFFTW3F_INCLUDE_DIR=$MKL_FFTW_INCLUDE \
      -DMKL_LIBRARIES=$MKL_FFTW_LIBDIR       \
      -DCMAKE_INSTALL_PREFIX=/opt/gromacs455 \
      -DGMX_X11=OFF                          \
      -DCMAKE_CXX_COMPILER=${CCDIR}/icpc     \
      -DCMAKE_C_COMPILER=${CCDIR}/icc        \
      -DGMX_MPI=OFF                          \
      -DGMX_PREFER_STATIC_LIBS=OFF

------------------ [ereh tuc] --- >8 ---

Of course, the setting of *-DMKL_LIBRARIES*=$MKL_FFTW_LIBDIR
is wrong, the specific libraries are expected here.
But how? I didn't find a solution how to touch the
LDFLAGS in the correct way.

I use

ccmake ..\
-DGMX_FFT_LIBRARY=mkl "\
-DMKL_LIBRARIES=${MKL}/lib/em64t/libmkl_intel_thread.so;${MKL}/lib/em64t/libmkl_lapack.so;${MKL}/lib/em64t/libmkl_core.so;${MKL}/lib/em64t/libmkl_em64t.a;${MKL}/lib/em64t/libguide.so;/usr/lib64/libpthread.so" \
-DMKL_INCLUDE_DIR=${MKL}/include\
-DGMX_MPI=ON\
-DGMX_THREADS=OFF

in response to reading the MKL documentation for my system - you will need to customize this.

Mark

Before cmake has been priorized, a simple 'configure' call
would have done it:

--- 8< --- [cut here] ---------------

MINC=/opt/intel/composerxe/mkl/include
MLIB=/opt/intel/composerxe/mkl/lib/intel64
ILIB=/opt/intel/composerxe/compiler/lib/intel64

../gromacs-4.5.4/configure       \
          CC=icc CXX=icpc        \
          CPPFLAGS="-I${MINC}"   \
          LDFLAGS="-L${ILIB} -L${MLIB} -lmkl_intel_ilp64 -lmkl_core  \
                       -lmkl_lapack95_ilp64 -lmkl_blas95_ilp64       \
                       -lmkl_intel_thread -liomp5 -lpthread"         \
        --prefix=/opt/gromacs454 \
        --with-fft=mkl           \
        --with-external-blas     \
        --with-external-lapack   \
        --without-x              \
        --program-suffix=_t

------------------ [ereh tuc] --- >8 ---


How can this be done using cmake?


Thank you in advance.

r^b

--
gmx-users mailing list    gmx-users@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-requ...@gromacs.org.
Can't post? Read http://www.gromacs.org/Support/Mailing_Lists

Reply via email to