Pentium is unreliable for floating-point calculations

Pedro Mendes prm at aber.ac.uk
Mon Nov 28 10:50:03 EST 1994


Since many of the readers in these two groups use computers regularly for 
calculations, I would like to bring your attention to the fact that computers 
based on the intel pentium processor cannot be garanteed to produce results 
that are even close to the real answer. This is due to a bug in the microcode 
of the FDIV (floating-point division) instruction. Intel has confirmed that 
the bug is there and that the next stepping of the chip will have the bug 
corrected. Reading comp.sys.intel reveals that all the pentiums on the market 
all have the bug (including machines bought a few weeks ago).

The bug is repeatable although it only ocurrs with a finite number of numbers. 
However you can never be sure that one of these numbers popped up in some 
intermediate calculations. Remembe, there is no way you can know your results 
are right, except if you repeat the calculations on other processors (eg 486).

Intel is trying to play down the importance of the bug by saying that with 
random selected numbers the error will only appear on average once every 27000 
years. The problem is it can happen and if it does it will cause major 
problems (eg non-convergence of iterative methods, like ODE solvers).

My next posting is a copy of the intel press release, for further information 
read comp.sys.intel. Intel currently says that it will only substitute the 
processors if users can prove that they do intensive floating-point 
calculations (they seemed to have mentioned applications like chaos research). 
The following are for sure in danger of being totally wrong if ran on a 
pentium:

-minimization (protein structure calculations use this a lot)
-integration of ODEs (eg simulation of the dynamics of metabolic pathways)
-time series analysis and processing (including image analysis)

To test if you have a defective pentium or not do the following operation (the 
windows calculator will be enough for this):

4195835.0 - (4195835.0 / 3145727.0 ) * 3145727.0

The result should be 0, but the pentiums seem to think it is 256...

Pedro Mendes                           Inst. Biological Sciences
prm at aber.ac.uk                         Univ. Wales Aberystwyth
(home: pedro at enzyme.demon.co.uk)       Dyfed SY23 3DA




More information about the Bio-soft mailing list