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

Andras Szilagyi sziami at gmail.com
Tue Dec 17 23:28:52 UTC 2013


OK. So if the AVX issue is already fixed in 4.6.5-1 then the bug I
found is not related to AVX; it is something else, and we still don't
know what it is.

Andras

On Wed, Dec 18, 2013 at 12:09 AM, Christoph Junghans <junghans at votca.org> wrote:
> 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