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

Re: discussion period begins, until Jan. 26: "natural interval extension": friendly amendment to M001.02 - NaNs



The Control Data 6600 (1963) and 7600 (late 1960s) (both designed by Seymore Cray when he worked for CDC) and their descendents had special floating-point values for Infinity and Indefinite (equivalent to NaN). Neither of those was created by IEEE 754 (or by Control Data), but it did greatly increase their usage.

- Ian McIntosh IBM Canada Lab Compiler Back End Support and Development


Inactive hide details for Richard Fateman ---2016-01-18 06:12:09 PM---On 1/18/2016 9:50 AM, Ulrich Kulisch wrote: > Dear RicharRichard Fateman ---2016-01-18 06:12:09 PM---On 1/18/2016 9:50 AM, Ulrich Kulisch wrote: > Dear Richard and others,

From: Richard Fateman <fateman@xxxxxxxxxxxx>
To: Ian McIntosh/Toronto/IBM@IBMCA
Date: 2016-01-18 06:12 PM
Subject: Re: discussion period begins, until Jan. 26: "natural interval extension": friendly amendment to M001.02





On 1/18/2016 9:50 AM, Ulrich Kulisch wrote:
      Dear Richard and others,

      thank you for your mail. I think I do not have to tell you that I disagree with most of its contents. What can be wrong with the requirement to replace a slow and possibly wrong operation by a fast and correct one? The dot product is ubiquitous in Numerical Analysis


      Two students of Jim Demmel show that a dot product can exactly be computed in 1/6 of the time that is needed for computing a possibly wrong result in conventional floating-point arithmetic. Not to require it and let users thruggle with wrong results would be an irresponsible mistake. We would never have got NaN in processors if IEEE 754 not would have required it.
I think that there were representations for NaN and infinity in earlier computers.  The wikipedia article
https://en.wikipedia.org/wiki/Floating_point#NaNs
cites Conrad Zuse's designs(1941).   I think there were also exceptional operands in
various machines designed by Seymour Cray.    So NaNs existed before IEEE 754.


      There still is some competition among manufacturers and it needs only one who provides it and the others have to follow.
I think that your view of marketing strategy is unrealistic.  It has been demonstrated that manufacturers
provide features requested by users, not usually by standards (unless compliance is effectively
required by governments.)
      In the worst case a software simulation would not be much slower than a possibly wrong computation in conventional floating-point arithmetic.
That would be the most common case, and if you want to say that this
is a good idea, fine.  In a footnote you can say that hardware could do it faster.
      Additions and multiplications in fixed-point are simpler and faster than in floating-point with a complicated rounding mechanism after each single addition and multiplication
      .
      Let me tell you another story. In 1966 my university got a new computer called X8. I was the director of the computer center. In the same year Ramon Moore's book on interval arithmetic was published. It contains many fascinating ideas. To study and use them seemed promissing. But the X8 did not provide the operations with the directed roundings. So we studied the hardware of our computer and jointly with the manufacturer provided the operations with rounding downward. Rounding upward was done by roundup(x) = - rounddown(-x). This hardware extension was done in three hours. Within one year one of our collaborators implemented an ALGOL extension that provided a new data type and operations for intervals together with elementary functions.
      Fifty years later the operations with the directed roundings are still not yet reasonably provided on commercial processors.
This is my point.  The IEEE 754 standard required directed roundings.  And yet as
you say  (and I agree), this is not reasonably provided even today.  How can we explain this?

 By your reasoning,
all manufacturers would have implemented it, and even competed to be efficient in
setting rounding modes.  Why not? Probably because (with the except of fans of
interval arithmetic) the users have not demanded efficient setting of rounding modes.
The 754 standard + user demand was sufficient to promote standard data representations, but
inadequate as a driving force for efficient setting of rounding modes.

Based on evidence like this,  I suggest that it is unrealistic to believe that
the 1788 standard will drive the manufacturers to implement hardware EDP.

Like it or not, commercial manufacturers have other priorities.

      The situation certainly would be different if they were requested by a standard. We have to articulate what we need otherwise we will never get it.
I think that if there were many users demanding something along these lines, and
there were many choices, one of which is endorsed by an IEEE committee,  then
that IEEE standard choice might be adopted by one or more manufacturers. 
I haven't seen a groundswell for validated computing.

The downside of adding requirements to a standard is that it makes it
longer, more complex, less likely to be adopted.

      European supercomputing meetengs are held annually. They usually attract around 2000 participants. (Corresponding meetings in the US have twice as many participants). A majority of them struggles with numericl problems and problems of accuracy. For tens of millions of dollars we let them buy computers which are not optimized for their needs. As a mathematician I do not feel well in this situation.

There were 1,400 million android devices in Sept 2015.

http://www.androidcentral.com/google-says-there-are-now-14-billion-active-android-devices-worldwide
There are something like 700 million iPhones.

How many supercomputers? How many users of supercomputers?  How many of the users
 think they need an efficient implementation of interval arithmetic?  If you were a manufacturer,
where you spend your research and development dollars?

I think that niche standards such as 1788 have a limited opportunity to alter
  the computing environment.  I expect 1788 to be visible in the development
and distribution of standards-conforming software libraries.  If EDP is
such a valuable tool for such libraries, implementers should include it as
an internal component for those routines that benefit from it.
 Perhaps it should be made visible as an API to library users.  As far
as I can see, it  would not fit neatly into conventional programming languages.

Richard