[gmx-users] gromacs 4.6.7 plumed -Segmentation fault

Mark Abraham mark.j.abraham at gmail.com
Fri Oct 23 19:03:13 CEST 2015


Hi,

I think -DGMX_BUILD_SHARED_EXE=off is supposed to handle this - see
http://www.gromacs.org/Documentation/Installation_Instructions_5.0#static-linking.
Or there are environment variables you can set that force the Cray tools to
do dynamic vs static linking - check your local docs.

As you can see on that Redmine, we're trying to get Cray to be useful
solving these problems in a general way, but progress is slow :-(

Mark

On Fri, Oct 23, 2015 at 6:17 PM Ana Marija <sokovic.anamarija at gmail.com>
wrote:

> or should I do just this before cmake step?
>
> export CFLAGS="-static"
> export CXXFLAGS="-static"
>
>
>
> On Fri, Oct 23, 2015 at 11:12 AM, Ana Marija <sokovic.anamarija at gmail.com>
> wrote:
>
>> the above was reported here as a bug, but I am not sure where and how
>> should I put this flag: CFLAGS=CXXFLAGS=-static
>>
>> http://redmine.gromacs.org/issues/1641
>>
>> does is just go under cmake like: -DCFLAGS=CXXFLAGS=-static or?
>>
>> On Fri, Oct 23, 2015 at 10:51 AM, Ana Marija <sokovic.anamarija at gmail.com
>> > wrote:
>>
>>> HI Everybody,
>>>
>>> I got cmake/3.3.2 installed so I decided to install gromacs 5.0.4 with
>>> plumed 2.2.0
>>>
>>> but I got this error during "make" step of gromacs:
>>>
>>> 100%] Linking CXX executable ../../bin/gmx_mpi
>>> /usr/lib/../lib64/librt.a(clock_gettime.o): In function
>>> `hp_timing_gettime':
>>> /usr/src/packages/BUILD/glibc-2.11.3/rt/../sysdeps/unix/clock_gettime.c:65:
>>> undefined reference to `_dl_cpuclock_offset'
>>> collect2: error: ld returned 1 exit status
>>> make[2]: *** [bin/gmx_mpi] Error 1
>>> make[1]: *** [src/programs/CMakeFiles/gmx.dir/all] Error 2
>>>
>>> my recipe is bellow and I am doing this on Cray XE6 machine, please let
>>> me know what I can be doing wrong:
>>>
>>> module swap PrgEnv-cray PrgEnv-gnu
>>> module load fftw/3.3.4.0
>>> module load cray-mpich/7.0.5
>>> module load gsl/1.15
>>> module load cmake
>>> #in /lustre/beagle2/ams/new/gromacs make directory lib2
>>>
>>> mkdir lib2
>>>
>>> ams at login1:/lustre/beagle2/ams/lib2>ln -s
>>> /opt/cray/libsci/13.0.1/GNU/49/abudhabi/lib/libsci_gnu.a libblas.a
>>> ams at login1:/lustre/beagle2/ams/lib2>ln -s
>>> /opt/cray/libsci/13.0.1/GNU/49/abudhabi/lib/libsci_gnu.a liblapack.a
>>>
>>> #download it from here: http://www.plumed-code.org/get-it
>>> tar zxvf plumed-2.2.0.tgz
>>> cd plumed-2.2.0
>>>
>>> ./configure CC=cc CXX=CC F77=ftn
>>> LDFLAGS="-L/lustre/beagle2/ams/new/gromacs/lib2"
>>> --prefix=/lustre/beagle2/ams/new/gromacs/plumed-2.2.0 --enable-mpi
>>> --disable-basic-warnings --disable-openmp
>>>
>>> <strong>###Makefile.conf should look like this, if not please delete all
>>> extra stuff before proceeding to make step</strong>
>>> CC=cc
>>> FC=gfortran
>>> LDF90=gfortran
>>> CFLAGS=-g -O2 -fPIC
>>> CXX=CC
>>> CXXFLAGS=-O -fPIC
>>> CXXFLAGS_NOOPENMP=-O -fPIC
>>> CPPFLAGS= -DPACKAGE_NAME=\"PLUMED\" -DPACKAGE_TARNAME=\"plumed\"
>>> -DPACKAGE_VERSION=\"2\" -DPACKAGE_STRING=\"PLUMED\ 2\"
>>> -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DSTDC_HEADERS=1
>>> -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1
>>> -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1
>>> -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -D__PLUMED_HAS_EXTERNAL_BLAS=1
>>> -D__PLUMED_HAS_EXTERNAL_LAPACK=1 -D__PLUMED_HAS_MOLFILE_PLUGINS=1
>>> -D__PLUMED_HAS_MPI=1 -D__PLUMED_HAS_CLOCK_GETTIME=1
>>> -D__PLUMED_HAS_GETTIMEOFDAY=1 -D__PLUMED_HAS_READDIR_R=1
>>> -D__PLUMED_HAS_CREGEX=1 -D__PLUMED_HAS_DLOPEN=1 -D__PLUMED_HAS_EXECINFO=1
>>> -D__PLUMED_HAS_ZLIB=1 -DNDEBUG=1 -D_REENTRANT=1
>>> LDFLAGS=
>>> DYNAMIC_LIBS=-lstdc++ -lz -ldl  -L/lustre/beagle2/ams/new/gromacs/lib2
>>> LIBS=-ldl
>>> SOEXT=
>>> LD=CC
>>> LDSO=CC -shared
>>> GCCDEP=CC
>>> prefix=/lustre/beagle2/ams/new/gromacs/plumed-2.2.0
>>> program_transform_name=s,x,x,
>>> program_can_run_mpi=yes
>>> program_can_run=yes
>>> LD_RO=ld -r -o
>>> exec_prefix=${prefix}
>>> bindir=${exec_prefix}/bin
>>> libdir=${exec_prefix}/lib
>>> includedir=${prefix}/include
>>> datarootdir=${prefix}/share
>>> datadir=${datarootdir}
>>> docdir=${datarootdir}/doc/plumed
>>> htmldir=${docdir}
>>> program_name=plumed
>>> ###
>>>
>>> make
>>> make install
>>>
>>> export PATH=/lustre/beagle2/ams/new/gromacs/plumed-2.2.0/bin:$PATH
>>>
>>> #1. Make a directory for modulefiles (e.g.
>>> /lustre/beagle2/ams/new/modulefiles/)
>>> #2. Copy file: cp
>>> /lustre/beagle2/ams/new/gromacs/plumed-2.2.0/lib/plumed/modulefile
>>> /lustre/beagle2/ams/new/modulefiles/plumed/2.2.0/
>>> #3. type "module use /lustre/beagle2/ams/new/modulefiles/"
>>> #4. type "module load plumed/2.2.0"
>>>
>>> export PATH=/lustre/beagle2/ams/new/gromacs/plumed-2.2.0/bin:$PATH
>>> module use /lustre/beagle2/ams/new/modulefiles/
>>> module load plumed/2.2.0
>>>
>>> ### instal gromacs-5.0.4
>>> wget ftp://ftp.gromacs.org/pub/gromacs/gromacs-5.0.4.tar.gz
>>> tar zxvf gromacs-5.0.4.tar.gz
>>> cd gromacs-5.0.4/
>>> ams at login1:/lustre/beagle2/ams/new/gromacs/gromacs-5.0.4>plumed-patch
>>> -p --static
>>>
>>>
>>> PLUMED patching tool
>>>
>>> 1) amber14        4) gromacs-5.0.4    7) namd-2.8
>>> 2) gromacs-4.5.7    5) gromacs-5.1.0    8) namd-2.9
>>> 3) gromacs-4.6.7    6) lammps-6Apr13    9) qespresso-5.0.2
>>>
>>> Choose the best matching code/version:4
>>>
>>> mkdir build
>>> cd build
>>>
>>>
>>> export BUILD_WITH_INSTALL_RPATH=TRUE
>>> export INSTALL_RPATH=""
>>> export SKIP_BUILD_RPATH=TRUE
>>> export
>>> CMAKE_LIBRARY_PATH="/lustre/beagle2/ams/new/gromacs/lib:$CMAKE_LIBRARY_PATH"
>>>
>>> #in /lustre/beagle2/ams/new/gromacs make directory lib
>>>
>>> ams at login1:/lustre/beagle2/ams/new/gromacs/lib>ln -s
>>> /opt/cray/libsci/13.0.1/GNU/49/abudhabi/lib/libsci_gnu.a libblas.a
>>> ams at login1:/lustre/beagle2/ams/new/gromacs/lib>ln -s
>>> /opt/cray/libsci/13.0.1/GNU/49/abudhabi/lib/libsci_gnu.a liblapack.a
>>>
>>> cd /lustre/beagle2/ams/new/gromacs/gromacs-5.0.4/build
>>>
>>> cmake ../ -DFFTWF_INCLUDE_DIR=/opt/fftw/3.3.4.0/abudhabi/include
>>> -DFFTWF_LIBRARY=/opt/fftw/3.3.4.0/abudhabi/lib/libfftw3f.a
>>> -DMPI_LIBRARY="/opt/cray/mpt/7.0.5/gni/mpich2-gnu/49/lib/libmpich.a;/opt/cray/mpt/7.0.5/gni/mpich2-gnu/49/lib/libfmpich_gnu_49.a;/opt/cray/mpt/7.0.5/gni/mpich2-gnu/49/lib/libmpl.a;/opt/cray/pmi/default/lib64/libpmi.a;/opt/cray/rca/default/lib64/librca.a;/opt/gcc/4.9.2/snos/lib64/libgfortran.a;/opt/gcc/4.9.2/snos/lib64/libstdc++.a;/opt/cray/alps/default/lib64/libalpslli.a;/opt/cray/alps/default/lib64/libalpsutil.a;/opt/gcc/4.9.2/snos/lib64/libgomp.a;/opt/gcc/4.9.2/snos/lib64/libquadmath.a;/opt/cray/ugni/default/lib64/libugni.a;/opt/cray/udreg/default/lib64/libudreg.a;/opt/cray/xpmem/default/lib64/libxpmem.a;/opt/cray/wlm_detect/default/lib64/libwlm_detect.a;/lib64/libdl.so.2"
>>> -DMPI_INCLUDE_PATH="/opt/cray/mpt/7.0.5/gni/mpich2-gnu/49/include"
>>> -DCMAKE_CXX_COMPILER=CC -DCMAKE_C_COMPILER=cc -DGMX_FORCE_CXX=ON
>>> -DGMX_DOUBLE=OFF -DGMX_PREFER_STATIC_LIBS=ON -DGMX_GPU=OFF -DGMX_MPI=ON
>>> -DCMAKE_INSTALL_PREFIX=/lustre/beagle2/ams/new/gromacs/gromacs-5.0.4/build
>>> -DGMX_X11=OFF -DGMX_BLAS_USER=/lustre/beagle2/ams/new/gromacs/lib/libblas.a
>>> -DGMX_LAPACK_USER=/lustre/beagle2/ams/new/gromacs/lib/liblapack.a
>>> -DCMAKE_SKIP_RPATH=ON
>>>
>>>
>>> make
>>> make install
>>>
>>>
>>>
>>> On Thu, Oct 22, 2015 at 12:27 PM, Ana Marija <
>>> sokovic.anamarija at gmail.com> wrote:
>>>
>>>> Thanks everybody for all your help!
>>>>
>>>> On Thu, Oct 22, 2015 at 12:20 PM, Mark Abraham <
>>>> mark.j.abraham at gmail.com> wrote:
>>>>
>>>>> Hi,
>>>>>
>>>>> On Thu, Oct 22, 2015 at 6:58 PM Ana Marija <
>>>>> sokovic.anamarija at gmail.com> wrote:
>>>>>
>>>>>> I just tried to install it with:
>>>>>> cmake ../ -DFFTWF_INCLUDE_DIR=/opt/fftw/3.3.4.0/abudhabi/include
>>>>>> -DFFTWF_LIBRARY=/opt/fftw/3.3.4.0/abudhabi/lib/libfftw3f.a
>>>>>> -DCMAKE_CXX_COMPILER=g++ -DCMAKE_C_COMPILER=gcc -DGMX_DOUBLE=OFF
>>>>>> -DGMX_GPU=OFF -DGMX_MPI=OFF
>>>>>> -DCMAKE_INSTALL_PREFIX=/lustre/beagle2/ams/gro/gromacs-4.6.7/build
>>>>>> -DGMX_X11=OFF
>>>>>>
>>>>>> but the error is the same as above.
>>>>>>
>>>>>
>>>>> It can't be if you've done it properly. Use a new, empty build
>>>>> directory.
>>>>>
>>>>>
>>>>>> My goal with this installation (without cross compiler) was to use it
>>>>>> to generate input files and than use another installation of gromacs
>>>>>> compiled with cross compilers to complete the run. Where I would use the
>>>>>> same version of gromacs  in both cases, 4.6.7. Can you please confirm me
>>>>>> that this is acceptable approach?
>>>>>>
>>>>>
>>>>> Yes, but needlessly complex. You can run grompp anywhere, copy the
>>>>> file to the Cray, and use the resulting .tpr on the compute nodes, like I
>>>>> said a while ago.
>>>>>
>>>>>
>>>>>> The reason why I can't use newer version of gromacs is that I only
>>>>>> have cmake 2.8.4 on this machine and it is impossible to install newer
>>>>>> version of cmake because it is tied to gnu version we got from Cray etc.
>>>>>>
>>>>>
>>>>> Perhaps Cray supplied a cmake, but it doesn't run on the compute
>>>>> nodes, and has nothing at all to do with the back end compilers, and your
>>>>> system admins can and should be willing to download and install a more
>>>>> recent cmake for you and everybody else :-)
>>>>>
>>>>> Mark
>>>>>
>>>>>
>>>>>> On Thu, Oct 22, 2015 at 11:51 AM, Szilárd Páll <sin.pecado at gmail.com>
>>>>>> wrote:
>>>>>>
>>>>>>> On Thu, Oct 22, 2015 at 6:34 PM, Ana Marija <
>>>>>>> sokovic.anamarija at gmail.com> wrote:
>>>>>>>
>>>>>>>> I installed it via:
>>>>>>>> cmake ../ -DFFTWF_INCLUDE_DIR=/opt/fftw/3.3.4.0/abudhabi/include
>>>>>>>> -DFFTWF_LIBRARY=/opt/fftw/3.3.4.0/abudhabi/lib/libfftw3f.a
>>>>>>>> -DCMAKE_CXX_COMPILER=g++ -DCMAKE_C_COMPILER=gcc -DGMX_DOUBLE=OFF
>>>>>>>> -DGMX_PREFER_STATIC_LIBS=ON -DGMX_GPU=OFF -DGMX_MPI=OFF
>>>>>>>> -DCMAKE_INSTALL_PREFIX=/lustre/beagle2/ams/gro/gromacs-4.6.7/build
>>>>>>>> -DGMX_X11=OFF -DCMAKE_SKIP_RPATH=ON
>>>>>>>>
>>>>>>>> then I was running it on login nodes via:
>>>>>>>>
>>>>>>>> /lustre/beagle2/ams/gro/gromacs-4.6.7/build/bin/grompp -f
>>>>>>>> /lustre/beagle2/ruisun/MYCO/Set-1/input/grompp.mdp -c
>>>>>>>> /lustre/beagle2/ruisun/MYCO/Set-1/input/initial.gro -p
>>>>>>>> /lustre/beagle2/ruisun/MYCO/Set-1/input/topol.top -n
>>>>>>>> /lustre/beagle2/ruisun/MYCO/Set-1/input/index.ndx -o ttmeta1.tpr
>>>>>>>>
>>>>>>>>
>>>>>>>> but I didn't get .tpr file, and output was this:
>>>>>>>> Back Off! I just backed up mdout.mdp to ./#mdout.mdp.2#
>>>>>>>> Generated 1081 of the 1081 non-bonded parameter combinations
>>>>>>>> Generating 1-4 interactions: fudge = 0.5
>>>>>>>> Generated 994 of the 1081 1-4 parameter combinations
>>>>>>>>
>>>>>>>> -------------------------------------------------------
>>>>>>>> Program grompp, VERSION 4.6.7
>>>>>>>> Source code file:
>>>>>>>> /lustre/beagle2/ams/gro/gromacs-4.6.7/src/kernel/toppush.c, line: 1803
>>>>>>>>
>>>>>>>> Fatal error:
>>>>>>>> [ file tip3p.itp, line 39 ]:
>>>>>>>> Atom index (1) in settles out of bounds (1-0).
>>>>>>>> This probably means that you have inserted topology section
>>>>>>>> "settles"
>>>>>>>> in a part belonging to a different molecule than you intended to.
>>>>>>>> In that case move the "settles" section to the right molecule.
>>>>>>>>
>>>>>>>> can you please advise what should I do in this situation?
>>>>>>>>
>>>>>>>
>>>>>>> As Justin said, this isn't an issue with the GROMACS build anymore
>>>>>>> (but rather with the inputs). So it seems that the original problem is
>>>>>>> solved - unless you really need to run grompp on the compute nodes.
>>>>>>>
>>>>>>> BTW, I hope you know that 4.6.7 is a rather old and outdated
>>>>>>> version; the 5.0 and 5.1 series has been released since and the former is
>>>>>>> AFAIK supported by PLUMED!
>>>>>>>
>>>>>>> Cheers,
>>>>>>> --
>>>>>>> Szilárd
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>>
>>>>>>>> On Thu, Oct 22, 2015 at 11:06 AM, Ana Marija <
>>>>>>>> sokovic.anamarija at gmail.com> wrote:
>>>>>>>>
>>>>>>>>> so is it ok to try this?
>>>>>>>>> cmake ../ -DFFTWF_INCLUDE_DIR=/opt/fftw/3.3.4.0/abudhabi/include
>>>>>>>>> -DFFTWF_LIBRARY=/opt/fftw/3.3.4.0/abudhabi/lib/libfftw3f.a
>>>>>>>>> -DCMAKE_CXX_COMPILER=g++ -DCMAKE_C_COMPILER=gcc -DGMX_DOUBLE=OFF
>>>>>>>>> -DGMX_PREFER_STATIC_LIBS=ON -DGMX_GPU=OFF -DGMX_MPI=OFF
>>>>>>>>> -DCMAKE_INSTALL_PREFIX=/lustre/beagle2/ams/gro/gromacs-4.6.7/build
>>>>>>>>> -DGMX_X11=OFF -DCMAKE_SKIP_RPATH=ON
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Thu, Oct 22, 2015 at 11:03 AM, Mark Abraham <
>>>>>>>>> mark.j.abraham at gmail.com> wrote:
>>>>>>>>>
>>>>>>>>>> Hi,
>>>>>>>>>>
>>>>>>>>>> Your blas and lapack were compiled with gfortran, but in a way
>>>>>>>>>> that they require that one links further dependencies to use them later on.
>>>>>>>>>> So compile them better, or use dynamic linking.
>>>>>>>>>>
>>>>>>>>>> But 99.9% of GROMACS users do not need to get involved with this,
>>>>>>>>>> so just leave GMX_BLAS_USER and GMX_BLAS_LAPACK unset and GROMACS will use
>>>>>>>>>> its internal versions.
>>>>>>>>>>
>>>>>>>>>> Mark
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>
>>>
>>
>


More information about the gromacs.org_gmx-users mailing list