Grace Hopper and the Invention of the Information Age
Page 11
Hopper remembered von Neumann’s arrival and recalled his immediate dependence on the crew “because that was the first computer he had his hands on.”12 Bloch was impressed how rapidly the computer neophyte picked up both the design concepts and coding procedures. “He had a mind that moved in rapid fashion on any subject relating to mathematics or physics,” Bloch recalled.13 Hopper and Bloch helped him “set up shop” in the conference room off the main computer room with a large table and a blackboard. Von Neumann quickly became a semipermanent fixture in the conference room.14
Since Hopper had arrived only 2 months before von Neumann, Bloch headed up the programming of the problem while Hopper assisted. For security reasons, the two coders were told the specifics of the problem, a partial differential equation of the second order, but not its context. In fact, not until the destruction of Hiroshima and Nagasaki almost a year later did Aiken, Bloch, and Hopper become aware of the magnitude of their work. But in the fall of 1944, von Neumann’s problem was nothing more than an interesting mathematical challenge. “The attack itself,” Bloch recalled, “was relatively new. Such equations had not been attempted numerically before.”15 Luckily for Hopper, she was well versed in partial differential equations, for they were the focus of her study with Richard Courant at New York University during the fall and spring of 1941.
Though the problem setup and the coding went relatively smoothly, the speed limitation of Mark I hardware became a significant issue. The numerous intermediate calculations needed to solve the equation, coupled with Mark I’s 300 millisecond processing speed, stretched the time of computation to the point of impracticality. “Out of expediency, we had to stop at a certain level [of accuracy] because it was just going to be too long,” Bloch recalled. I guess the war would have been over by the time the machine would tackle it at a higher degree [of accuracy].”16
As the Harvard team stumbled through the difficulties of such a complex problem, von Neumann provided feedback concerning the accuracy of intermediate results. Hopper recalled that the prominent mathematician had an uncanny ability to “predict accurately what the numbers would turn out to be.”17 She aided him in retrieving and interpreting data from the printouts, data that he would peer at intensely and then make suggestions concerning future runs. By December, Bloch had presented the results in a final report to be taken back to Los Alamos and compared with the progress of the human computer team. “Von Neumann insisted that my name be put in front of his as the author, which embarrassed me a little bit because he was the great mathematician and mathematical physicist of the day,” Bloch recalled.18
By the end of von Neumann’s stay, the Harvard crew had gained valuable experience operating Mark I and was markedly closer to developing a fast and efficient system of programming. Not only did von Neumann have a mathematical answer to the implosion problem, but also he was one of the first people outside the Harvard team to have a hands-on education on how to program and operate a large-scale digital calculating machine. That newfound knowledge would have a significant impact on the future direction of the computing developments at the University of Pennsylvania.
VON NEUMANN’S “FIRST DRAFT”
About the time that von Neumann arrived at Harvard to program his problem on Mark I, the famous mathematician had a chance encounter on a railroad platform in Aberdeen, Maryland. A young Army officer named Herman Goldstine introduced himself and the two struck up a conversation. Lieutenant Goldstine was not a typical young officer, for he had obtained a doctorate in mathematics from the University of Chicago in 1936. Upon entering the service in July 1942, the mathematically talented officer was assigned to the US Army Ballistics Research Laboratory (BRL) at Aberdeen.19
The BRL was the army’s primary test site for artillery and other weapons. One of Goldstine’s jobs was to manage the group of human computers assigned to produce ballistic firing tables. Gunners and bombardiers used firing tables to adjust their weapons in order to hit targets that were beyond the horizon. A multiplicity of variables, including horizontal distance to target, wind direction and velocity, humidity and temperature, and elevation above sea level, had to be taken into account in order to achieve accuracy. The BRL’s human computers created ballistic tables that accounted for these variables and informed the gunner to which azimuth to set his weapon.
In general the mathematics behind ballistics tables were not complex, but rather time consuming to produce with a paper, pencil, and a desk calculator. A typical trajectory required about 750 separate calculations, or about 12 hours for a human computer.20 As the war progressed the backlog of firing tables grew as the BRL struggled to keep up with demand. Goldstine first attempted to alleviate the situation by teaming up with the University of Pennsylvania to create a training program for mathematically inclined young women. The faculty, consisting of Goldstine’s wife Adele, Mildred Kramer, and Mary Mauchly, worked diligently to identify and train smart, young women from the Philadelphia area. Their efforts quickly turned the BRL into one of the largest information processing centers, staffed by more than 200 human computers.
Mary Mauchly’s husband John, an instructor at the Moore School of Electrical Engineering, offered a second way to deal with the growing demand. In August 1942, Mauchly produced a memorandum describing an electronic calculating machine, which caught the eye of both Goldstine and a young graduate student at the Moore School, J. Presper Eckert Jr. On 9 April 1943, Eckert and Mauchly presented a more advanced proposal to Colonel Leslie Simon, director of the BRL, and Colonel Paul Gillon, assistant director. Simon signed the order to fund Project PX, Gillon named the proposed machine ENIAC (standing, as has already been noted, for Electronic Numerical Integrator and Computer), and Goldstine became the BRL’s official liaison to the ENIAC project.21
By the time Goldstine had met von Neumann on the railroad platform, the design of the ENIAC was complete and construction just underway. Goldstine was very active in his role as liaison and had participated in many of the theoretical discussions concerning design. “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,” Goldstine recalled.22
Excited by an electronic machine thousands of times faster than the Harvard Mark I, von Neumann soon accompanied Goldstine to Philadelphia to see if the machine could potentially handle partial differential equations. “He grasped what we were doing quite quickly,” said Eckert.23 But to von Neumann’s disappointment, the ENIAC, though potentially a great deal faster than the Harvard machine, was limited in its mathematical versatility. Much like the differential analyzer developed by Vannevar Bush, the machine was “programmed” by the interconnection of its physical units. Such a design was not an accident, considering that the Moore School operated a differential analyzer, and both John Mauchly and Presper Eckert (as he was usually called) had worked with it. The ENIAC, then, was a hardware-specific machine designed to create ballistic tables, but not equipped to handle partial differential equations.
Von Neumann did, however, see the potential of electronics when applied to automated computing and remained engaged with the ENIAC group while working with Harvard. On 21 August, Goldstine wrote to the executive officer of the BRL, Colonel Gillon, and informed him that the prominent mathematician was “displaying great interest in the ENIAC and is conferring with me weekly on the use of the machine.”24 According to Goldstine, von Neumann quickly became a powerful influence on the project, stimulating discussion about computer theory and practice, and pushing forward ideas for the second machine.
Some of those ideas were already evident in Goldstine’s letters to Colonel Gillon in August and September 1944. In the letter dated 21 August, Goldstine suggests that “switches and controls of the ENIAC now arranged to be operated manually, can easily be positioned by mechanical relays and e
lectromagnetic telephone switches which are instructed by a teletype tape.” He goes on to point out that “we would not have to spend valuable minutes resetting switches when shifting from one phase of a problem to the next.”25
From a letter written by Goldstine 12 days later, it is evident that von Neumann had been updating the Philadelphia group about developments at Harvard. “To illustrate the improvements I wish to realize,” Goldstine wrote, “let me say that to solve a quite complex partial differential equation of von Neumann’s the new Harvard IBM will require about 80 hours as against 1/2 hour on ENIAC.” But where the ENIAC’s theoretical processing superiority was obvious, the reality was that its programming deficiencies erased any processing gains. Even a less complex problem demonstrated that the two systems were relatively equal in performance, despite the ENIAC’s overwhelming advantage in computational speed. “To evaluate seven terms of a power series took 15 minutes on the Harvard device of which 3 minutes was set-up time, whereas it will take at least 15 minutes to set up ENIAC and about 1 second to do the computing.”26
According to Goldstine, the 2 September letter represents the first example of the stored-program concept in writing:
To remedy this disparity we propose a centralized programming device in which the program routine is stored in coded form in the same type storage devices suggested above. The other crucial advantage of central programming is that any routine, however complex, can be carried out whereas in the present ENIAC we are limited now that we seem to be on the fairway as far as development goes, I feel it most important to make plans for further improvements to realize in a second machine the highly important features that seemed too difficult in the first model.27
According to Goldstine, von Neumann had derived the essential concept of the stored-program architecture “in the fortnight between the two letters.” The concept would be fleshed out through the fall of 1944 and captured in June 1945 in “First Draft of a Report on the EDVAC.”
What Goldstine failed to mention in his recollections was that the period he referred to as “the most eventful time in the intellectual history of the computer” was the same time frame that von Neumann worked regularly with the Harvard crew. Ideas concerning how to redesign the ENIAC generated in conversations with Eckert, Mauchly, and Goldstine coincided with the practical learning gained from programming Mark I with Bloch and Hopper. Von Neumann served as a living conduit between two isolated, top-secret computer projects.
From the Harvard project it appears that von Neumann was influenced by the concept of automatic sequential control. Unlike the ENIAC, the projected EDVAC would be programmed to process commands in sequence similar to Mark I.28 “The instructions which govern this operation must be given to the device in absolutely exhaustive detail,” wrote von Neumann. “Once these instructions are given to the device, it must be able to carry them out completely and without any need for further intelligent human intervention.”29 Though in practice Mark I depended on operator intervention, in theory Aiken had designed a machine that was fully automated.
Von Neumann also noted that fully automatic-computing devices such as Harvard’s Automatic Sequence Controlled Calculator used teletype tape and punch cards as the means to input the instruction and data sequence, but concluded that “a really high speed device would be very limited in its usefulness, unless it can rely on M (internal memory).”30 Internal memory was the key ingredient to allow long and complicated sequences of operations to be executed at an electronic rather than a mechanical speed. This single point was the great insight of the stored-program architecture, and married the electronic speed of the ENIAC with the automatic sequence control and programming capability of Mark I.
Von Neumann’s proposed architecture broke from the Harvard machine on a number of levels other than the use of vacuum tubes. The most important distinction concerned the separation of instructions from data. The Harvard machine isolated the two, which aided the programmer during the debugging process. “First Draft” recommended that instructions and numerical quantities be stored together within the internal memory. This permitted both data and instructions to be modified, and created the flexibility to generate an unlimited number of subsequent instructions and data in memory. Non-linear partial differential equations could then be solved with far fewer original instructions and operator interventions. Hence, the burden of writing out the sequential variations of instructions, as prepared by the Harvard crew during the implosion problem, was shifted from the coder to the machine.
On balance, this does not mean that all credit should be given to the Harvard crew for the logical control and programming concepts included in “First Draft,” nor does it discount von Neumann’s intellectual capacity to generate original ideas. Creative concepts do not appear out of a vacuum, and during the fall of 1944 von Neumann had a privileged perspective of the nascent computing field. He could identify the strengths and weaknesses of both projects and fashion a new technical variation with shared elements. “He obviously had a very very loud voice in the sense that he was very influential,” Aiken recalled. “The result was that things that he proposed, good, bad, or indifferent, were in some cases followed.”31 Interestingly, von Neumann cites Aiken in the “First Draft” but does not cite Eckert or Mauchly.
THE MAKING OF ORTHODOX COMPUTER HISTORY
“First Draft of a Report on the EDVAC,” though never officially published, was one of the first documents distributed among the emerging computing community. In the fall of 1944 Aiken also set out to record the technical developments at the Harvard Computation Laboratory, and he chose Grace Hopper as his author. As the story goes, Hopper was sitting at her desk busy with a coding task when Commander Aiken interrupted her work. He stated with his typical tone of urgency, “You are going to write a book!” Both the abrupt statement and the nature of Aiken’s request caught Hopper off guard. “I can’t write a book,” she retorted; “I’ve never written a book.” With the war on and the machine operating around the clock, seven days a week, there was no way that she would be able to take on such a monumental task and keep up with her other coding and managerial duties. Aiken acknowledged his new Lieutenant’s concerns, but still insisted that she would somehow find the time to write the book. “You’re in the Navy now!” he reminded her.32
Whatever the veracity of the story’s details, Aiken did in fact order Hopper to write the first manual of operation for Mark I. And somehow between her other duties and responsibilities, Hopper completed the 561-page manuscript in time to be published by the Harvard University Press for its 1946 fall books release.33 “I wrote about five pages a day,” Hopper recalled, “which I had to read to [Aiken] at the end of the day. If he rejected them, I had to start them over again.”34
In view of Aiken’s hands-on editorial approach, the fact that he trusted Hopper to write the manual for his prized machine is significant. It would have made more sense for Robert Campbell to do the job. Campbell had been with Aiken since 1942. He participated to some extent in the design process, oversaw the construction of the machine while Aiken was serving the Navy in Norfolk, and programmed the first test problems for the machine. His intricate knowledge of the hardware and the coding process made him the ideal candidate. But by the fall of 1944, Aiken and Campbell were already making plans for an improved follow-on machine, so Aiken entrusted Hopper with the task of creating the first computer manual.
Hopper believed that Aiken had picked her because her reports during her first months at Harvard had demonstrated a talent for clear, fluid prose. Hopper had been encouraged as a child to write, a habit she had kept up during her 13 years teaching mathematics at Vassar. “When they [meaning her Vassar students] came into my probability course,” Hopper recalled, “the first thing I did was give them a lecture on Sterling’s formula and then asked them to write it up as an essay. I’d cover it with ink and I would get a rebellion because they were taking a math course, not an English course. Then I would explain: it was no use trying
to learn math unless they could communicate with other people.”35
The ability to communicate ideas clearly in writing is not usually viewed as a crucial skill for an engineer or an inventor. An emphasis on technical knowledge and a strong mathematical foundation at the expense of non-technical disciplines is even codified in most engineering school curriculums. Both Aiken and Hopper understood that inventions are not self-evident, especially one so unique and complicated as the Harvard Mark I. Mark I would have to be described not only to other scientists and mathematicians but also to university administrators, Navy officers, business leaders, and government civil servants. Writing in such a way that this disparate audience could grasp what Aiken and his team had accomplished was crucial to the ultimate success of the invention.
Hopper completed the manuscript in the spring of 1946. Remarkably, she was not listed as the author. Like all published documents written by Aiken’s staff, A Manual of Operation for the Automatic Sequence Controlled Calculator was “Dedicated to the Staff of the Computation Laboratory.” At the Computation Laboratory, credit was distributed hierarchically, starting with Comdr. Howard H. Aiken, USNR, Officer in Charge, followed by staff members in order of their Navy rank: officers, enlisted, and civilians last. Because of her rank, Hopper’s name appeared third on the inside cover. Though such a hierarchical ranking may not appeal to a modern sense of fairness, in certain respects such a system benefited Lieutenant Hopper. Aiken’s constructed caste system was based on the quality of ideas and on military rank, both of which, for the most part, superseded gender. In the same way, Aiken’s insistence on military protocol, including military dress and titles, further dissolved societal gender roles. Such an environment permitted Hopper to compete on a more equal footing with her male colleagues, so long as she played within the boundaries of the Aiken system.