Turing's Cathedral
Page 11
The elements of universal computation were falling into place. “Exactly when we started to forget the problems for which the machine was supposed to be built and started to work in earnest on a universal computer for all problems,” Rajchman recalled in 1970, “I can’t say.”13
As the United States prepared to enter the war, there was a shortage of human computers at the Aberdeen Proving Ground, and an auxiliary computing section was established at the Moore School of Electrical Engineering at the University of Pennsylvania, where human computers could be recruited among the student population, augmented as needed from neighboring colleges and schools.
Shells and targets were moving at ever-higher speeds, and the combined efforts of both computing sections were unable to keep up. A human computer working with a desk calculator took about twelve hours to calculate a single trajectory, with hundreds of trajectories required to produce a firing table for any particular combination of shell and gun. The electromechanical differential analyzer at the Ballistic Research Laboratory (a ten-integrator version of the analog computer that Vannevar Bush had developed at MIT) took ten or twenty minutes. To complete a single firing table still required about a month of uninterrupted work. Even with double shifts (and a second, fourteen-integrator differential analyzer) working at the Moore School, the army was falling behind. “The number of tables for which work has not been started because of lack of computational facilities far exceeds the number in progress,” reported Herman Goldstine in August 1944. “Requests for the preparation of new tables are being currently received at the rate of six per day.”14
Herman Heine Goldstine had been teaching introductory classes in exterior ballistics for Gilbert A. Bliss at the University of Chicago in July 1942 when he was called up to join the army, assigned to the air force (still under the wing of the army at the time), and sent to Fort Stockton, California, to prepare for deployment in the Pacific Theater against Japan. Alerted by Gilbert Bliss, Oswald Veblen “started the wheels moving,” according to Goldstine. “It was touch-and-go whether I would go overseas or Veblen would get there first.” On the same day that Goldstine received orders to ship out for the Pacific, he also received orders, thanks to Veblen, to report to Aberdeen. He telephoned the commanding general, who advised him, “Son, if I were you, I would get out of the camp. If you’ve got an auto, I’d get in the auto, and start driving.” Goldstine headed east.15
Upon arrival at Aberdeen, Lieutenant Goldstine was assigned to Colonel Paul N. Gillon, who was responsible for the Ballistic Research Laboratory’s computational substation at the Moore School. The situation did not look good. “No amount of augmentation of the staff of human computers—then around 200—would suffice,” wrote (now Captain) Goldstine in a postwar report. “It was accordingly decided … to sponsor the development of a radically new machine, the ENIAC, which if it were successful would reduce the computational time consumed in preparing a firing table from a few months to a few days.”16
The ENIAC was built by a team led by John W. Mauchly and J. Presper Eckert, thirty-six and twenty-four years of age when their project was launched in 1943. Mauchly had been teaching physics at Ursinus College, on the outskirts of Philadelphia, and attempting to demonstrate a statistical correlation between sunspot activity and climate variation in his spare time, when he took an introductory training course in defense electronics at the Moore School. Before he had completed his training, he was asked to join the faculty, and did. Eckert was a native Philadelphian whose first job, while he was still in high school, had been in Philo Farnsworth’s television research laboratory, leaving him with a deep understanding of electronics—and a lingering mistrust of Zworykin and RCA.
The Philadelphia area was home to Philco, RCA, and numerous smaller electronic research laboratories, including the Franklin Institute, whose origins went back to Benjamin Franklin’s efforts to bring experimental philosophy to the New World. Eckert and Mauchly were American entrepreneurs, their backgrounds far removed from Zworykin’s prerevolutionary St. Petersburg or von Neumann’s 1920s Budapest. According to classmate Willis Ware, “Pres Eckert was the kid who always had everything.… His father was very wealthy—real estate—in Philadelphia, so Pres always had the biggest and bestest and the finest.” In Eckert’s opinion, many of the scientists who left academia for the computer industry, with no prior experience of American business life, “were seeing the world the way they thought it ought to be and not the way it really was.”17
Mauchly and Eckert began by attempting to improve the precision of the Moore School’s differential analyzer, substituting electronic circuits for electromechanical linkages whose accuracy deteriorated unpredictably, especially on problems with many steps. In August 1942, Mauchly formalized their convictions that an all-digital, all-electronic computer (which Mauchly spelled computor, to distinguish the proposed machine from the human computers that already populated the Moore School) was the way to move ahead.18
The official proposal for an “Electronic Diff. Analyzer” was submitted on April 2, 1943. The intentionally ambiguous “Diff.” signified a transition from the analog “differential” to the digital “difference”—with implications that have reverberated ever since. “Mauchly, familiar with Geiger counters in physics laboratories, had realized that if electronic circuits could count, then they could do arithmetic and hence solve, inter alia, difference equations—at almost incredible speeds!” explains Nicholas Metropolis, who brought the initial “Los Alamos problem” to run on the new machine. Eckert, the lab instructor for Mauchly’s training course, became the project’s chief engineer.19
Facing wartime deadlines and a series of six-month funding horizons, workers ranging from “factory girls to moonlighting telephone linemen” were enlisted to construct the 30-ton machine, whose modular design would facilitate moving it to the Proving Ground when complete.20 Twenty separate, communicating processors (or “accumulators”) were assisted by a multiplier and combined divider/ square-rooter, with input and output via IBM punched card machines. Programming was locally distributed among the individual processors, coordinated by a “master programmer” with a storage capacity of 60 bits.
Ten two-state flip-flops (two vacuum tubes toggled together so that one tube or the other was always in an energized, conducting state) were formed into ten-stage ring counters representing each decimal digit in the ten-digit accumulators, forming, in effect, the electronic equivalent of a Marchant adding machine, but running at 300,000 rpm. An initiating and cycling unit provided a 5-kilocycle central clock, while a constant transmitter translated punched card data, buffered by banks of relays, into electrical signals that were intelligible to the machine. Three resistor-matrix function tables, whose design was contributed by Jan Rajchman at RCA, stored 104 12-digit numbers each.
The ENIAC, incorporating 17,468 vacuum tubes and 1,500 relays, consumed 174 kilowatts of power and occupied a 33-by-55-foot room. There were 500,000 hand-soldered joints. “The ENIAC itself, strangely, was a very personal computer,” remembers mathematician Harry Reed, who arrived at Aberdeen in 1950. “Now we think of a personal computer as one which you carry around with you. The ENIAC was actually one that you kind of lived inside.” The army had initially offered the contract for its construction to RCA, but according to Rajchman, “Zworykin … estimated it would take about 20,000 tubes … and that the mean free path, the time between failure, would therefore be ten minutes or so.… He didn’t want to be involved in something as massive and unreliable as that.” RCA declined the contract but freely contributed their expertise. “We were asked to tell everything we knew to the Moore School,” remembers Rajchman. “It was all an atmosphere, of course, of great fervor for the war, and nobody worried about patents or priorities.”21
In the opinion of Minneapolis district judge Earle R. Larson, who presided over six years and 34,426 exhibits submitted as evidence in the Honeywell Inc. v. Sperry Rand Corp. patent dispute, key elements of the ENIAC (whose patent rights, originally c
laimed by Eckert and Mauchly, had descended to Sperry Rand) were anticipated by John Vincent Atanasoff of Ames, Iowa, who had demonstrated an electronic digital computer to Mauchly in June of 1941. Atanasoff’s computer had an all-electronic central processor, with a memory consisting of 3,000 individual capacitors distributed in 30-bit tracks on the surface of two rotating drums. Mauchly went to the grave claiming he had learned little from Atanasoff, while Atanasoff abandoned his own project when enlisted to help in the wartime effort at antiaircraft fire control. When the war was over, Atanasoff launched a computer project under the sponsorship of the Naval Ordnance Laboratory, but when von Neumann’s project took the lead his funding was withdrawn.
It was no accident, given the mission to speed up the production of firing tables, that the ENIAC had the computational architecture of a roomful of twenty human computers working with ten-place desk calculators and passing results back and forth. The accumulators operated in parallel, similar to the multiple-core processors of today. “The ENIAC had some very modern features—it’s just that we did not then use the modern terminology to describe them,” Eckert explains. Converted to serial, stored-program control in 1947, and upgraded with 100 words of magnetic-core memory in 1953, the ENIAC logged a total of 80,223 hours of operation until it was shut down for the last time on October 2, 1955, at 11:45 p.m.22
“The ENIAC” was “an absolutely pioneer venture, the first complete automatic, all-purpose digital electronic computer,” according to von Neumann’s assessment in 1945, although he warned Nicholas Metropolis and other early programmers to “watch it like a hawk, and trust it only as far as one can throw it.” The project was revolutionary not for the technology used to build it, but for its scale. “All electronic tubes, resistors, and diodes used in the ENIAC were joint Army-Navy rejects,” explains Metropolis, “so that in principle the ENIAC could have been built before the war.”23
The ENIAC proposal was not an easy sell. “When as a matter of precaution the proposal was sent to several well-known persons for review, the resulting recommendations were somewhat uniformly negative,” J. Grist Brainerd, who supervised the ENIAC contract for the Moore School, recalls. It was Oswald Veblen, chairman of the scientific committee of the Ballistics Research Laboratory at Aberdeen, who gave the order to move ahead. On April 9, 1943, Herman Goldstine gave a briefing to the director of the laboratory, Colonel Leslie E. Simon, “at which Veblen after listening for a short while to my presentation and teetering on the back legs of his chair brought the chair down with a crash, arose, and said ‘Simon, give Goldstine the money.’ He thereupon left the room and the meeting ended on this happy note.”24
On June 5, 1943, a six-month contract for “research and development of an electronic numerical integrator and computer” in the amount of $61,700 was signed. Colonel Gillon took on the job of “fighting off the competition of apparently more urgent but actually less important conflicting projects through the war.” After a visit on October 18, 1945, Samuel H. Caldwell of Harvard’s Computation Laboratory reported to Warren Weaver that “the boys were engulfed in engineering difficulties. That machine contains more assumptions concerning the reliability of cheap, mass-production, radio parts than anything I have laid eyes on, and I wouldn’t give you a nickel for its chances of successful operation until after extensive rebuilding and replacement of poor parts.”25 His report was dated January 16, 1946—at which point the ENIAC had already been running the first Los Alamos hydrogen bomb problem for over a month.
Von Neumann first visited the ENIAC in either August (according to Goldstine) or September (according to Eckert and Mauchly) of 1944. “That moment,” says Goldstine, “changed his life for the rest of his days.” Goldstine was on his way back to the Moore School from a meeting at the Aberdeen Proving Ground when, as he remembers, “I saw Professor von Neumann standing on the railroad platform, all alone, and decided that I would go and talk to this famous man … but he was totally uninterested. Then, gradually we began to talk about more things. Pretty soon he learned that we were building a machine that would do 300 multiplications a second, and suddenly he changed.”26
Von Neumann, a member of the Ballistic Research Laboratory’s Scientific Advisory Board, was cleared to examine the ENIAC, and shown the first two accumulators undergoing initial tests: computing the solution to a differential equation, and exchanging coded pulses at a 5-kilocycle pace. “If he had first asked questions like ‘How fast does it work?’ we would have been disappointed,” says Eckert. “Because he asked about the control logic, there was an immediate rapport.”27
The ENIAC was aimed at the backlog of firing tables, but Eckert, Mauchly, Goldstine, and then-twenty-eight-year-old Arthur Burks (a logician and philosopher turned electronic engineer for the duration of the war) had begun thinking of other applications from the start. “A sufficiently approximate solution of many differential equations can be had simply by solving an associated difference equation,” Mauchly had written in August of 1942. This was true whether calculating firing tables, predicting weather, or solving the implosion problems that would soon consume the Los Alamos computing group. “The entire economy of computing changed overnight,” Goldstine explained. “Instead of being in a world of expensive multiplication and cheap storage, we were thrown into one in which the former was very cheap and the latter very expensive. Virtually all the algorithms that humans had devised for carrying out calculations needed reexamination.”28
The ENIAC was programmed by setting banks of 10-position switches and connecting thousands of cables by hand. Hours, sometimes days, were required to execute a programming change. “Programming steps were very expensive to come by,” says Eckert. “It took boxes and cables and things. Doing something a second time, or reiterating something—we were 100,000 times faster than a human being—was very cheap.”29
Data and instructions were intermingled within the machine. “A pulse, no matter for what use, had the same physical definition in almost all situations throughout the ENIAC,” Mauchly explains. “Some pulses were used to control operations and others to signify data … but a pulse representing an algebraic sign for some data, or one representing a digit value, could be fed into a control circuit and expected to function just as any control pulse might function.” As to when the concept of stored programming first took form, Mauchly adds that “there were less than 700 bits of high-speed storage in the ENIAC,” while in the master programmer and individual program counters “about 150 bits of fast electronic storage were available for ‘program control.’ ”30 More than 20 percent of the ENIAC’s original high-speed storage was used for storing program information that could be modified while computations were under way.
The ENIAC was limited by storage, not by speed. “Imagine that you take 20 people, lock them up in a room for 3 years, provide them with 20 desk multipliers, and institute this rule: during the entire proceedings all of them together may never have more than one page written full,” Von Neumann observed. “They can erase any amount, put it back again, but they are entitled at any given time only to one page. It’s clear where the bottleneck … lies.”31
Punched cards could be used to store intermediate results, but the process was error-prone and slow. The shakedown run on the ENIAC—a hydrogen bomb calculation that Stan Frankel and Nick Metropolis brought from Chicago and Los Alamos in December of 1945—consumed nearly one million cards, most of them for temporary storage of intermediate results. “I can remember Metropolis and Frankel coming and explaining to us their task,” says Arthur Burks. “They made it very clear that they couldn’t tell us what the equations were.”32
“The Los Alamos calculations which commenced December 10, 1945, were … the first time that the machine as a whole was being used…[and] employed 99 percent of the capacity of the ENIAC machine,” concluded Judge Larson in his findings of fact in the Honeywell v. Sperry Rand patent dispute. The calculations continued for well over a month, into January 1946. “The difficulties encountered were n
ot with the machine,” testified Presper Eckert, singling out mathematics rather than physics, “but with the mathematical nature of the problem and mistakes of the mathematicians who had designed the problem for the machine.”33
“I have often been asked, ‘How big was the ENIAC storage?’ ” says Mauchly. “The answer is, infinite. The punched-card output was not fast, but it was as big as you wished. Every card punched out could be read into the input again, and indeed that is how Metropolis and Frankel managed to handle cycle after cycle of the big problem from Los Alamos.” The difficulty, as Mauchly described it, was that “the fast memory was not cheap and the cheap memory was not fast.”34 A vacuum-tube flip-flop had a response time in the order of a microsecond, whereas it took on the order of one second to read or write an IBM card. A gap of six orders of magnitude lay in between.
Eckert proposed a way to bridge this gap with memory that was both fast and cheap. “Mr. J. P. Eckert, Jr., then of the Moore School, conceived the idea that the acoustic tank, then used for Moving Target Indicator equipment, could easily be made the basis for a dynamic form of memory,” von Neumann and Goldstine later explained. “The use of such a device would enable one to store 1,000 binary digits at the cost of 5 to 10 vacuum tubes as compared to 1000 flip-flops in the ENIAC scheme.”35 Acoustic delay lines, developed at MIT’s wartime Radiation Laboratory, took advantage of how slowly sound waves travel through liquid compared to radar waves traveling at the speed of light. An incoming radar signal was converted into an acoustic signal through a crystal transducer at one end of a tube filled with liquid—mercury being ideal—and when the wave train reached the far end of the tube it was converted back into an electrical signal by a second transducer, delayed but otherwise unchanged. By inverting the delayed signal, and synchronizing it with the next radar echo that returned, it was possible to subtract background clutter to distinguish objects (such as enemy aircraft) that had moved between one sweep of the radar beam and the next.