Abstract
Analog computing is often considered to be an outdated technology only to be found and cared for in museums but not as the basis of modern cutting edge computing. Nothing could be further from reality. Together with quantum computers, analog computers complement today's stored program digital computers, acting as co-processors for certain types of computationally intensive tasks. They are highly energy efficient and exhibit a degree of parallelism that by far surpasses classic digital computers. In contrast to quantum computers, analog computers do not require exotic technologies, no intricate cooling systems, no elaborate shielding systems, etc. In addition to this there already exists a plethora of proven programs for analog computers to solve a wide variety of problems. This paper describes the necessity of analog computing for the twenty-first century, gives a short introduction to the structure and programming of analog computers, before discussing future application areas. Analog computing will drastically alter the way we think about computing in the years to come as it will become an integral part of every high performance computer. It will be an indispensable technology for future AI systems, it will revolutionize many medical applications, it might even replace or at least complement, certain types of quantum computers, etc.
Acknowledgments
The author would like to thank Dr. Chris Giles for fruitful discussions and his meticulous proof reading.
Disclosure statement
No potential conflict of interest was reported by the author(s).
Notes
1 This paper is based on a keynote talk delivered at the 66. Workshop Ulm of the Multi Projekt Chip Gruppe, June 30th, 2023.
2 It should be noted that there a certain class of analog computers, DDAs (Digital Differential Analysers), represent values in a binary fashion while still implementing a set of independent computing elements which are interconnected with each other to implement a program. This approach allows for arbitrary precision at the cost of rather high energy consumption, comparable to a classic digital computer.
3 This accounts for a large part of the overall energy consumption of a digital computer.
4 Always assuming there is enough memory to hold all instructions and variables for the solution of the problem.
5 It is best to think in terms of this abstract interval instead of the actual minimum and maximum voltages or currents representing these values in order to simplify programming and scaling. Early vacuum tube based analog computers typically used voltages between V to represent values. These voltages later dropped to V and sometimes only V in transistorized machines, while modern implementations use V and even smaller voltage intervals at much increased bandwidths and thus much greater computational power.
6 There are cases when this simple approach cannot be applied directly, but these are well outside the scope of this paper. More information about this can be found in [Citation30, pp. 98 ff.].
7 Scaling can be quite tedious when done manually. Using a program like DEQscaler, see https://github.com/bernd-ulmann/DEQscaler, simplifies things considerably.
8 The dots over the unknown function represent derivatives with respect to time.
9 Due to the actual implementation of such integrators, they typically perform an implicit sign inversion. Summers behave similarly.
10 This time-scale factor describes the speed at which an integrator runs. In the case of the output of an integrator will reach −1 with a constant input of +1 after one second. If this value will be reached after one millisecond, etc.
11 A recent and thorough introduction to analog and hybrid computer programming can be found in [Citation30].
12 A detailed history of analog computers can be found in [Citation31] while [Citation32] gives a great overview over the early years of analog flight simulation.
13 One example for such a language is Legno, see [Citation1].
14 A nice signal processing board based on such an FPAA was developed and is sold by Nicolas Steven Miller (https://zrna.org). These boards can be easily configured using a Python client.
17 A comprehensive treatment of digital versus analog AI accelerators can be found in [Citation28].
20 ReRAM cells are typically not considered being Memristors due to their rather different behavior.
21 Based on the Feynman-Kac formula (see [Citation7, pp. 108 ff.]) a Monte-Carlo approach for solving PDEs is described in [Citation17].
22 See [Citation9] for an introduction to this application area.
23 See https://the-analog-thing.org and https://github.com/anabrid/the-analog-thing for details.