[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: differences between implementations of IEEE-754 basic operators



Nick Maclaren wrote:
Yes, getting reproducible results IS possible.  But you CAN'T do
it without defining a programming methodology intended to deliver
that property.  And that has FAR more drastic consequences than
any of its proponents admit - in particular, it is effectively
incompatible with most forms of parallelism.
Correct. Now, there are safety-critical systems where this is not the case - systems programmed as synchronous tasks with bounded worst-case execution times.

On such systems, you would expect that the same sequence of inputs (and these are well-defined discrete sequences: to each clock tick one associates the current values of inputs) would give identical results, regardless whether you're running on the embedded CPU, a different "compatible" model of CPU, or a CPU simulator, or, even, gasp, the same program running on the same sequences on a desktop PC. (I suppose that one took care not to be fooled by mundane issues like the sizes of integer types or endianness.)

You would also expect that inserting logging statements does not change the end results, so as to be able to precisely reproduce and test behaviors. This is, alas, false on most C/x87 implementations.

The same applies for many scientific computations. When you have a bug, an encounter a "corner case", you expect to be able to reproduce it.

-- DM

Attachment: David_Monniaux.vcf
Description: Vcard


754 | revision | FAQ | references | list archive