Computing with Quantum Cats Page 7
A GERMAN DIVERSION
In the mid-1930s, a German engineer called Konrad Zuse, working in the aircraft industry, developed an electromechanical calculating machine using binary arithmetic. He was completely ignorant of developments in other parts of the world, and worked everything out from scratch. This Z1, completed in 1938, used on/off switches in the form of steel pins that could be positioned to the right or left of a steel lug using electromagnets. A friend of Zuse's, Helmut Schreyer, suggested that vacuum tubes (of which more below) would be more efficient, and the two of them calculated that a machine using 2,000 tubes would be feasible; but, like their counterparts in the United States they felt that the technology of the time was too unreliable to be put to practical use immediately. With the outbreak of war, Zuse was called up for the army, but after six months he was discharged to work at the Henschel aircraft factory, where he was involved in the development of the V1, the first cruise missile. He offered the authorities his and Schreyer's idea of a 2,000-tube computer to use in directing anti-aircraft fire, but when he said the project would need two years to come to fruition he was told it was not worth funding because the war would be over by then.
Instead, working essentially alone, in his spare time, with some help from friends, under difficult wartime conditions, Zuse developed a new machine, using electromechanical relays of the kind used in telephone systems. The complete machine was known as Z3, because Z2 was assigned to a smaller machine used to test some of the components. Z3 was intended to be the electromechanical equivalent of an electronic tube machine, so that the switch to tubes could be made easily as the next step, with tubes replacing relays. Z3 was a programmable machine with 2,400 relays, 1,800 used for memory and 600 in the calculating part of the machine. It was completed in 1941—the world's first programmable electromechanical digital computer, but not the first electronic computer, and not the first stored-program computer.9 The success of the Z3 and the fact that the war showed no sign of ending encouraged support for a more powerful machine, to be called Z4; although this was not completed before the end of the conflict, it was the only one of Zuse's machines to survive the bombing, although replicas of his Z1 and Z3 machines have since been built. Zuse was able to smuggle the partly built Z4 out of Germany to the ETH in Zürich, where it was completed in 1950 (making it arguably the world's first operational commercial computer) and ran until 1955. By the time Zuse was able to pick up the threads of his work, however, he had been overtaken by events elsewhere. His story is no more than a detour on our route to the modern machine.
THE SECOND STRAND
Electronics, the second strand of the American heritage, had developed rapidly in the 1920s and 1930s. At the beginning of the twentieth century, John Fleming in Britain and Lee de Forest in the United States had independently invented the thermionic valve, known in the US as the vacuum tube. Each name describes part of the function of the device. In an evacuated glass tube, a stream of electrons flows from a cathode through the vacuum to be picked up by an anode. The flow of electrons can be switched on and off by applying a secondary electric current to a “grid” in the tube, just as the flow of water in a pipe can be controlled by a valve. The tube acts like a valve controlling the flow of electrons. Later refinements allow for more sophisticated interactions with the electron beam, but in the context of the development of computers, it is the fact that they can be on or off, corresponding to the binary states 0 or 1, that matters.
One big incentive encouraging the development of electronic valves was (or perhaps I should say, given Flowers’ experience, should have been) the need for automatic telephone exchanges; the other was the prospect of television. Like the valve/tube, television was developed more or less simultaneously in the UK and US. Many people contributed, but the relevant thread here can be traced through the work of Vladimir Zworykin, a Russian-born inventor who studied with Boris Rosing in St. Petersburg and Paul Langevin in Paris before becoming a signals officer in the Russian Army in the First World War. In 1918, aged twenty-nine, during the turmoil of the Russian Civil War Zworykin fled to America; he returned to work for the White government, but when the Reds won the conflict, he settled in the US. There he worked for Westinghouse in Pittsburgh and then for RCA, developing a camera tube system called the iconoscope, not unlike the cathode ray tubes used by home televisions before the advent of “flat” screens. Zworykin's cathode ray tubes were used both as transmitter and as receiver.
In an interview reported by Albert Abramson, Zworykin said that the development of electronics in the first half of the twentieth century occurred in three stages.
In the first, beginning with [de Forest] in 1906 and ending with the First World War, electron currents were controlled in vacuum tubes in much the same manner as a steam valve controls the flow of steam in a pipe…no more attention was paid to the behavior of the individual electrons in the tube than is customarily expended on the motion of the individual steam molecules in the valve.
In the second stage, in the 1920s, “the directed, rather than random, character of electron motion in vacuum was applied in the cathode-ray tube.” And in the third stage, in the 1930s and later, beams of electrons were divided into groups “either on the basis of time, the electrons being bunched at certain phases of an applied high-frequency field,10…or of space, as in image-forming devices.”11
So the third stage of the development of electronics in the US was well under way by the time gathering war clouds in Europe spurred the development of faster calculating devices, both for working out conventional firing tables and for the even trickier problem of improving the success of anti-aircraft gunnery by calculating in real time the speed and altitude of aircraft in order to set fuses to explode at the right height. This ambitious objective would not be achieved in time to influence anti-aircraft gunnery during the Second World War. But the spinoffs from making the attempt were immense.
Almost as soon as Germany invaded Poland in 1939 the US army commissioned RCA to begin work on such a computer. Jan Rajchman, a Polish immigrant working for Zworykin's team, led the way in developing a technique for sorting and switching pulses of electrons inside vacuum tubes in such a way that a single tube could be used to multiply two numbers together and add a third number to the answer, working in binary math. The result was a single-purpose machine called the Computron; it's some indication of how difficult this work was, using 1940s technology, that a patent application for such a “Calculating Device” was not filed until July 1943. By then, the RCA team was also working to develop a data storage device—what we would now call Random Access Memory (RAM)—using vacuum tubes; it would be known as the Selectron, but would prove rather unwieldy in practice, and was overtaken by other developments. All of this activity caught the attention of von Neumann, who was a frequent visitor to RCA, and he decided that this was the “go-to” place for the development of electronic digital computers. By then, too, he had something to build on.
ENIAC
Herman Goldstine had obtained a PhD in mathematics from the University of Chicago in 1936, and stayed there for the next three years, working with the mathematician Gilbert Bliss and becoming known to, among others, Oswald Veblen. He was teaching ballistics at the University of Michigan when, in the summer of 1942, he was called up to serve with the Army Air Force and sent to California for training before being posted overseas. Aware that there were better uses for Goldstine's talents, Oswald Veblen officially requested that he be posted instead to the Aberdeen Proving Ground. Goldstine actually received two sets of orders on the same day, one instructing him to ship out across the Pacific, the other ordering him to report to Aberdeen. He set off east as fast as he could, with fresh lieutenant's bars on his shoulders.
Goldstine was assigned to the Moore School, where it was becoming clear that however many human “computers” were employed they would never be able to clear the firing table bottleneck. There, in the autumn of 1942, he met John Mauchly, a physicist who had been teaching at
Ursinus College in Philadelphia at the outbreak of war; recruited to a training course in electronics at the Moore School, he had shown such aptitude that he was asked to join the faculty before he had completed the course. “By August 1942,” writes Goldstine,
he had advanced his thinking [about computing machines] enough to write a brief memorandum summarising his ideas; this was circulated among his colleagues and perhaps most notably to a young graduate student, J. Presper Eckert, Jr., who was undoubtedly the best electronic engineer in the Moore school. He immediately, as was his wont, immersed himself in the meager literature on counting circuits and rapidly became an expert in the field.
Mauchly took the lead on a proposal, pushed forward by Goldstine and received with enthusiasm by Veblen, for a digital electronic computer; submitted on April 2, 1943, the proposal was accepted just a week later. Eckert became the chief engineer on the project, which developed at frantic wartime pace. The end product, little more than two and a half years later, was a machine known as ENIAC (for Electronic Numerical Integrator And Computer), which contained 17,468 vacuum tubes, about 70,000 resistors and 1,500 relays, weighed 30 tons and used 174 kilowatts of electricity. It stood 10 feet high and 3 feet wide, and the cabinets, which stood side by side in a large “U” shape, would have stretched out along a single line for 100 feet if laid end to end. Input and output used IBM card readers and punches.
Right at the start of the project, Goldstine and his engineer colleagues made visits to the RCA Research Laboratories in Princeton, becoming familiar with the work of Zworykin and Rajchman. The contract for the construction of the machine, signed with the Moore School on June 5, 1943, had originally been offered to RCA, but Zworykin, in a rare moment of under-optimism, expected it to fail and turned the project down, although RCA staff, including Jan Rajchman, were still closely involved as consultants. Designed for the specific job of preparing firing tables, ENIAC was flexible enough to be adapted to a stored program system after the war, and ran until October 1955, tackling problems that included weather prediction, cosmic-ray studies and wind-tunnel design; but in its original incarnation it was “programmed” using a plugboard system that could take weeks to set up for a specific type of problem. The conversion, based on a 51-word instruction set devised by Herman Goldstine's wife Adele, “slowed down the machine's operation, [but] speeded up the programmer's task enormously…the old method was never used again.”12
A friend of mine, Lawrence Lerner, recalls working at the Aberdeen Proving Ground in 1953, writing programs in machine language for ENIAC, which “was very impressive to look at, mostly through windows from the control room.” At that time, both the relay computer and ENIAC were still functioning. The relay machine, he says,
was more fun to watch; it filled a large room with glass-topped cases full of relays, and there were seemingly random clicks from all over the room as the machine executed its program. But ENIAC was nice to work with because it was air conditioned. This was to keep the vacuum tubes cool, but it was nice for the people, too.
Lawrence also remembers attending a seminar in the summer of 1953 where “an engineer demonstrated a circuit that could translate decimal numbers into binary; it was the death-knell of binary machine-language programming” and a key step towards the modern user-friendly computers. But ENIAC was not, as has sometimes been claimed, the world's first “proper” stored-program electronic computer. As we have seen, that honor goes to the Manchester Baby, while on May 6, 1949, Cambridge University's EDSAC 1 (calculating the squares of the numbers from 0 to 99) became the first complete and fully operational electronic digital stored program computer. Nor was ENIAC the world's first electronic computer; that honor, of course, goes to Colossus.
Von Neumann visited the ENIAC project for the first time in the late summer of 1944. The visit came about as a result of a chance encounter. Goldstine was waiting for a train when he saw von Neumann standing alone on the same platform. Although they had never met, he approached the great man and began to talk to him. Von Neumann, he says, was
a warm, friendly person who did his best to make people feel relaxed in his presence [but when] it became clear to von Neumann that I was concerned with the development of an electronic computer capable of 333 multiplications per second, the whole atmosphere of our conversation changed from one of relaxed good humor to one more like the oral examination for the doctor's degree in mathematics.
That chance meeting changed the path of von Neumann's career, and the course of the development of computing.
VON NEUMANN PICKS UP THE BALL
ENIAC was officially dedicated at a ceremony in February 1946, when it computed the flight of a shell in twenty seconds—two-thirds of the flight time of the hypothetical shell itself. Impressive stuff by pre-war standards, but too late to affect the outcome of the war. What was not publicly revealed at the time, though, was that since December 1945 the machine had actually been working on a much more important problem—one that would affect the development of the next (Cold) war. This secret operation of the machine overlapped with testing, blurring the line so that it is impossible to point to a specific day as the moment ENIAC became operational; but it was certainly up and running by January 1, 1946, and arguably by December 1, 1945.
Von Neumann's interest in ENIAC stemmed in no small measure from his involvement with the Manhattan Project. By the time ENIAC was ready for testing, the fission (atomic) bomb was a reality and some scientists, including Edward Teller and von Neumann, were pressing for the development of far more powerful fusion (hydrogen) bombs. The controversial political decision to go ahead with the development of what was known at the time as the “super” bomb was made out of fear of Soviet intentions following the defeat of Hitler's Germany. But designing such a bomb would require much more computation than the design of the fission bombs. Von Neumann was uniquely placed—the only person who was privy to both the secrets of Los Alamos and developments at the Moore School. He was also the only person with the prestige and influence to ensure that the first program actually run on the ENIAC, starting in December 1945 before the machine was used for its intended purpose, was a simulation for the super project. In a striking example of pragmatism, the ENIAC team were allowed to see the equations, which were not classified, without being told anything about the super bomb, which was. The Los Alamos “problem” was transferred to the Moore School in the form of a million IBM/Hollerith punched cards.13 The simulation worked, as far as the math went, although in the end it proved useless because the assumptions about the physics built into it turned out to be wrong. But it worked by using the brute force approach to number crunching that Turing abhorred. The pattern was already being established. Before ENIAC was complete, its designers and engineers were planning a new machine, to be called EDVAC (Electronic Discrete Variable Automatic Computer). It was at this point that von Neumann picked up the ball and more or less ran off with it, in the process setting a precedent for computer design that would last for decades, and is still influential today.
Von Neumann, with his contacts in Los Alamos, Washington, Aberdeen, Princeton and Philadelphia, was the catalyst who brought the various threads together and persuaded the authorities to continue funding computer developments after the war. But plans for the kind of machine to succeed ENIAC were drawn up by a large team at the Moore School, with Mauchly and Eckert leading the discussions and contributions from Goldstine, his wife Adele, and Arthur Burks. Von Neumann kept in touch largely by letter, corresponding with Goldstine and keeping up to date with thinking at the Moore School while making suggestions from afar. In the planned EDVAC, the various components of the computer would be separated into different units—a central processing unit (CPU) to do arithmetic, a memory, some sort of control system, and input/output devices—with data being shuffled between them as required. There would also be a fifth, less visible, component: a means of communication between the other four units, in particular the memory and the CPU, called a bus. A key feature of thi
s kind of computer architecture is that problems are solved serially, step by step, going through a chain of instructions in sequence. “The notion of serial operation,” says Goldstine, “was pushed to its absolute limit in the EDVAC design.” In the alternative parallel (or distributed) architecture, favored by Turing, different pieces of the problem are tackled by different parts of the machine simultaneously (in parallel). To take a simple example, if two long numbers are to be added together, a serial machine will add each digit in turn, just as we do, but a parallel machine will add all the digits at once. The serial method is slower, but needs less hardware. The parallel approach, however, avoids the problem with the serial structure that parts of the machine may be sitting idle, doing the electronic equivalent of twiddling their thumbs, while waiting for another part of the machine to finish a task. A related problem is that with such a structure there are delays caused by the constant need to shuttle data and instructions between the memory and the processor, along the bus, a deficiency which became known as “the von Neumann bottleneck.” It got this name because the Moore School plan became known as the von Neumann architecture. And that happened in somewhat acrimonious circumstances.