Welcome to Scribd, the world's digital library. Read, publish, and share books and documents. See more
Standard view
Full view
of .
Save to My Library
Look up keyword
Like this
0 of .
Results for:
No results containing your search query
P. 1
Kahan Talk

Kahan Talk

Ratings: (0)|Views: 2 |Likes:
Published by kgrhoads
Kahan Talk
Kahan Talk

More info:

Published by: kgrhoads on Apr 15, 2014
Copyright:Traditional Copyright: All rights reserved


Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less





 Ruminations W. KahanPage 1 April 25, 2000 5:53 am
 Ruminations on theDesign of Floating-Point Arithmetic
 Prof. W. KahanUniv. of Calif. @ Berkeley
Floating-point can be understood better now than half a century ago. But the benefit of better understanding cannot reach computer programmers and users, most of them unwitting users of floating-point, unless floating-point providers (implementors of hardware and of programming languages) attend to vastly many details. These seem unfairly burdensome because nobody else cares about more than a few of them. Which few? Each detail matters in somebody’s program upon which others (perhaps we) may depend; but who knows? Disregarding any one detail will undermine the coherence of the rest of them and thus harm the whole community of floating-point users. The details descend from specifications for floating-point hardware and for its use by programming languages most of which, like
 , still disregard inconvenient details although they are implied by a few accidental constraints (like bus-widths) and by a short list of guiding principles paramount among which is
 Intellectual Economy
 . Alas, this crucial principle too much resembles pornography:I don’t know what it is, but I hope to recognize it if I see it.
 Ruminations W. KahanPage 2 April 25, 2000 5:53 am
 What about computers matters most? Speed?
About every 18 months it doubles.What matters more than speed isThroughput : Tasks/sec, Transactions/sec, which is not quite the same as speed.Unreliability degrades Throughput : Speed, in Operations per monthMalfunctions per month =––––––––––––––––––––––––––––––––––No. of Operations between Malfunctions
 How many malfunctions per month can you tolerate?
 Hardware is getting more reliable as well as faster.Software is not, so it imposes its own 
Law of Diminishing Returns
 upon hardware speed.Who notices this?Whether it be noticed varies a lot with the application, the personality, and the ability correctly to locate blame for a malfunction:“The fault, dear Brutus, is not in our stars, but in ourselves, ...” (
  Julius Caesar 
 I.i.139)or is it due to some anonymous programmer?Witness: expensive wreckage on Mars.
 Ruminations W. KahanPage 3 April 25, 2000 5:53 am
 Why is software so unreliable? Reliability costs too much.
 Why does reliability cost so much, often more than it would be worth ?Establishing software reliability combines the methods of mathematical and experimental sciences in a way antithetical to their natures: Mathematics and Science flourish around precious truthseternal or at least fairly durable, as software is not.Too few people master the analytical skills needed to achieve reliability.
 A minority among holders of Computer Science degrees are actually Scientists.
 Quantity must make up for a lack of Quality; thereforemany a software house employs rather more peopletesting software than creating it.Business:Reliability is a cost-, not a revenue-center.Engineering:Reliability is a matter of degree, subject to trade-offs;utter reliability is solely Death’s prerogative.If we yearn to improve software’s reliability,we must (re)design computer hardware and software,programming languages most of all,to cut the price paid for reliabilitywithout significantly degrading functionality,especially speed.What remains to be seen is how this desideratum -
reduce reliability’s price without harming performance
 -translates into strictures upon floating-point providers.Details.

You're Reading a Free Preview

/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->