Dr. Dobb's is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.


Channels ▼
RSS

Design

Is Lee Harvey Oswald Writing NASA's Software?


Maxwell changed the paradigm of his time. In like manner by introducing relativity (among other things), Albert Einstein showed that a preferred frame of reference didn't exist and caused a paradigm shift in our global view of the universe. In the 1920s, quantum mechanics introduced another paradigm shift when observing the extremely small. Science is still wrestling with the task of integrating these three paradigm shifts into a single "Unified Theory of Everything." When they succeed, the scientific paradigm will change again.

We work in a computational paradigm that reflects a direct translation of the infinitesimal used by Isaac Newton in his formulation of calculus. Newton based calculus on the concept of infinitely precise real numbers, manipulated symbolically or used with the precision necessary to perform satisfactory approximations. The presently accepted numerical computational paradigm says that the IEEE-754 standard for floating-point arithmetic contains enough precision to meet Newton's criteria. Unfortunately, that particular paradigm is not true under many circumstances.

The flaw is not a secret. It is well-known. Symbolic software packages such as Derive, Maple, Mathematica, MACSYMA, and others have been developed to circumvent these problems. These packages not only allows symbolic calculations, but also let users perform numerical calculations in arbitrary precision as a better approximation to Newton's infinitesimals.

Some languages have been extended to allow arbitrarily precise approximations. LISP allows arbitrarily large integers. SCHEME (a dialect of LISP) uses arbitrarily precise rational numbers. REXX lets users specify the precision of the floating-point numbers used. Packages for Ada allow arbitrarily precise rationals. A FORTRAN extension called ACRITH allows high precision. A technique called interval arithmetic allows the estimation of errors.

Why then are all the large-scale programs written without these aids? Why is every significant computation performed on a supercomputer done without any means of even estimating the amount of error in the computations? Why, even though scientists and engineers know their calculations are guaranteed to be inaccurate at some point in the approximation, do we invest billions of dollars in these systems?

A second reason is that some of the problems being attacked may not have numerical solutions. At the turn of the century, Henri Poincare showed that many real-world problems have an extraordinary sensitivity to initial conditions and computational perturbations. A couple of decades later, Kurt Godel showed that a number of problems can be properly formulated in any mathematical system that can have no solutions within that system. Building on that concept, Alan Turing showed that some computer programs will have no predictable result. (His halting problem shows that a program may halt or not, but we are unable to say if a program that has not halted in a finite period of time will not halt in some subsequent period of time.)

All these observations of the world indicate that we need to investigate the solvability of our problems before we leap in to solve them. Once again, the people in charge are reluctant to go to their funding sources and say: "We need additional money to determine if the problems we have been working on the past decade are solvable."

It is always easier to claim that the next generation of supercomputer will have the power necessary to make the existing code perform the miraculous transformation to accuracy. More FLOPS is a cry Congress can rally around. As each new generation of hardware comes on-line, the excuse can always be, "Just three orders of magnitude more."

Does a conspiracy of silence exist? We are running code we can't verify for any but a trivial subset of operating parameters. We are attempting to solve problems we have not verified as solvable within our numerical framework. We continue to look for faster hardware to answer our problems. You decide.


Related Reading


More Insights






Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

 
Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.