[gmx-users] floating point exception for grompp -e ener.edr on some clusters

David van der Spoel spoel at xray.bmc.uu.se
Mon Nov 19 08:26:10 CET 2007

chris.neale at utoronto.ca wrote:
>> Very dificult to debug without access to the machine. It could be due 
>> to a weird bug that only shows up with certain compilers or it could 
>> be a compiler problem. We have most experience with gcc, and its 
>> quirks. Most of the gcc related problems have been worked around. If 
>> you can try with a different compiler that would be something to try. 
>> Alternative is to compile grompp with CFLAGS=-g and run it in the 
>> debugger to see where this happens.
> Thanks for the assistance. I will continue to try to get gcc to work for 
> me.
> I have attempted the CFLAGS=-g (full output at end of email). The error 
> message is now:
> Program received signal SIGFPE, Arithmetic exception.
> 0x12001449c in do_enx (fp=0, fr=0x12010a9c0) at enxio.c:310
> 310     enxio.c: No such file or directory.
>         in enxio.c

Try adding the following in enxio.c at line 305:

     for(i=fr->e_alloc; (i<fr->nre); i++) {
       fr->ener[i].e = fr->ener[i].eav =
	fr->ener[i].esum = fr->ener[i].esum2 = 0;

The code should come *in-between* the following two lines:

     fr->e_alloc = fr->nre;

Alphas are very sensitive about not-initialized variables.

> I also tried with CFLAGS=-ggdb but I didn't get any additional 
> information about the error.
> I have also tried to compile while 'export CC=gcc3' or 'export CC=gcc' 
> but I have an error in trxio.c during compilation in both cases:
> $ which gcc3
> /usr/bin/gcc3
> $ gcc3 --version
> 3.0.4
> $ which gcc
> /usr/bin/gcc
> $ gcc --version
> 2.96
> $ tail output.make
> if /bin/sh ../../libtool --tag=CC --mode=compile gcc3 -DHAVE_CONFIG_H 
> -I. -I. -I../../src -I/usr/X11R6/include  -I../../include 
> -DGMXLIBDIR=\"/scratch/cneale/exe/gromacs-3.3.1/exec/share/top\" 
> -I/home/cneale/exe/fftw-3.1.2/exec/include  -O3 -fomit-frame-pointer 
> -finline-functions -Wall -Wno-unused -funroll-all-loops -MT trxio.lo -MD 
> -MP -MF ".deps/trxio.Tpo" -c -o trxio.lo trxio.c; \
> then mv -f ".deps/trxio.Tpo" ".deps/trxio.Plo"; else rm -f 
> ".deps/trxio.Tpo"; exit 1; fi
>  gcc3 -DHAVE_CONFIG_H -I. -I. -I../../src -I/usr/X11R6/include 
> -I../../include 
> -DGMXLIBDIR=\"/scratch/cneale/exe/gromacs-3.3.1/exec/share/top\" 
> -I/home/cneale/exe/fftw-3.1.2/exec/include -O3 -fomit-frame-pointer 
> -finline-functions -Wall -Wno-unused -funroll-all-loops -MT trxio.lo -MD 
> -MP -MF .deps/trxio.Tpo -c trxio.c -o trxio.o
> trxio.c: In function `read_next_frame':
> trxio.c:690: Internal error: Segmentation fault
> For reference I have first posted the g_energy output while run under 
> gdb and then I have posted the first ~30 lines from the output of the 
> configure routine while CC=gcc3
> ################################################
> $ gdb ../../exe/gromacs-3.3.1/exec/bin/g_energy_debug_gdb
> GNU gdb Red Hat Linux (5.1-4)
> Copyright 2001 Free Software Foundation, Inc.
> GDB is free software, covered by the GNU General Public License, and you 
> are
> welcome to change it and/or distribute copies of it under certain 
> conditions.
> Type "show copying" to see the conditions.
> There is absolutely no warranty for GDB.  Type "show warranty" for details.
> This GDB was configured as "alpha-redhat-linux"...
> (gdb) run -f sys1800_md689.edr
> Starting program: 
> /mnt/scratch/cneale/micelle/2huge_16/../../exe/gromacs-3.3.1/exec/bin/g_energy_debug_gdb 
> -f sys1800_md689.edr
>                          :-)  G  R  O  M  A  C  S  (-:
>              Gallium Rubidium Oxygen Manganese Argon Carbon Silicon
>                             :-)  VERSION 3.3.1  (-:
>       Written by David van der Spoel, Erik Lindahl, Berk Hess, and others.
>        Copyright (c) 1991-2000, University of Groningen, The Netherlands.
>              Copyright (c) 2001-2006, The GROMACS development team,
>             check out http://www.gromacs.org for more information.
>          This program is free software; you can redistribute it and/or
>           modify it under the terms of the GNU General Public License
>          as published by the Free Software Foundation; either version 2
>              of the License, or (at your option) any later version.
>          :-)  
> /mnt/scratch/cneale/micelle/2huge_16/../../exe/gromacs-3.3.1/exec/bin/g_energy_debug_gdb  
> (-:
> Option     Filename  Type         Description
> ------------------------------------------------------------
>   -f sys1800_md689.edr  Input        Generic energy: edr ene
>  -f2       ener.edr  Input, Opt.  Generic energy: edr ene
>   -s      topol.tpr  Input, Opt.  Generic run input: tpr tpb tpa xml
>   -o     energy.xvg  Output       xvgr/xmgr file
> -viol  violaver.xvg  Output, Opt. xvgr/xmgr file
> -pairs    pairs.xvg  Output, Opt. xvgr/xmgr file
> -ora    orienta.xvg  Output, Opt. xvgr/xmgr file
> -ort    orientt.xvg  Output, Opt. xvgr/xmgr file
> -oda    orideva.xvg  Output, Opt. xvgr/xmgr file
> -odr    oridevr.xvg  Output, Opt. xvgr/xmgr file
> -odt    oridevt.xvg  Output, Opt. xvgr/xmgr file
> -oten    oriten.xvg  Output, Opt. xvgr/xmgr file
> -corr   enecorr.xvg  Output, Opt. xvgr/xmgr file
> -vis      visco.xvg  Output, Opt. xvgr/xmgr file
> -ravg  runavgdf.xvg  Output, Opt. xvgr/xmgr file
>       Option   Type  Value  Description
> ------------------------------------------------------
>       -[no]h   bool     no  Print help info and quit
>        -nice    int     19  Set the nicelevel
>           -b   time      0  First frame (ps) to read from trajectory
>           -e   time      0  Last frame (ps) to read from trajectory
>       -[no]w   bool     no  View output xvg, xpm, eps and pdb files
>    -[no]xvgr   bool    yes  Add specific codes (legends etc.) in the output
>                             xvg files for the xmgrace program
>     -[no]fee   bool     no  Do a free energy estimate
>      -fetemp   real    300  Reference temperature for free energy 
> calculation
>        -zero   real      0  Subtract a zero-point energy
>     -[no]sum   bool     no  Sum the energy terms selected rather than 
> display
>                             them all
>      -[no]dp   bool     no  Print energies in high precision
>   -[no]mutot   bool     no  Compute the total dipole moment from the
>                             components
>        -skip    int      0  Skip number of frames between data points
>    -[no]aver   bool     no  Print also the X1,t and sigma1,t, only if 
> only 1
>                             energy is requested
>        -nmol    int      1  Number of molecules in your sample: the 
> energies
>                             are divided by this number
>         -ndf    int      3  Number of degrees of freedom per molecule.
>                             Necessary for calculating the heat capacity
>    -[no]fluc   bool     no  Calculate autocorrelation of energy 
> fluctuations
>                             rather than energy itself
>  -[no]orinst   bool     no  Analyse instantaneous orientation data
>    -[no]ovec   bool     no  Also plot the eigenvectors with -oten
>      -acflen    int     -1  Length of the ACF, default is half the 
> number of
>                             frames
> -[no]normalize bool    yes  Normalize ACF
>           -P   enum      0  Order of Legendre polynomial for ACF (0 
> indicates
>                             none): 0, 1, 2 or 3
>       -fitfn   enum   none  Fit function: none, exp, aexp, exp_exp, vac,
>                             exp5, exp7 or exp9
>      -ncskip    int      0  Skip N points in the output file of correlation
>                             functions
>    -beginfit   real      0  Time where to begin the exponential fit of the
>                             correlation function
>      -endfit   real     -1  Time where to end the exponential fit of the
>                             correlation function, -1 is till the end
> Opened sys1800_md689.edr as single precision energy file
>   Select the terms you want from the following list
> -----------------------------------------------------
> Angle          Proper-Dih.    Ryckaert-Bell. LJ-14          Coulomb-14
> LJ-(SR)        LJ-(LR)        Coulomb-(SR)   Coul.-recip.   Potential
> Kinetic-En.    Total-Energy   Temperature    Pressure-(bar) Box-X
> Box-Y          Box-Z          Volume         Density-(SI)   pV
> Vir-XX         Vir-XY         Vir-XZ         Vir-YX         Vir-YY
> Vir-YZ         Vir-ZX         Vir-ZY         Vir-ZZ         Pres-XX-(bar)
> Pres-XY-(bar)  Pres-XZ-(bar)  Pres-YX-(bar)  Pres-YY-(bar)  Pres-YZ-(bar)
> Pres-ZX-(bar)  Pres-ZY-(bar)  Pres-ZZ-(bar)  #Surf*SurfTen  Pcoupl-Mu-XX
> Pcoupl-Mu-YY   Pcoupl-Mu-ZZ   Mu-X           Mu-Y           Mu-Z
> T-DPC          T-SOL          Lamb-DPC       Lamb-SOL
> Total-Energy
> Back Off! I just backed up energy.xvg to ./#energy.xvg.1#
> Reading frame      0 time 35250.000
> Program received signal SIGFPE, Arithmetic exception.
> 0x12001449c in do_enx (fp=0, fr=0x12010a9c0) at enxio.c:310
> 310     enxio.c: No such file or directory.
>         in enxio.c
> (gdb)
> Note that backtrace does not suggest any additional information. I get 
> the seme basic error with grompp -e and g_energy and eneconv.
> ##################################################
> $ head -30 output.configure
> checking build system type... alphaev6-unknown-linux-gnu
> checking host system type... alphaev6-unknown-linux-gnu
> checking for a BSD-compatible install... /usr/bin/install -c
> checking whether build environment is sane... yes
> checking for gawk... gawk
> checking whether make sets $(MAKE)... yes
> checking how to create a ustar tar archive... pax
> checking for C compiler default output file name... a.out
> checking whether the C compiler works... yes
> checking whether we are cross compiling... no
> checking for suffix of executables...
> checking for suffix of object files... o
> checking whether we are using the GNU C compiler... yes
> checking whether gcc3 accepts -g... yes
> checking for gcc3 option to accept ANSI C... none needed
> checking for style of include used by make... GNU
> checking dependency style of gcc3... gcc3
> checking for fort... fort
> checking whether we are using the GNU Fortran 77 compiler... no
> checking whether fort accepts -g... yes
> checking how to get verbose linking output from fort... -v
> checking for Fortran libraries of fort...  
> -L/home/cneale/exe/fftw-3.1.2/exec/lib -lUfor -lfor -lFutil -lcpml -lots 
> -L/usr/lib/gcc-lib/alpha-redhat-linux/2.96 
> -L/usr/lib/gcc-lib/alpha-redhat-linux/2.96/../../..
> checking for dummy main to link with Fortran libraries... none
> checking for Fortran name-mangling scheme... lower case, underscore, 
> extra underscore
> checking how to run the C preprocessor... gcc3 -E
> checking whether gcc3 accepts -O3... yes
> Thanks,
> Chris.
> _______________________________________________
> gmx-users mailing list    gmx-users at gromacs.org
> http://www.gromacs.org/mailman/listinfo/gmx-users
> Please search the archive at http://www.gromacs.org/search before posting!
> Please don't post (un)subscribe requests to the list. Use thewww 
> interface or send it to gmx-users-request at gromacs.org.
> Can't post? Read http://www.gromacs.org/mailing_lists/users.php

David van der Spoel, PhD, Assoc. Prof., Molecular Biophysics group,
Dept. of Cell and Molecular Biology, Uppsala University.
Husargatan 3, Box 596,  	75124 Uppsala, Sweden
phone:	46 18 471 4205		fax: 46 18 511 755
spoel at xray.bmc.uu.se	spoel at gromacs.org   http://folding.bmc.uu.se

More information about the gromacs.org_gmx-users mailing list