Subject: Comp. Chem. and the Pentium FDIV bug

From: [email-masked] (Graham Hurst)
Date: Tue, 29 Nov 94 16:41:32 -0500

Here are some observations on the pentium FDIV bug and computational
chemistry calculations.  The results are for HyperChem, though I would
expect similar results for calculations with other modelling programs.

A regression test that we use for the testing of HyperChem uses HyperChem's
scripting to perform around 3,000 calculations, including geometry
optimizations, CI, molecular dynamics, vibration calculations, and
uv-vis spectra, logging all results to files that we can then compare to
reference files.

When we run this test on a Pentium 90 with the bug (verified by finding
4195835 - (4195835/3145727*3145727) = 256 with the Windows calculator)
and on a 486 without the bug, we do find differences for 4 (out of
roughly 3000) calculations.  The four cases are all geometry optimizations,
(two with MNDO and one each with AM1 and CNDO) where the final optimized 
electronic and core-core repulsion energies differ.  For one the difference
is one in the 12th significant digit and for the other three the differences
are in the 13th siginificant digit.

For comparison, we find larger differences (but still relatively
insignificant) comparing results from 486, SGI, DEC Alpha or IBM
PowerPC computers, which we have found is due to very small differences
in math library routines (like sqrt and arccos).

Based on the above, I'd suggest not panicking about the Pentium FDIV bug.
The magnitude of the error as manifested in molecular modelling
calculations seems almost immeasurable, and is certainly far smaller
than the "errors" introduced by the numerous approximations that are
used routinely (like integral cutoff thresholds or non-bonded distance
cutoffs).

This kind of thing is hardly new - the Paranoia program was written
long ago to characterize floating-point weaknesses of chip/library
combinations.  (Has anyone run this on a buggy Pentium 90?  I've
misplaced my copy, but would guess that it passes with flying colours.)
I remember Clemens Roothaan showing me that the ROM for the table lookup
square root in FPS-164 and FPS-264 array processors had several errors in
it, leading to small but measurable imprecision, but I wouldn't advocate
tossing out the wealth of published results from the mid-80s that used
those once-popular computers!

For what it's worth, my advice (if you've got a buggy Pentium) is to
call Intel and tell them that the bug is detectable in some computational
chemistry calculations (including off-the-shelf, shrink-wrapped HyperChem)
and see if they'll replace it, but in the meantime carry on with
calculations!

Cheers,

Graham
------------
Graham Hurst ([email-masked])
Hypercube Inc, 7-419 Phillip St, Waterloo, Ont, Canada N2L 3X2 (519)725-4040
Info requests to: [email-masked]    Support questions to: [email-masked]
Email group: Send "subscribe hyperchem" to [email-masked]