E-Book, Englisch, 416 Seiten
Unum Computing
E-Book, Englisch, 416 Seiten
Reihe: Chapman & Hall/CRC Computational Science
ISBN: 978-1-351-66560-5
Verlag: Taylor & Francis
Format: EPUB
Kopierschutz: Adobe DRM (»Systemvoraussetzungen)
Written by one of the foremost experts in high-performance computing and the inventor of Gustafson’s Law, The End of Error: Unum Computing explains a new approach to computer arithmetic: the universal number (unum). The unum encompasses all IEEE floating-point formats as well as fixed-point and exact integer arithmetic. This new number type obtains more accurate answers than floating-point arithmetic yet uses fewer bits in many cases, saving memory, bandwidth, energy, and power.
A Complete Revamp of Computer Arithmetic from the Ground Up
Richly illustrated in color, this groundbreaking book represents a fundamental change in how to perform calculations automatically. It illustrates how this novel approach can solve problems that have vexed engineers and scientists for decades, including problems that have been historically limited to serial processing.
Suitable for Anyone Using Computers for Calculations
The book is accessible to anyone who uses computers for technical calculations, with much of the book only requiring high school math. The author makes the mathematics interesting through numerous analogies. He clearly defines jargon and uses color-coded boxes for mathematical formulas, computer code, important descriptions, and exercises.
Zielgruppe
Researchers in high performance computing, computational science, and computer arithmetic.
Autoren/Hrsg.
Fachgebiete
Weitere Infos & Material
A New Number Format: The Unum
Overview
Fewer bits. Better answers
Why better arithmetic can save energy and power
Building up to the unum format
A graphical view of bit strings: Value and closure plots
Negative numbers
Fixed point format
Floating point format, almost
What about infinity and NaN? Improving on IEEE rules
The "original sin" of computer arithmetic
The acceptance of incorrect answers
"Almost infinite" and "beyond infinity"
No overflow, no underflow, and no rounding
Visualizing ubit-enabled numbers
The complete unum format
Overcoming the tyranny of fixed storage size
The IEEE Standard float formats
Unum format: Flexible range and precision
How can appending extra bits save storage?
Ludicrous precision? The vast range of unums
Changing environment settings within a computing task
The reference prototype
Special values in a flexible precision environment
Converting exact unums to real numbers
A complete exact unum set for a small utag
Inexact unums
A visualizer for unum strings
Hidden scratchpads and the three layers
The hidden scratchpad
The unum layer
The math layer
The human layer
Moving between layers
Summary of conversions between layers in the prototype
Are floats "good enough for government work"?
Information per bit
Information as the reciprocal of uncertainty
"Unifying" a bound to a single ULP
Unification in the prototype
Can ubounds save storage compared with traditional floats?
Fixed-size unum storage
The Warlpiri unums
The Warlpiri ubounds
Hardware for unums: Faster than float hardware?
Comparison operations
Less than, greater than
Equal, nowhere equal, and "not nowhere equal"
Intersection
Add/subtract, and the unbiased rounding myth
Re-learning the addition table … for all real numbers
"Creeping crud" and the myth of unbiased rounding
Automatic error control and a simple test of unum math
Multiplication and division
Multiplication requires examining each quadrant
Hardware for unum multiplication
Division introduces asymmetry in the arguments
Powers
Square
Square root
Nested square roots and "ULP straddling"
Taxing the scratchpad: Integers to integer powers
A practice calculation of xy at low precision
Practical considerations and the actual working routine
Exp(x) and "The Table-Maker’s Dilemma"
Other important unary operations
Scope of the prototype
Absolute value
Natural logarithm, and a mention of log base 2
Trig functions: Ending the madness by degrees
Fused operations (single-use expressions)
Standardizing a set of fused operations
Fused multiply-add and fused multiply-subtract
Solving the paradox of slow arithmetic for complex numbers
Unum hardware for the complete accumulator
Other fused operations
Trial runs: Unums face challenge calculations
Floating point II: The wrath of Kahan
Rump’s royal pain
The quadratic formula
Bailey’s numerical nightmare
Fast Fourier Transforms using unums
A New Way to Solve: The Ubox
The other kind of error
Sampling error
The deeply unsatisfying nature of classical error bounds
The ubox approach
Walking the line
A ubox connected-region example: Computing the unit circle area
A definition of answer quality and computing "speed"
Another Kahan booby trap: The "smooth surprise"
Avoiding interval arithmetic pitfalls
Useless error bounds
The wrapping problem
The dependency problem
Intelligent standard library routines
Polynomial evaluation without the dependency problem
Other fused multiple-use expressions
What does it mean to "solve" an equation?
Another break from traditional numerical methods
A linear equation in one unknown, solved by inversion
"Try everything!" Exhaustive search of the number line
The universal equation solver
Solvers in more than one dimension
Summary of the ubox solver approach
Permission to guess
Algorithms that work for floats also work for unums
A fixed-point problem
Large systems of linear equations
The last resort
Pendulums done correctly
The introductory physics approach
The usual numerical approach
Space stepping: A new source of massive parallelism
It’s not just for pendulums
The two-body problem (and beyond)
A differential equation with multiple dimensions
Ubox approach: The initial space step
The next starting point, and some state law enforcement
The general space step
The three-body problem
The n-body problem and the galaxy colliders
Calculus considered evil: Discrete physics
Continuum versus discrete physics
The discrete version of a vibrating string
The single-atom gas
Structural analysis
The end of error
Glossary
For further reading
Appendix A: Glossary of unum functions
Appendix B: Glossary of ubox functions
Appendix C: Algorithm listings for Part 1
Appendix D: Algorithm listings for Part 2
Index