[Debichem-devel] Bug#732400: Bug#732400: gromacs: Illegal instruction in all programs on Intel Core 2 CPU

Christoph Junghans junghans at votca.org
Tue Dec 17 23:09:15 UTC 2013


2013/12/17 Andras Szilagyi <sziami at gmail.com>:
> I may not have been clear enough here. My bug report was intended for
> the debian binary package, not Gromacs itself. The binary package
> cannot be "configured", it's already compiled, there is nothing you
> can configure about it. Also, I'm not asking for support, I'm filing a
> bug report. I can compile Gromacs from source, that is not the issue.
Clear and I meant to configure Gromacs inside debian/rules with
-DGMX_CPU_ACCELERATION=SSE2 so that the binary package only uses sse2
instructions.

>
> No, this bug is not fixed in #725013. I reported the bug for the
> latest debian binary package, 4.6.5-1.
And the fix for #725013 ended in 4.6.5-1.

>
> I guess the package maintainer should decide which processors the
> binary package is intended to support. If only certain CPUs are
> supported then this should be indicated in the package name or title.
> Or if the purpose is to provide a generic version that will run on
> most processors then it should not depend on AVX.
The maintainer already did that or at least the debian changelog claims so:
  * rules: Override autodetection of CPU extensions on amd64 and i386;
    force to SSE2 only, and provide new DEB_BUILD_OPTIONS=cpuopt flag to
    re-enable autodetection for local builds.  (Closes: #725013)

Also debian/rules contains:
ifneq (,$(findstring cpuopt,$(DEB_BUILD_OPTIONS)))
ifneq (,$(findstring $(DEB_HOST_ARCH),i386 amd64))
                COMMON_CONFIG_PARAMS += -DGMX_CPU_ACCELERATION=SSE2
endif
endif


>
> Andras
>
> On Tue, Dec 17, 2013 at 11:27 PM, Christoph Junghans <junghans at votca.org> wrote:
>> 2013/12/17 Andras Szilagyi <sziami at gmail.com>:
>>> Unfortunately, mdrun crashes before it could create an md.log file.
>>> All programs, including mdrun, crash while reporting the command line
>>> arguments (all programs start with this).
>>> I noticed the crash always occurs before reporting the first command
>>> line argument (option) with a value that is not an integer or boolean.
>>> That is, when the type of the next command line argument to be printed
>>> is real, vector, or time.
>>>
>>> If this version is not supposed to run on pre-Sandy Bridge processors,
>>> maybe this should be indicated in the description.
>> Gromacs can run on pre-Sandy Bridge processors, but you have to
>> configure it with
>> -DGMX_CPU_ACCELERATION=SSE2. Anyhow, this issue seems to be fixed in
>> bug #725013 already.
>>
>>>
>>> Andras
>>>
>>> On Tue, Dec 17, 2013 at 10:02 PM, Christoph Junghans <junghans at votca.org> wrote:
>>>> 2013/12/17 Andras Szilagyi <sziami at gmail.com>:
>>>>> Package: gromacs
>>>>> Version: 4.6.5-1
>>>>> Severity: important
>>>>>
>>>>> All gromacs programs crash right at the start, reporting an illegal hardware
>>>>> instruction while printing the program options.
>>>> My guess is that the deb package is compiled with some hardware
>>>> acceleration, which is not available on your machine.
>>>>
>>>> To check, could you run:
>>>> $ grep "CPU acceleration" md.log
>>>> on some md.log file?
>>>>
>>>> If it says something like:
>>>> CPU acceleration:   AVX_256
>>>> we know why.
>>>>
>>>>> E.g. "g_angle -h" results in the following output:
>>>>>
>>>>> ::::::
>>>>>                          :-)  G  R  O  M  A  C  S  (-:
>>>>>
>>>>>                    Groningen Machine for Chemical Simulation
>>>>>
>>>>>                             :-)  VERSION 4.6.5  (-:
>>>>>
>>>>> (lots of text omitted)
>>>>>
>>>>> Option     Filename  Type         Description
>>>>> ------------------------------------------------------------
>>>>>   -f       traj.xtc  Input        Trajectory: xtc trr trj gro g96 pdb cpt
>>>>>   -n      angle.ndx  Input        Index file
>>>>>  -od    angdist.xvg  Output       xvgr/xmgr file
>>>>>  -ov    angaver.xvg  Output, Opt. xvgr/xmgr file
>>>>>  -of    dihfrac.xvg  Output, Opt. xvgr/xmgr file
>>>>>  -ot   dihtrans.xvg  Output, Opt. xvgr/xmgr file
>>>>>  -oh    trhisto.xvg  Output, Opt. xvgr/xmgr file
>>>>>  -oc    dihcorr.xvg  Output, Opt. xvgr/xmgr file
>>>>>  -or       traj.trr  Output, Opt. Trajectory in portable xdr format
>>>>>
>>>>> Option       Type   Value   Description
>>>>> ------------------------------------------------------
>>>>> -[no]h       bool   yes     Print help info and quit
>>>>> -[no]version bool   no      Print version info and quit
>>>>> -nice        int    19      Set the nicelevel
>>>>> zsh: illegal hardware instruction  g_angle -h
>>>>> :::::::
>>>>>
>>>>> Debugging with gdb indicates that the error occurs in pa_val() in
>>>>> libgmx.so.8:
>>>>>
>>>>> :::::::
>>>>> Program received signal SIGILL, Illegal instruction.
>>>>> 0x00007ffff6801d8e in pa_val () from /usr/lib/libgmx.so.8
>>>>> (gdb) bt
>>>>> #0  0x00007ffff6801d8e in pa_val () from /usr/lib/libgmx.so.8
>>>>> #1  0x00007ffff6802020 in pargs_print_line () from /usr/lib/libgmx.so.8
>>>>> #2  0x00007ffff680251a in print_pargs () from /usr/lib/libgmx.so.8
>>>>> #3  0x00007ffff67cc143 in ?? () from /usr/lib/libgmx.so.8
>>>>> #4  0x00007ffff67ce71f in write_man () from /usr/lib/libgmx.so.8
>>>>> #5  0x00007ffff67720b8 in parse_common_args () from /usr/lib/libgmx.so.8
>>>>> #6  0x00007ffff79ccd43 in gmx_g_angle () from /usr/lib/libgmxana.so.8
>>>>> #7  0x00007ffff7ffe7e9 in main ()
>>>>> :::::::
>>>>>
>>>>> This occurs on an Intel Core 2 Quad Q6600 CPU. /proc/cpuinfo gives this for
>>>>> each core:
>>>>>
>>>>> :::::::
>>>>> processor       : 0
>>>>> vendor_id       : GenuineIntel
>>>>> cpu family      : 6
>>>>> model           : 15
>>>>> model name      : Intel(R) Core(TM)2 Quad CPU    Q6600  @ 2.40GHz
>>>>> stepping        : 11
>>>>> cpu MHz         : 1600.000
>>>>> cache size      : 4096 KB
>>>>> physical id     : 0
>>>>> siblings        : 4
>>>>> core id         : 0
>>>>> cpu cores       : 4
>>>>> apicid          : 0
>>>>> initial apicid  : 0
>>>>> fpu             : yes
>>>>> fpu_exception   : yes
>>>>> cpuid level     : 10
>>>>> wp              : yes
>>>>> flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca
>>>>> cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm
>>>>> constant_tsc arch_perfmon pebs bts rep_good aperfmperf pni dtes64 monitor
>>>>> ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm lahf_lm tpr_shadow vnmi flexpriority
>>>>> bogomips        : 4799.50
>>>>> clflush size    : 64
>>>>> cache_alignment : 64
>>>>> address sizes   : 36 bits physical, 48 bits virtual
>>>>> power management:
>>>>> ::::::
>>>>>
>>>>>
>>>>> -- System Information:
>>>>> Debian Release: 6.0.8
>>>>>   APT prefers oldstable
>>>>>   APT policy: (990, 'oldstable'), (500, 'unstable'), (500, 'testing'), (500, 'stable')
>>>>> Architecture: amd64 (x86_64)
>>>>>
>>>>> Kernel: Linux 2.6.32-5-amd64 (SMP w/4 CPU cores)
>>>>> Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
>>>>> Shell: /bin/sh linked to /bin/bash
>>>>>
>>>>> Versions of packages gromacs depends on:
>>>>> ii  atlas3-base [liblapack.s 3.6.0-20.6      Automatically Tuned Linear Algebra
>>>>> ii  gromacs-data             4.6.5-1         GROMACS molecular dynamics sim, da
>>>>> ii  lapack3 [liblapack.so.3] 3.0.20000531a-6 library of linear algebra routines
>>>>> ii  libatlas3-base [liblapac 3.8.4-9.1       Automatically Tuned Linear Algebra
>>>>> ii  libblas3 [libblas.so.3]  1.2.20110419-5  Basic Linear Algebra Reference imp
>>>>> ii  libc6                    2.17-5          Embedded GNU C Library: Shared lib
>>>>> ii  libfftw3-double3         3.3.3-3         Library for computing Fast Fourier
>>>>> ii  libfftw3-single3         3.3.3-3         Library for computing Fast Fourier
>>>>> ii  libgomp1                 4.8.0-7         GCC OpenMP (GOMP) support library
>>>>> ii  liblapack3 [liblapack.so 3.4.2+dfsg-1    Library of linear algebra routines
>>>>> ii  libx11-6                 2:1.5.0-1       X11 client-side library
>>>>> ii  refblas3 [libblas.so.3]  1.2-8           Basic Linear Algebra Subroutines 3
>>>>>
>>>>> Versions of packages gromacs recommends:
>>>>> ii  cpp                           4:4.4.5-1  The GNU C preprocessor (cpp)
>>>>>
>>>>> Versions of packages gromacs suggests:
>>>>> ii  pymol                         1.5.0.1-2  Molecular Graphics System
>>>>>
>>>>> -- no debconf information
>>>>>
>>>>> _______________________________________________
>>>>> Debichem-devel mailing list
>>>>> Debichem-devel at lists.alioth.debian.org
>>>>> http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/debichem-devel
>>>>
>>>>
>>>>
>>>> --
>>>> Christoph Junghans
>>>> Web: http://www.compphys.de
>>
>>
>>
>> --
>> Christoph Junghans
>> Web: http://www.compphys.de



-- 
Christoph Junghans
Web: http://www.compphys.de



More information about the Debichem-devel mailing list