Science Museum: Computing
While on a recent visit to London I spent an enjoyable afternoon at the Science Museum. What I found was more sustenance for my computing-fluids obsession. In fact I came across enough fascinating exhibits to fill several blog posts. I'll kick off with a computing-themed post, first covering computing prehistory starting with the Babbage Difference Engines and the Phillips Hydraulic Computer, and moving on to the dawn of supercomputing with the Cray-1.
Automatic Calculating Engines
The automatic calculating engines designed by Charles Babbage (1791-1871) are now recognized as forerunners of the analog and digital computers we are familiar with today. A failed attempt (1821-1834) to build Babbage's first engine, known as Difference Engine No. 1 (for tabulating polynomial functions using finite differences), led many to believe that his designs and ideas were a folly.
Undeterred by the failure to complete Difference Engine No. 1, Babbage went on to design a general purpose calculator for solving algebraic functions. Known as the Analytical Engine, it embodied many features common to modern computers, such as a memory (store), a central processor (mill) and a rudimentary programming language using punched cards. Babbage continued to develop the Analytical Engine design until his death in 1871.
Babbage's Difference Engine No. 2 (designed 1847-1849) built on the lessons learned from his previous engines and resulted in a simplified design that historians believe could have been realized with the materials and manufacturing skills of the day. In fact the British Science Museum commissioned the building of Difference Engine No. 2 (1989-1991). Remaining faithful to the materials and tolerances of the Victorian era, the museum team succeeded in producing a working version. The addition of the printer in 2002 completed the engine according to Babbage's original design. The result - it worked flawlessly.
How about simulating the economy with a computer? No big deal you say, in fact, given a lowly spreadsheet, you are up and running. How about trying to perform the simulation in 1949, when the number of computers on the planet could be counted on one hand? Tricky I hear you say, but not if you are the ingenious Bill Philips who hit upon the idea to use a hydraulic computer. Philips based his Monetary National Income Analogue Computer (MONIAC) on the movement of colored water through pipes connected to a series of tanks, valves and pumps. In real time you could see the flow of water (representing money) between tanks (variously representing the treasury, banks, health care, schools etc.).
Just imagine if digital computers hadn't developed at Moore's Law speeds - we could have found ourselves using fluid computers to simulate the world around us. I wonder how we would have simulated a fluid on a fluid computer?
The Cray-1 was the first supercomputer produced by Cray Research in 1976. Cray was synonymous with high performance computing until its demise in the 1990s. The Cray-1 was a 'vector machine,' i.e., it achieved its high computing speed by processing large arrays quickly. Can you guess what kind of applications called the Cray-1 home? Computational Fluid Dynamics (CFD) has always demanded high performance computing platforms and so CFD was a common application that ran on all the Cray machines.
As much effort as was expended on the design of the electronic components in the Cray-1 was also directed at keeping those same components cool. A dedicated liquid cooling system (using Freon) was used to dissipate the heat from the electronics. In fact, a 6-month delay in the delivery of the first Cray-1 was caused by cooling system problems and not the state-of-the-art electronics. Makes you wonder, if the designers of the Cray-1 had had access to CFD, could they have produced a better cooling system? But they would also have needed a Cray-1 to run the CFD simulation, bit of a chicken-and-egg situation.