Unum (number format)
The unum (universal number[1]) format is a format similar to floating point, proposed by John Gustafson as an alternative to the now ubiquitous IEEE 754 format. The proposal and justification are explained in his book The End of Error.[2]
The two defining features of the unum 1.0 format (while unum 2.0 is different[3]) are:
- a variable-width storage format for both the significand and exponent, and
- a u-bit, which determines whether the unum corresponds to an exact number (u=0), or an interval between consecutive exact unums (u=1). In this way, the unums cover the entire extended real number line [−∞,+∞].
For performing computation with the format, Gustafson proposes using interval arithmetic with a pair of unums, what he calls a ubound, providing the guarantee that the resulting interval contains the exact solution.
Unum implementations have been explored in Julia.[4][5][6][7] including unum 2.0 (or at least a modified version of his new proposal).[8] Recently, unum has been explored in MATLAB.[9][10] Also, Roger Stokes has a learning lab for unum 2.0 in J language.
William Kahan and John Gustafson discussed unums at the Arith23 conference[11][12][13][14] on July 12, 2016.
Posit
In December 2016, Gustafson proposed unum type III, posit and valid. Posit is a hardware friendly version of unum where difficulties faced in the original unum due to its variable size is resolved. The first journal paper on posit: http://superfri.org/superfri/article/view/137/232 . More information is available: https://posithub.org
Critique
William Kahan, the principal architect of IEEE 754-1985 criticizes unums on the following grounds:[13][15]
- Unum computation does not always deliver correct results.
- The description of unums sidesteps using unum for solving calculus problems.
- Unums can be expensive in terms of time and power consumption.
- Each computation in unum space is likely to change the bit length of the structure. This requires either unpacking them into a fixed-size space, or data allocation, deallocation, and garbage collection during unum operations, similar to the issues for dealing with variable-length records in mass storage.
- Unums provide only two kinds of numerical exception, quiet and signaling NaN (Not-a-Number).
- Unum computation may deliver overly loose bounds from the selection of an algebraically correct but numerically unstable algorithm.
- The costs and benefits of unum over short precision floating point for problems requiring low precision are not obvious.
- Solving differential equations and evaluating integrals with unums guarantee correct answers but may not be as fast as methods that usually work.
See also
- Karlsruhe Accurate Arithmetic (KAA)
- Q (number format)
- Significant figures
- Tapered floating point
References
- ↑ Tichy, Walter F. (April 2016). "The End of (Numeric) Error: An interview with John L. Gustafson". Ubiquity - Information everywhere. Association for Computing Machinery (ACM). 2016 (April): 1–14. doi:10.1145/2913029. Archived from the original on 2016-07-10. Retrieved 2016-07-10.
JG: The word "unum" is short for "universal number," the same way the word "bit" is short for "binary digit."
- ↑ Gustafson, John L. (2016-02-04) [2015-02-05]. The End of Error: Unum Computing. Chapman & Hall / CRC Computational Science. 24 (2nd corrected printing, 1st ed.). CRC Press. ISBN 978-1-4822-3986-7. Retrieved 2016-05-30.
- ↑ Tichy, Walter (September 2016). "Unums 2.0: An Interview with John L. Gustafson". Ubiquity.ACM.org. Retrieved 2017-01-30.
I started out calling them "unums 2.0," which seemed to be as good a name for the concept as any, but it is really not a "latest release" so much as it is an alternative.
- ↑ Byrne, Simon (2016-03-29). "Implementing Unums in Julia". Retrieved 2016-05-30.
- ↑ "Unum arithmetic in Julia: Unums.jl". Retrieved 2016-05-30.
- ↑ "Julia Implementation of Unums: README". Retrieved 2016-05-30.
- ↑ "Unum (Universal Number) types and operations: Unums". Retrieved 2016-05-30.
- ↑ "jwmerrill/Pnums.jl". Github.com. Retrieved 2017-01-30.
- ↑ Ingole, Deepak; Kvasnica, Michal; De Silva, Himeshi; Gustafson, John L. "Reducing Memory Footprints in Explicit Model Predictive Control using Universal Numbers. Submitted to the IFAC World Congress 2017". Retrieved 2016-11-15.
- ↑ Ingole, Deepak; Kvasnica, Michal; De Silva, Himeshi; Gustafson, John L. "MATLAB Prototype of unum (munum)". Retrieved 2016-11-15.
- ↑ "Program: Special Session: The Great Debate: John Gustafson and William Kahan". Arith23: 23rd IEEE Symposium on Computer Arithmetic. Silicon Valley, USA. 2016-07-12. Archived from the original on 2016-05-30. Retrieved 2016-05-30.
- ↑ Gustafson, John L.; Kahan, William M. (2016-07-12). The Great Debate @ARITH23: John Gustafson and William Kahan (1:34:41) (video). Retrieved 2016-07-20.
- 1 2 Kahan, William M. (2016-07-16) [2016-07-12]. "A Critique of John L. Gustafson's THE END of ERROR — Unum Computation and his A Radical Approach to Computation with Real Numbers" (PDF). Santa Clara, CA, USA: IEEE Symposium on Computer Arithmetic, ARITH 23. Archived (PDF) from the original on 2016-07-25. Retrieved 2016-07-25.
- ↑ Gustafson, John L. (2016-07-12). ""The Great Debate": Unum arithmetic position paper" (PDF). Santa Clara, CA, USA: IEEE Symposium on Computer Arithmetic, ARITH 23. Retrieved 2016-07-20.
- ↑ Kahan, William M. (2016-07-15). "Prof. W. Kahan’s Commentary on “THE END of ERROR — Unum Computing” by John L. Gustafson, (2015) CRC Press" (PDF). Archived (PDF) from the original on 2016-08-01. Retrieved 2016-08-01.
Further reading
- Gustafson, John L. (March 2013). "Right-Sizing Precision: Unleashed Computing: The need to right-size precision to save energy, bandwidth, storage, and electrical power" (PDF). Archived (PDF) from the original on 2016-06-06. Retrieved 2016-06-06.
- Brueckner, Rich (2015-03-02). "Slidecast: John Gustafson Explains Energy Efficient Unum Computing". The Rich Report. Inside HPC. Archived from the original on 2016-07-10. Retrieved 2016-06-10.
- Gustafson, John L. (2015). "The end of numerical error" (PDF). Archived (PDF) from the original on 2016-06-06. Retrieved 2016-06-06.
- Gustafson, John L. (2016-06-03) [2016-02-22]. "A Radical Approach to Computation with Real Numbers - Unums version 2.0" (PPT). Archived from the original on 2016-07-10. Retrieved 2016-07-10. (NB. PDFs come without notes: )
- Gustafson, John L. (2016-06-06). "An Energy-Efficient and massively parallel approach to valid numerics" (PPT). OCRAR Seminar. Archived from the original on 2016-07-10. Retrieved 2016-07-10.
- Gustafson, John L. (2016). "A Radical Approach to Computation with Real Numbers" (PDF). SuperFri.org. Archived (PDF) from the original on 2016-07-10. Retrieved 2016-07-10.
- Kulisch, Ulrich W. (2015). "Up-to-date Interval Arithmetic from closed intervals to connected sets of real numbers" (PDF) (preprint). Institut für Angewandte und Numerische Mathematik - Karlsruhe Institute of Technology (KIT), Germany. ID 15/02. Archived (PDF) from the original on 2016-07-12. Retrieved 2016-07-12.
- Risse, Thomas (2016-03-10). "Unum – an expedient extension of IEEE 754" (PDF) (presentation). London South Bank University (LSBU), UK: Institute of Informatics & Automation (IIA), Faculty EEE & CS, Bremen University of Applied Sciences, Germany. Archived (PDF) from the original on 2016-07-12. Retrieved 2016-07-12.
- Kahan, William M. (2016-07-15). "Prof. W. Kahan's Comments on SORN Arithmetic" (PDF). Archived (PDF) from the original on 2016-08-01. Retrieved 2016-08-01.
- Hunhold, Laslo (2016-11-08). The Unum Number Format: Mathematical Foundations, Implementation and Comparison to IEEE 754 Floating-Point Numbers (PDF) (Bachelor thesis). Universität zu Köln, Mathematisches Institut. arXiv:1701.00722v1 . Archived (PDF) from the original on 2017-01-07. Retrieved 2016-10-23.
- Sterbenz, Pat H. (1974-05-01). Floating-Point Computation. Prentice-Hall Series in Automatic Computation (1st ed.). Englewood Cliffs, New Jersey, USA: Prentice Hall. ISBN 0-13-322495-3.
- Cave, Skip (2016-08-17). "J Programming Language Implementation of 3-bit, 4-bit, 8-bit and 16-bit Precision Unums". Retrieved 2017-05-03. (Roger Stokes' download link: http://www.learningj.com/unumslab.zip)