[gmx-users] Building gromacs on CRAY XC40

Szilárd Páll pall.szilard at gmail.com
Mon Oct 5 17:46:44 CEST 2015


On Mon, Oct 5, 2015 at 6:15 AM, kevin chen <fch6699 at gmail.com> wrote:

> Dear Gromacs users,
>
> I am trying to build gromacs on our latest supercomputer CRAY XC40, but the
> following errors using gcc and fftw. Here's my list of module loaded and
> install script, can anyone give any instructions?
>
> =========================================================================
> Currently Loaded Modulefiles:
>   1) modules/3.2.6.7                       8) gcc/4.9.3
>        15) xpmem/0.1-2.0502.55507.3.2.ari
>   2) eswrap/1.1.0-1.020200.1231.0          9) cray-libsci/13.1.0
>         16) dvs/2.5_0.9.0-1.0502.1873.1.145.ari
>   3) switch/1.0-1.0502.54233.2.96.ari     10)
> udreg/2.3.2-1.0502.9275.1.12.ari     17) alps/5.2.1-2.0502.9041.11.6.ari
>   4) craype-network-aries                 11) ugni/5.0-1.0502.9685.4.24.ari
>        18) rca/1.0.0-2.0502.53711.3.127.ari
>   5) craype/2.4.1                         12)
> pmi/5.0.8-1.0000.10843.170.1.ari     19) atp/1.8.3
>   6) cray-mpich/7.2.4                     13)
> dmapp/7.0.1-1.0502.9501.5.219.ari    20) PrgEnv-gnu/5.2.40
>   7) craype-ivybridge                     14)
> gni-headers/3.0-1.0502.9684.5.2.ari  21) fftw/3.3.4.4
> ===========================================================================
> export CXX=`which cc`
> export CC=`which cc`
> export MPICC=`which cc`
> export F77=`which ftn`
> export INSTALL_PATH=/home1/03024/chenk/Software/Gromacs/install
>
> mkdir g_single_parallel
> cd g_single_parallel
>
>
> /home1/03024/chenk/Software/cmake/install/bin/cmake .. \
> -DCMAKE_INSTALL_PREFIX=$INSTALL_PATH \
> -DGMX_FFT_LIBRARY=fftw3 \
> -DGMX_X11=OFF \
> -DBUILD_SHARED_LIBS=OFF \
> -DGMX_PREFER_STATIC_LIBS=ON \
> -DGMX_BUILD_MDRUN_ONLY=OFF \
> -DGMX_MPI=ON -DGMX_OPENMP=ON \
> -DGMX_XML=OFF \
> -DGMX_SOFTWARE_INVSQRT=OFF \
> -DGMX_SKIP_DEFAULT_CFLAGS=ON \
> -DCMAKE_C_COMPILER=cc \
> -DCMAKE_C_FLAGS="-fomit-frame-pointer -finline-functions -funroll-all-loops
> -O3 " \
> -DCMAKE_CXX_COMPILER=cc \
> -DCMAKE_CXX_FLAGS="-O3" \
>

"cc" should typically be a Cray compiler wrapper, so Mark's guess about the
compiler rather than the wrapper being using is likely not the reason for
the errors.

I think the issue is that you seem to want to override _all_ GROMACS
default compiler flags (BTW, amy I ask why do you want to do that?). In any
case, if you believe you have something that works better for you or you
want to test flags, you're free to do that, but you can't omit essential
flags. In this case you seem to be missing those that enable SIMD
intrinsics, that is -mavx2 (or in some gcc versions that's not supported,
so you need to use -march=core-avx2).

AFAICT you're not adding any of those flags and that would explain why does
your build fail to recognize SIMD instrinsics.

Let me know if your issue is solved and it would be interesting to hear if
found a combination of flags that gives better performance than our default
ones!

Cheers,
--
Szilárd



