Grace Hopper and the Invention of the Information Age
Page 7
Much to the dismay of the rest of the staff, the distinct sounds generated by hardware bugs also served as an alarm system for Howard Aiken. Aiken’s desk was adjacent to the machine, and often he kept his door open so he could hear the hum of the machine “makin’ numbers” (as he liked to call it). No matter how busy the Commander seemed to be, if there was an unusual noise emanating from the machine, in no time he would be demanding answers from Hopper or Bloch. Aiken’s overzealous nature caused Hopper to do much of her debugging after hours in the peace and privacy of the night.
The concerted effort to lower the frequency of hardware failures not only increased hardware efficiency; it also made debugging easier by isolating potential errors to coding and operating problems. Many hardware bugs related specifically to the relay design of Mark I. Relays registered either 1 or 0 (open or closed), depending on the flow of electricity to the relay switch. If a relay did not function properly, the cause was interference with the electricity flow controlling its action. Relays sometimes sparked when metal flaked off and got caught between contacts. At other times, deficient wiring caused the relays to make no contact at all. The potential for problems was exacerbated by the machine’s sheer size and complexity—it had 750,000 moving parts. During the summer and the fall of 1944, faulty and marginal hardware devices were weeded out and replaced with more reliable parts. Because of material shortages attributable to the war, wire salvaged from old pianos had originally been substituted for more optimal materials. Piano wire against brass contacts produced a higher resistance than was desirable, resulting in unreliable relay contacts.
Aiken had picked electromechanical relays over other available technologies because of their proven reliability in the telephone industry. Deployed as the switching backbone in telephone networks for years, relays had first been employed for counting by George Stibitz in the mid 1930s. Stibitz, then a research mathematician at the Bell Telephone Laboratories, had created a circuit of relays that added in binary. Binary arithmetic represented baseten numbers as a series of ones and zeroes, with one represented by 0001, two by 0010, three by 0011, and so on.45
The tradeoff for electromechanical relay dependability was speed. For telephone relays, speed was dictated by the rate in which human fingers could dial. The vacuum tubes used in the ENIAC were thousands of times faster than Mark I’s relays. The first vacuum tube, constructed in 1904, was a variation on the light bulb. The invention permitted engineers to regulate and amplify the flow of electricity, but, as John Mauchly discovered, a vacuum tube could also be employed as a binary counter, because it could stop and start the flow of electricity like a gate. A rudimentary vacuum tube has two states (on and off), just as an electromechanical relay has two states (open and closed). But electricity flows through wire at nearly the speed of light, whereas armatures of relays are subject to the limits of mechanical motion. Hence, a tube could perform as a binary switch in the same fashion as an electromechanical relay, but much faster.
In the 1940s a vacuum tube had an operational life of only a few hundred hours. Thus, a machine with a few thousand vacuum tubes would be subject to failure after a minute or two of run time. ENIAC had 18,000 vacuum tubes, and Aiken cautiously assumed that such a machine could never run. He was willing to accept the manageable bugs associated with electromechanical relays in light of the theoretical complications associated with vacuum tubes.46
CODING BUGS
If hardware bugs could be ruled out, the most likely source of error was the coding of a problem. Unfortunately, Richard Bloch recalled, coding was subject to a variety of oversights and blunders. A coder could call for the wrong operands or the wrong arithmetic operations. Errors could appear in the coder’s calculation of input constants or starting values. Omissions and duplications were common as the coder translated instructions into machine language, while preparation of punch tape, punch cards, and plugboard instructions were subject to human error. “We had to go through the operation step by step,” Campbell affirmed, “until we found something which wasn’t right, and then look at the circuit diagram and try and figure out what the problem was.”47 This was not a straightforward, linear process, for a coding error could masquerade as a plugging error or vice versa.
Mark I coding required thinking through a vast number of minute steps, then writing the instructions to carry them out. For instance, let us use the analogy of leaving one’s house to get one’s mail. An equivalent set of instructions in a high-level computer language would be analogous to stating “Walk out the front door, follow the walkway to where it intersects the street, and on your left is the mailbox.” The equivalent in Mark I machine language might sound more like “Find your right foot, place your right foot forward, find your left foot, place your left foot in front of your right foot, repeat this twenty times, etc.” To minimize errors, Hopper had to keep the details of coding in her head without confusing steps along the way.
The solution required the development of preventive tools, practices, and procedures. Code was initially handwritten in pencil, line by line, on a standardized coding sheet.48 Coding sheets had a place for annotation, which allowed Hopper and Bloch to attach clarifying equations and written explanations next to each line of code. A fully annotated coding sheet provided a neat, accessible record of the problem that could be double-checked by a second person.
Machine operators were given explicit instructions that helped them to manage the process from start to finish. It became standard operating procedure to double-check all plugboards against plugging charts and to reset control and data switches. In the case of a stoppage, rerun instructions were followed closely, and preliminary printouts on punch cards were compared by hand against source data before being reentered. As Bloch recalled, the best programming techniques called for keeping operator intervention to a minimum, both to reduce manual operational errors and to reduce run time.
What the Harvard team did not do during the war years was explore the possibility of hardware that ran automated checking. Though aware that at the Bell Labs considerable energy was being devoted to creating self-checking circuits, Campbell and Aiken initially did not see the need for such design additions, even in future machines. “I think we felt that with sufficiently reliable components . . . we could make out all right without mechanical self-checking characteristics,” Campbell recalled.49
Bug-free punch tapes and operator instructions did not guarantee successful results. Hardware manipulation brought its own set of potential errors. Erroneous switch and register settings, improper plugging, failure to follow rerun instructions, and improper arrangement of data punch cards all contributed to the significant challenge of obtaining fast, accurate results. Improper hardware manipulation could even turn fatal, as was nearly the case when an operator named David Green got his tie caught in the sequence mechanism and was nearly strangled.50
The infestation of hardware bugs, coding bugs, and operation bugs threatened the success of the first computational machines. The only things separating the Harvard Mark I from failure were the unique abilities and efficient operating procedures developed by Grace Hopper, Richard Bloch, Robert Campbell, and the rest of the Harvard crew. By the spring of 1946, Robert Burns recalled that Bloch “got to the point where he knew the program so well that he could tell you what relay was failing, what counter was bad.”51 They had mastered Mark I while enduring the unrelenting pressures of war.
4 THE HARVARD COMPUTATION LABORATORY
The person most responsible for the Harvard Computation Laboratory’s unique culture was Howard Hathaway Aiken. Aiken’s leadership style was more akin to that of a foreman on a factory floor than to that of an Ivy League academic. This can probably be attributed to the fact that he had worked for the electric utilities industry for 13 years before matriculating as a doctoral candidate at Harvard. Aiken’s laboratory also differed markedly from more traditional academic environments because of its close relationship with the U.S. Navy. Unlike Robert Oppenheimer, who
struggled to preserve civilian control of culture at Los Alamos, Aiken purposely blurred the lines between academia and the military. According to Hopper, Aiken saw himself first as a Navy officer and second as the head of an academically affiliated research facility. Aiken’s martial attitude and industry-based sensibilities affected both the nature of the laboratory’s research and the technical choices made by its personnel.
Aiken was born 8 March 1900 in Hoboken, New Jersey. His hard personality was forged under extreme conditions. As a teenager (when the family lived in Indianapolis) he became financially responsible for his mother after permanently driving his alcoholic father out of the house with a fireplace poker. To pay the bills, Aiken held a night job as an electrician’s helper for the Indianapolis Light and Heat Company while attending Arsenal Technical High School during the day. Upon graduation, Arsenal’s superintendent helped his industrious student obtain a job at the Madison Gas and Electric Company so that he could afford to attend the University of Wisconsin.1
Howard and his mother packed their bags for Madison, and in 1923 Howard completed a bachelor’s degree in electrical engineering. Upon graduation he accepted a full-time position with Madison Gas and Electric Company as an operating engineer in a gas and electric plant. He was soon placed in charge of the design and reconstruction of the company’s main electric generating station. In 1927 he and his mother moved to Chicago, where he designed electric generating stations for the Westing-house Electrical and Manufacturing Company. The two moved again in 1928 so Howard could become the district manager of the Line Material Company in Detroit.2
Management improved Howard’s financial situation but brought him farther away from hands-on technical problem solving. In 1932 he decided to return to school, but he left the University of Chicago after two semesters because he thought it was “a lousy institution.”3 Howard and his mother left Chicago and moved into a small apartment at 8 Plympton Street in Cambridge, Massachusetts, so Howard could pursue his doctorate in physics at Harvard. Throughout his years as director of the Computation Laboratory, Howard would leave the lab precisely at noon each day to find a hot lunch and two cold martinis waiting for him at 8 Plympton Street.4
But the journey from a graduate student with an idea for a calculating machine to head of the Harvard Computation Laboratory had a number of twists and turns. In the spring of 1941, when Aiken left Harvard to serve in the Navy, many at Harvard saw his machine as marginal and Aiken as dispensable. On 8 December 1939, Frederick Saunders, chairman of the Department of Physics, sent a letter to Harvard’s president, James Bryant Conant, summarizing his department’s position concerning Aiken and his machine: “We do not feel committed to the promotion of H.H. Aiken in this Department on account of his activities in connection with the calculating machine or the building proposed to house it.” Saunders further relayed the department’s indifference to the machine: “The machine and the building are both desirable if money can be found, but not necessarily more desirable than anything else.”5 That same month, Conant called for a committee to determine the fate of the proposed machine and its inventor. The Calculating Machine Committee met on 18 December 1939 and agreed that if the school were to go ahead with the computation project, multiple departments, including physics, mathematics, communication engineering, geophysics, and astronomy, should share the costs for housing and maintenance. Regarding Aiken, the committee said this:
A good deal of discussion was devoted to the problem of Mr. Aiken and his future. Representatives of the Department of Physics were rather divided in their feeling as to the possibility of his attaining a professorship in physics. There seemed to be a general agreement that if Mr. Aiken is asked to raise funds and in general to promote the project, it should be made quite clear to him that such activity did not increase his chances of promotion to a professorship.6
The “problem” of Howard Aiken became a very sticky issue. In a private letter to Dean George H. Chase, Dean John H. Van Vleck wrote: “If the computing machine is a success, the University presumably is under something of a moral obligation to see that Dr. Aiken is retained to man it. However, this is no doubt a delicate question which can well be omitted from the minutes.”7
By the spring of 1940, Aiken’s own department had some interest in the machine, but the department refused to back Aiken unequivocally. “Assuming that the machine goes forward and Aiken remains in charge of it,” Frederick Saunders wrote, “the Department agrees to provide from its budget a sum not to exceed one quarter of Aiken’s salary, under the provision that, at the discretion of the Department, one-quarter of the operating time of the machine be made available for the solution of problems originating within the Department.” Saunders also offered to house the calculating machine if money could not be found to build a separate facility.8
Feeling that Aiken was being hung out to dry by the Department of Physics, astronomy professor Harlow Shapley wrote Dean Chase a “bombshell” letter to “stir the physics department to greater activity.”9 As a stopgap measure, Shapley suggested that Aiken be retained at least another 2 years as a faculty instructor. If the money could be found to establish a separate laboratory for the machine, Shapley recommended, Aiken should be named director for a 5-year period without any assurance thereafter. If Aiken could not accept the anemic salary of a faculty instructor with no guarantees beyond 2 years, Dean Chase informed President Conant, “Shapley is sure that Cunningham and one or two others would prove quite capable of managing it, perhaps not quite so well as Dr. Aiken could, but satisfactorily enough at a much smaller expense.”10
On 26 April 1940, President Conant wrote to Aiken and offered him the position of temporary faculty instructor for 2 years at a meager $3,000 the first year and $3,300 the second. At some point during the academic year 1941–42, Conant stated, a decision would be made concerning whether or not a more permanent position would come available “if your work here justifies us in promoting you to a permanent rank.” Maintaining an impartial position, Conant ended the letter by suggesting to Aiken that he speak with Dean Westergaard and then “let me know whether you wish to continue at Harvard or not under this arrangement.”11 On 2 May, a disappointed Aiken replied that he hoped to continue at Harvard, and that he would “endeavor to be worthy” of a more permanent position. “Conant said that I was one of these ‘faculty instructors’ . . . that was a bitter letter,” Aiken later recalled.12 Aiken agreed to continue teaching a course in applied mathematics and to assist with Professor Emory L. Chaffee’s course in electron physics. But during the summer the dissatisfied but resourceful Aiken utilized his reserve officer status to further his ties within the Navy. In addition, Aiken initiated a correspondence with his former calculus professor at Wisconsin, Dr. Warren Weaver, who had recently been named the director of the Applied Mathematics Panel of the Office of Scientific Research and Development. Aiken informed Weaver about the invention that he had designed and was constructing with the help of International Business Machines Corporation. In a letter to Weaver dated 5 September 1940, Aiken declared: “It is just possible that my calculating machine or other experience might be useful in your projected research.” With regard to issues of military security, Aiken wrote: “You may be interested in knowing that I am at present a member of the United States Naval Reserve with rank of Lieutenant Commander.”13 Aiken’s reestablished relationship with Weaver would prove useful in the coming years.
A SOLUTION FOR THE “PROBLEM OF DR. AIKEN’S FUTURE”
“Problem of Dr. Aiken’s Future” was the title of a memo generated by a Harvard committee that met 12 March 1940 to make recommendations about Aiken’s fate to President Conant. The committee concluded that “Dr. Aiken’s future is largely dependent on the success of the calculating machine” and recommended that Harvard should make no long-term commitments to him.14 The ambiguity of Aiken’s arrangement at Harvard was cleared up with the Japanese attack on Pearl Harbor. As the United States mobilized for war, Aiken was called to active serv
ice and given orders to the Mine Warfare School in Yorktown, Virginia, during the spring of 1941. Aiken asked physics graduate student Robert Campbell to serve as the liaison between Harvard and IBM while he was away and to monitor the construction of the machine. Aiken also maintained contact with Harlow Shapley, who kept him abreast of developments within the Harvard administration.15
Throughout 1942 and 1943, Aiken continued to expand his contacts within the Navy, informing both civilian and military leaders of the potential utility of his calculating machine for the war effort. As the machine neared completion, Aiken urged his superiors that it would be more beneficial for the Navy, rather than Harvard, to assume responsibility for the machine, and that he should be named the project’s acting commander. According to Robert Campbell, “he started a sales campaign to get the Navy interested in taking over the system some time before the equipment was actually delivered [to Harvard].”16 Eventually, Aiken convinced Admiral A. T. Solberg and Commander David Ferrier of the Naval Research Laboratory, and the two officers recommended that the Bureau of Ships take over the operation of the calculator, pay Harvard rental fees for the machine, and staff the project with Navy personnel instead of Harvard employees.17
Official portrait of Commander Howard Hathaway Aiken, officer in charge of the Harvard Computation Laboratory. Courtesy of Archives Center, National Museum of American History, Smithsonian Institution.
AIKEN TAKES COMMAND
On 27 April 1944, Lieutenant Commander Howard Aiken received orders to report to Cambridge as the officer in charge of the Automatic Sequence Controlled Calculator. He had successfully bypassed President Conant and the Harvard administration by employing the political and financial clout of the Navy in order to gain control of what he considered his project. But since the source of his authority lay with the military and not with the university, Aiken would run the Harvard Computation Laboratory like a military installation, not a university laboratory.