User Tools

Site Tools


Indefinite Scalability

Introduction: Hardware determinism

Despite wide awareness that current computer systems suffer from dwindling scalability and declining securability, the entrenched architectural choice underlying both problems—the stipulation of hardware determinism—is rarely reconsidered.

In the traditional approach to digital computing, the physical hardware is required to be deterministic: The machine is to operate in clearly-defined discrete steps, and the state of the machine (the values of all its 'bits' collectively) after a step is absolutely and completely determined by the state of the machine when the step began. In the agreement between hardware and software, the hardware is not allowed to produce any surprises or unanticipated conditions: nothing misread or misstated, no oopsies or booboos or broken alarm clocks, no excuses of any kind. If hardware can't perform its duties perfectly, for whatever reason, its final obligation is to kill itself: to crash and “end the world”, rather than produce a wrong answer.

Deterministic hardware makes the programmer's job much easier, and it has been a remarkable, world-changing success in the marketplace, but it ultimately scales poorly and offers poor security. However, since hardware determinism now underpins so many other computational design decisions, incremental attempts to move beyond determinism, historically, have struggled to gain traction.

An alternative: Indefinite scalability

Any individual computing device is a finite machine, both in physical size and in computational capacity. But 'finite' doesn't mean 'isolated': To be useful, a finite machine has external connections, at least for power and communications. We define an indefinitely scalable machine to be any procedure for tiling space with finite machines, with no a priori requirements that such a tiling have any particular properties—like aligning tile outputs with adjacent inputs. So tiling space by, say, laying HP65 pocket calculators out in a grid is admissible as an indefinitely scalable machine—it will just prove not to be a very good one, once we start defining metrics on indefinitely scalable machines.

introduction/indefinite_scalability.txt · Last modified: 2015/05/08 07:08 by ackley