> -DGMX_DEFAULT_SUFFIX=ON \
> -DGMX_EXTERNAL_BOOST=OFF \
> -DGMX_BUILD_SHARED_EXE=off
>
> make -j 12
> make install
> =========================================================================
> Error messages:
>
> In file included from
>
> /opt/gcc/4.9.3/snos/lib/gcc/x86_64-suse-linux/4.9.3/include/immintrin.h:61:0,
>                  from
>
> /home1/03024/chenk/Software/Gromacs/GNU_FFTW/gromacs-5.0.6/src/gromacs/simd/impl_x86_avx2_256/impl_x86_avx2_256.h:40,
>                  from
>
> /home1/03024/chenk/Software/Gromacs/GNU_FFTW/gromacs-5.0.6/src/gromacs/simd/simd.h:118,
>                  from
>
> /home1/03024/chenk/Software/Gromacs/GNU_FFTW/gromacs-5.0.6/src/gromacs/gmxlib/bondfree.c:62:
>
> /home1/03024/chenk/Software/Gromacs/GNU_FFTW/gromacs-5.0.6/src/gromacs/simd/simd_math.h:
> In function 'gmx_simd_rsqrt_iter_f':
>
> /opt/gcc/4.9.3/snos/lib/gcc/x86_64-suse-linux/4.9.3/include/fmaintrin.h:159:1:
> error: inlining failed in call to always_inline '_mm256_fnmadd_ps': target
> specific option mismatch
>  _mm256_fnmadd_ps (__m256 __A, __m256 __B, __m256 __C)
>  ^
> In file included from
>
> /home1/03024/chenk/Software/Gromacs/GNU_FFTW/gromacs-5.0.6/src/gromacs/simd/simd.h:118:0,
>                  from
>
> /home1/03024/chenk/Software/Gromacs/GNU_FFTW/gromacs-5.0.6/src/gromacs/gmxlib/bondfree.c:62:
>
> /home1/03024/chenk/Software/Gromacs/GNU_FFTW/gromacs-5.0.6/src/gromacs/simd/impl_x86_avx2_256/impl_x86_avx2_256.h:61:36:
> error: called from here
>  #define gmx_simd_fmadd_f           _mm256_fmadd_ps
>                                     ^
>
> /home1/03024/chenk/Software/Gromacs/GNU_FFTW/gromacs-5.0.6/src/gromacs/simd/simd_math.h:146:12:
> note: in expansion of macro 'gmx_simd_fmadd_f'
>      return gmx_simd_fmadd_f(gmx_simd_fnmadd_f(x, gmx_simd_mul_f(lu, lu),
> gmx_simd_set1_f(1.0f)), gmx_simd_mul_f(lu, gmx_simd_set1_f(0.5f)), lu);
>             ^
> In file included from
>
> /opt/gcc/4.9.3/snos/lib/gcc/x86_64-suse-linux/4.9.3/include/immintrin.h:61:0,
>                  from
>
> /home1/03024/chenk/Software/Gromacs/GNU_FFTW/gromacs-5.0.6/src/gromacs/simd/impl_x86_avx2_256/impl_x86_avx2_256.h:40,
>                  from
>
> /home1/03024/chenk/Software/Gromacs/GNU_FFTW/gromacs-5.0.6/src/gromacs/simd/simd.h:118,
>                  from
>
> /home1/03024/chenk/Software/Gromacs/GNU_FFTW/gromacs-5.0.6/src/gromacs/gmxlib/bondfree.c:62:
>
> /opt/gcc/4.9.3/snos/lib/gcc/x86_64-suse-linux/4.9.3/include/fmaintrin.h:63:1:
> error: inlining failed in call to always_inline '_mm256_fmadd_ps': target
> specific option mismatch
>  _mm256_fmadd_ps (__m256 __A, __m256 __B, __m256 __C)
>  ^
> In file included from
>
> /home1/03024/chenk/Software/Gromacs/GNU_FFTW/gromacs-5.0.6/src/gromacs/gmxlib/bondfree.c:63:0:
>
> /home1/03024/chenk/Software/Gromacs/GNU_FFTW/gromacs-5.0.6/src/gromacs/simd/simd_math.h:146:5:
> error: called from here
>      return gmx_simd_fmadd_f(gmx_simd_fnmadd_f(x, gmx_simd_mul_f(lu, lu),
> gmx_simd_set1_f(1.0f)), gmx_simd_mul_f(lu, gmx_simd_set1_f(0.5f)), lu);
>      ^
> [ 51%] Building C object
> src/gromacs/CMakeFiles/libgromacs.dir/gmxlib/nrnb.c.o
> make[2]: *** [src/gromacs/CMakeFiles/libgromacs.dir/gmxlib/bondfree.c.o]
> Error 1
> make[2]: *** Waiting for unfinished jobs....
> make[1]: *** [src/gromacs/CMakeFiles/libgromacs.dir/all] Error 2
> make: *** [all] Error 2
> [  0%] Building C object
> src/gromacs/CMakeFiles/libgromacs.dir/gmxlib/bondfree.c.o
> In file included from
>
> /opt/gcc/4.9.3/snos/lib/gcc/x86_64-suse-linux/4.9.3/include/immintrin.h:61:0,
>
> =========================================================================
>
> Thanks in advance!
>
> Kevin
> --
> Gromacs Users mailing list
>
> * Please search the archive at
> http://www.gromacs.org/Support/Mailing_Lists/GMX-Users_List before
> posting!
>
> * Can't post? Read http://www.gromacs.org/Support/Mailing_Lists
>
> * For (un)subscribe requests visit
> https://maillist.sys.kth.se/mailman/listinfo/gromacs.org_gmx-users or
> send a mail to gmx-users-request at gromacs.org.
>


More information about the gromacs.org_gmx-users mailing list