Implement the "unum" representation in D ?
Nick B via Digitalmars-d
digitalmars-d at puremagic.com
Fri Jul 10 20:02:22 PDT 2015
On Thursday, 20 February 2014 at 10:10:13 UTC, Nick B wrote:
>
> Hi everyone.
>
> John Gustafson Will be presenting a Keynote on Thursday 27th
> February at 11:00 am
>
> The abstract is here:
> http://openparallel.com/multicore-world-2014/speakers/john-gustafson/
>
> There is also a excellent background paper, (PDF - 64 pages)
> which can be found here:
>
FYI
John Gustafson book is now out:
It can be found here:
http://www.amazon.com/End-Error-Computing-Chapman-Computational/dp/1482239868/ref=sr_1_1?s=books&ie=UTF8&qid=1436582956&sr=1-1&keywords=John+Gustafson&pebp=1436583212284&perid=093TDC82KFP9Y4S5PXPY
Here is one of the reviewers comments:
9 of 9 people found the following review helpful
This book is revolutionary
By David Jefferson on April 18, 2015
This book is revolutionary. That is the only way to describe it.
I have been a professional computer science researcher for almost
40 years, and only once or twice before have I seen a book that
is destined to make such a profound change in the way we think
about computation. It is hard to imagine that after 70 years or
so of computer arithmetic that there is anything new to say about
it, but this book reinvents the subject from the ground up, from
the very notion of finite precision numbers to their bit-level
representation, through the basic arithmetic operations, the
calculation of elementary functions, all the way to the
fundamental methods of numerical analysis, including completely
new approaches to expression calculation, root finding, and the
solution of differential equations. On every page from the
beginning to the end of the book there are surprises that just
astonished me, making me re-think material that I thought had
been settled for decades.
The methods described in this book are profoundly different from
all previous treatments of numerical methods. Unum arithmetic is
an extension of floating point arithmetic, but mathematically
much cleaner. It never does rounding, so there is no rounding
error. It handles what in floating point arithmetic is called
"overflow" and "underflow" in a far more natural and correct way
that makes them normal rather than exceptional. It also handles
exceptional values (NaN, +infinity, -infinity) cleanly and
consistently. Those contributions alone would have been a
profound contribution. But the book does much more.
One of the reasons I think the book is revolutionary is that
unum-based numerical methods can effortlessly provide provable
bounds on the error in numerical computation, something that is
very rare for methods based on floating point calculations. And
the bounds are generally as tight as possible (or as tight as you
want them), rather than the useless or trivial bounds as often
happens with floating point methods or even interval arithmetic
methods.
Another reason I consider the book revolutionary is that many of
the unum-based methods are cleanly parallelizable, even for
problems that are normally considered to be unavoidably
sequential. This was completely unexpected.
A third reason is that in most cases unum arithmetic uses fewer
bits, and thus less power, storage, and bandwidth (the most
precious resources in today’s computers) than the comparable
floating point calculation. It hard to believe that we get this
advantage in addition to all of the others, but it is amply
demonstrated in the book. Doing efficient unum arithmetic takes
more logic (e.g. transistors) than comparable floating point
arithmetic does, but as the author points out, transistors are so
cheap today that that hardly matters, especially when compared to
the other benefits.
Some of the broader themes of the book are counterintuitive to
people like me advanced conventional training, so that I have to
re-think everything I “knew” before. For example, the discussion
of just what it means to “solve” an equation numerically is
extraordinarily thought provoking. Another example is the
author’s extended discussion of how calculus is not the best
inspiration for computational numerical methods, even for
problems that would seem to absolutely require calculus-based
thinking, such as the solution of ordinary differential equations.
Not only is the content of the book brilliant, but so is the
presentation. The text is so well written, a mix of clarity,
precision, and reader friendliness that it is a pure pleasure to
read, rather then the dense struggle that mathematical textbooks
usually require of the reader. But in addition, almost every page
has full color graphics and diagrams that are completely
compelling in their ability to clearly communicate the ideas. I
cannot think of any technical book I have ever seen that is so
beautifully illustrated all the way through.
I should add that I read the Kindle edition on an iPad, and for
once Amazon did not screw up the presentation of a technical
book, at least for this platform. It is beautifully produced, in
full color and detail, and with all of the fonts and graphics
reproduced perfectly.
Dr. Gustafson has also provided a Mathematica implementation of
unums and of the many numerical methods discussed in the book.
Let us hope that in the next few years there will be
implementations in other languages, followed by hardware
implementations. Over time there should be unum arithmetic units
alongside of floating point arithmetic units on every CPU and GPU
chip, and in the long run unums should replace floating point
entirely. The case the author makes for this is overwhelming.
If you are at all interested in computer arithmetic or numerical
methods, read this book. It is destined to be a classic.
More information about the Digitalmars-d
mailing list