Thread Links Date Links
Thread Prev Thread Next Thread Index Date Prev Date Next Date Index

Re: (Basenote drift) Determinism



On Thu, Aug 4, 2011 at 5:23 AM, N.M. Maclaren <nmm1@xxxxxxxxx> wrote:
> I have changed the subject line again, as I was using complex
> numbers purely as a trivial example.
>
>
> On Aug 4 2011, Dan Zuras Intervals wrote:
>>>
>>> Inter alia, it has led to an almost complete lack of communication
>>> between the "IEEE floating-point always gives precisely the same
>>> answers" community and many language and library standards, compiler
>>> vendors and numeric programmers and users of their applications.
>>
>>        Ah, you refer to the Intel-goes-its-own-way-&-damn-the-
>>        rest-of-the-world attitude.
>>
>>        On this we agree completely.
>
> I did NOT say that, and I did not JUST say vendors.
>
> As an aside, it includes almost every vendor of Fortran, C, C++ and
> similar languages, also including GNU, IBM, Sun, Pathscale, Cray,
> Hitachi, Fujitsu, NAG and almost all of the many dozens of others I have
> worked with in my time (and not just for those languages, either).
>
> The IEEE 754 model is flatly incompatible with the arithmetic models
> that have always been used for almost every compiled language, and NONE
> of C, C++ or Fortran have adopted it or have any plans to do so.  Well,
> perhaps I should say that C99 has adopted it, but ALSO kept its existing
> incompatible description AND added some wording to allow a new form of
> variation.  I should point out that I have been or am involved with all
> of WG5, WG14 and WG21.
>
> And the same remark applies to all of the dominant library interfaces
> and language extensions, whether numerical or parallel, including the
> BLAS, LAPACK, MPI and OpenMP.
>
> And, lastly, when numeric programmers and their users are given a
> choice between deterministic results and much faster execution,
> they choose the latter every time.

It appears to me that the above statement is not accurate.  Many
numeric programmers and their users choose faster execution over
deterministic results, but not all.  For example, in simulations it is
very hard to evaluate the fidelity of the results unless they are
deterministic.  So performance gives way to verifiable correctness in
the form of determinism.

And BTW, the underlying problem is not that of performance over
abstract correctness.  The underlying problem is that of uninformed
choice.  Few numeric programmers, even the very good ones, see any
benefit in deterministic results.  That problem can be solved by
education.

Because 1788 will not actually be a standard in the rigorous sense,
meaning standardization among existing practices, but will be setting
goals and requirements that implementors may struggle to comprehend
and accomplish, 1788 will be in large part exactly such an educational
standard.

Therefore, if there is an underlying reason for 1788 to promote or
require deterministic results then that reason must be stated both
completely and clearly within the standard.

Lee Winter
NP Engineering
Nashua, New Hampshire
United States of America