The MARK computers of Howard Aiken
Some time in 1936 or possibly in early 1937, the Harvard physician Howard Aiken (biography) started to make plans about an automatic calculation machine. The shift came about while he was doing research for his thesis. The subject of the thesis, was space charge. Before long his thesis research came to consist primarily of solving nonlinear [differential] equations. The only methods then available for numerical solutions of problems like his made use of electromagnetic desk calculators, and calculations like those he needed were extremely time-consuming. It became apparent for Aiken that the labor of calculating could be mechanized and programmed and that an individual didn’t have to do this. He also realized that a computing machine would be of great use in solving pressing problems in many scientific fields, in engineering, and even in the social sciences.
As he had been fully aware that making such a computer a reality would require money and a lot of it, he decided to go to one of the biggest manufacturers of mechanical and electromechanical calculators in USA—the Monroe Calculating Machine Company. On 22 April 1937, Aiken presented to the Chief Engineer of Monroe—George Chase, his plans to provide automatic computation in:
•the four rules of arithmetic;
•preestablished sequence control;
•storage and memory of installed or computed values;
•sequence control that could automatically respond to computed results or symbols, together with a printed record of all that transpires within the machine;
•recording of all the computed results.
Aiken was encouraged by Chase's enthusiastic support of his project. Chase went to his management at Monroe and he did everything within his power to convince them that they should go ahead with this project, although it would be an expensive development. He had the vision and foresight to recognize that the proposed machine would be invaluable in the company's business in later years. But, although the Chief Engineer could see this, his management after some months of discussion turned him down completely.
Aiken was not tied to the relay technology at all. He was a student of Chaffee, a specialist in vacuum tubes and vacuum-tube circuits and was aware of this technology. So why wasn't Mark I an electronic device? The answer is money. Aiken was aware, that it was going to take a lot of money. When he applied for the financial support of Monroe, he was ready to make his computer out of mechanical parts and relays. If an electronic company had been interested, it might have been electronic. And finally it was made out of tabulating machine parts, only because IBM was willing to pay the bill.
Monroe's decision not to support Aiken's project was certainly a blow, but Aiken must have been heartened by Chase's enthusiasm for the new machine. Furthermore, it was Chase who suggested that Aiken turn for help to Professor Theodore Brown at Harvard, a close associate of Thomas J. Watson, president of IBM. Thus Aiken made a successful contact with IBM. Brown recommended Aiken to IBM's senior engineer Bryce, who approved his project and recommended that his dream machine be built. Bryce's opinion was crucial to IBM's decision and gained the president Watson's support for the Harvard calculator project.
Aiken prepared a formal proposal titled Proposed Automatic Calculating Machine (download). It occupied 22 double-spaced typed pages and opens with a brief history of aids to calculation, a discussion of Babbage's engines, mentions the difference engines of Scheutz, Wiberg, and Grant, and had a brief account of Hollerith's invention of punched-card tabulating, counting, sorting, and arithmetical machinery. It is known that Henry Babbage, the son of Charles Babbage, assembled about six small demonstration pieces for Difference Engine Number 1 and one of them he sent to Harvard, which was known to Aiken. Later he wrote that on seeing the machine "he felt that Babbage was addressing him personally from the past".
Aiken observes also that the machines manufactured by the IBM have made it possible to do daily in the accounting offices of industrial enterprises all over the world the things Babbage wished to accomplish. Aiken then turns to the need for more powerful calculating methods in the mathematical and physical sciences.
Aiken outlined the areas of use of his computer—theoretical physics, radio communication and television, astronomy, the theory of relativity, and even the rapidly growing science of mathematical economy and sociology.
Aiken specified four design features that differentiated ordinary punched-card accounting machinery and calculating machinery as required in the sciences:
1. A machine intended for mathematics must be able to handle both positive and negative quantities, whereas accounting machinery is designed almost entirely for problems of positive numbers.
2. Calculating machinery for mathematical purposes must be able to supply and utilize many kinds of transcendental functions (e.g., trigonometric functions), elliptic functions, Bessel functions, and probability functions.
3. For mathematics, a calculating machine should be fully automatic in its operation once a process is established. In calculating the value of a function in its expansion in a series, the evaluation of a formula, or numerical integration (in solution of a differential equation), the process, once established, must continue indefinitely until the range of the independent variables is covered usually by successive equal steps.
4. Calculating machinery designed for mathematics should be capable of computing lines instead of columns, since often, in the numerical solution of a differential equation, the computation of a value will be found to depend on preceding values. This is actually the reverse of the way in which existing calculating machinery is capable of evaluating a function by steps.
Aiken concludes that these four features are all that are required to convert existing punched-card calculating machines (such as those manufactured by the IBM) into machines specially adapted for scientific purposes.
In the conclusion of his proposal, Aiken estimates that the machine will multiply a three-significant-figure number by an eight-significant-figure number (zeros not counted) in about 3 seconds. Multiplying an eight-significant-figure number by another eight-significant-figure number will take about 5 seconds. He proposes that there be 23 number positions (10 to the left of the decimal point and 12 to the right, and an extra position to indicate the sign—plus or minus). Clearly he was thinking of a fixed rather than a floating decimal point. Aiken is reported to have said later that his reason for having 23 digits was that he intended to recompute the planetary orbits. Aiken proposes that the results of computations be printed out in tabular form so that they can then be printed by photolithography, thus eliminating errors that arise when numbers are copied by hand from a machine and those that occur during the various stages of typing, typesetting, proofreading, and printing from type.
In the beginning of 1938 Aiken started his investigations in IBM, later on began the official contacts between IBM and Harvard representatives, but the the final agreement had been drawn up and signed as late as by 31 March 1939. IBM agreed to construct for Harvard an automatic computing plant comprising machines for automatically carrying out a series of mathematical computations adaptable for the solution of problems in scientific fields, the machine was called ASCC (Automatic Sequence Controlled Calculator), but later on it became also known as Harvard Mark I. The construction began in May 1939 at the IBM laboratories at Endicott, New York, and was supposed to prolong two years, but actually the construction required almost five years. Mark I was completed and ran its first problem in Endicott in January 1943. It was moved to Harvard (see the lower photo) and became operational in March 1944. In August 1944, IBM formally presented the machine to Harvard. The total cost of the machine to IBM is usually reckoned to be around $200,000, which was a very large sum of money for the time.
Mark I at Harvard
A senior engineer from IBM, Clair Lake, was assigned to oversee the project. Francis Hamilton was responsible for most of the practical decisions, and Benjamin Durfee did most of the actual wiring and assembly of the components. Beginning in 1938, Aiken spent long weekends and two whole summers in Endicott, explaining the operations the machine would have to perform and helping design the circuits that would let it execute the commands. Over the next years he also spent many days in Endicott helping translate his requirements into machine componentry. It was soon apparent that although the IBM engineers who were assigned to the task of translating Aiken’s theoretical specifications into practical machine reality were extremely gifted men, skilled in circuits and componentry, they knew very little mathematics. They could not really understand the kinds of problems the new machine was being designed to solve.
In April 1941 Aiken, as an officer in the U.S. Naval Reserve, was called to active duty, so he could no longer pay regular visits to Endicott. He designated Robert Campbell, a graduate student in physics at Harvard, to serve as his deputy during the final stages of construction. Campbell played an important role in February 1944, when the giant machine was disassembled and shipped from Endicott to Harvard, where it was installed in a large room in the basement of the Physics Research Laboratory. He was in full charge of the machine until Aiken was assigned to Harvard by the Navy in the spring of 1944, and he programmed and ran the first problems. He also took responsibility for working out all the initial problems of error and unreliability.
The first two problems set for the new machine was to calculate out some integrals and tables. In May 1944 the machine was turned over to the Navy for the duration of the war and became an official unit of the Bureau of Ships under Aiken’s command. By August the Mark I was in full operation with a large staff of Navy personnel, including a number of officers, among them Grace Hopper and Richard Bloch, who became the chief programmer. There was a funny story, that namely Grace Hopper found the first computer "bug": a dead moth (see the lower photo of notes from Hopper) that had gotten into the Mark I and whose wings were blocking the reading of the holes in the paper tape. The word "bug" had been used to describe a defect since at least 1889 but Hopper is credited with coining the word "debugging" to describe the work to eliminate program faults.
The first "bug"
In 1944 and 1945 Mark I ran almost continuously, 24 hours a day and seven days a week. The wartime problems the machine was asked to solve included studies of magnetic fields associated with the protection of ships from magnetic mines and mathematical aspects of the design and use of radar. No doubt the most important wartime problem was a set of calculations for implosions brought from Los Alamos by John Von Neumann. Only a year or more later did the staff learn that these calculations had been made in connection with the design of the atomic bomb. The outstanding success and backlog of jobs of the computer led the Navy to ask Aiken in early 1945 to design and construct a second such machine. Aiken did so. It became known as Mark II.
Mark I was gigantic, an imposing sight, 2.5 m. high, 16 m. long, and almost 1 m. deep. It weighed five tons and contained 760000 parts, used 530 miles of wire and 3000000 wire connections, 3500 multiple relays with 35000 contacts, 2225 counters, 1484 ten-pole switches. Relying on technology developed by IBM for statistical and accounting business machines, it used traditional IBM parts such as electromagnetic relays, counters, cam contacts, card punches, and electric typewriters but also incorporated elements of a new design, including relays and counters never before used in an IBM machine. These were smaller and faster than those in use. The input consisted of a punched tape, and the output was a series of punched cards or a printout from a standard IBM electric typewriter.
Its operation was powered by a long, horizontal, continuously rotating shaft that made a hum that has been described as being like that of a gigantic sewing machine. The shaft rotated with some 3 revolutions per second. The storing and calculating devices of the machine had a word length of 23 decimal digits, with a twenty-fourth place reserved for an algebraic sign. Calculations were done in decimal numbers with a fixed decimal point.
Mark I (left part)
A typical line of coding in the program would instruct the machine to take the number in a given input register (either a constant or a number in the store) and enter it in some designated register in the store. If there already was a number in that register, the new number would be added to it. Programs were fed into the machine by punched tape. The programmer first reduced the problem to a sequence of mathematical steps and then used the “code book” (stating the designation of each location and each operation) to translate each step into the necessary coding or instructions. The instructions were essentially single-address instructions. Those who wrote programs for Mark I later recalled that the process was very much like programming later computers in machine language. After preparation of the program by means of the code book, the programmer passed on the information to the operator, who perforated appropriate tapes. There was also a special contact board, which can change the links between the modules of the computer, some kind of hardcoded logical reprogramming of the machine.
ASCC (Harvard Mark I) drawing
The machine consists of 7 basic modules, arranged from left to right (see the upper drawing), as follows:
1. Two sections with 60 registers for the input of numerical data (the constants that appear in any algebraic or differential equation), each contained 24 dial switches corresponding to 23 digits and 1 for sign (plus/minus). The location of each of these 60 registers was assigned a number, so that the instructions could use the location to identify a number being called up in the course of a calculation. For any problem these had to be set by hand (see the nearby photo).
2. Seven sections, containing with 72 additional registers (called accumulators, because they can not only store numbers, but also add and subtract, actually the subtraction is performed by adding). Each register was made up of 24 electromagnetic counter wheels, again providing the capacity for 23-digit numbers, with one place reserved for a sign. This second set of panels comprised both the store or storage and the processing unit. Adding and subtraction required 1 cycle of the machine (some 330 mS). 70 of the accumulators are general-purpose, 2 are of special-purpose, very interesting is the last accumulator, by means of which can be done something like conditional operator (after comparing two numbers). More powerful conditional operator however was added to the Mark I after 1945, when was added a second tape reader for commands.
3. Three sections with the arithmetical (multiplying and dividing) devices. There were separate devices for multiplication and division.
4. Two sections with functional counters. They maintained function interpolation and logarithms, trigonometric functions and printing.
5. Three sections with interpolators, each with separate tape reader (see the nearby photo), which are reading data for functions.
6. A section for sequence control. It maintains the work of the machine, during problem solving.
7. In the rightmost sections are electrical typewriters, tape reader for commands and the card puncher. The typewriters printed the final solution of the problem. The card puncher automatically punches cards with data.
The tape had 24 columns (i.e. 24 holes on a row). One row of data required 4 rows (23 digital positions and 1 for sign for each number, each position required 4 holes, 24x4=96). There are four tape readers. One was used to feed the instructions into the machine, and the other three held tables of functions and could supply values as needed. There was also provision for the interpolation of values given on the tapes. Thus there were built-in “subroutines” (as Aiken called them) providing for a number to be converted by some built-in function (such as a sine, an exponential, a logarithm, or raising to some power) before being entered into the store.
The coding if commands required 1 row of tape, which can be divided by 3 parts (8 positions each). In the first part (so called out-field) is specified from which register to get the operand. In the second part (in-field) is specified where to go the result. In the third part (op-field) is specified code of operation, if it is necessary (e.g. for adding and subtraction it is not necessary, because the accumulators are adding by default). 8 holes are enough (28=256) for addressing of all addressable devices—72 accumulators, 60 constant-registers, typing machines, punchers. etc.)
Mark I (right part)
The multiplication was performed not by consecutive adding, as with most mechanical calculators, but using a mechanism, proposed by Babbage long time ago—when the multiplying device read the multiplicand, it immediately calculates its nine products with the numbers form 1 to 9 and writes them in accumulators. Then it reads the multiplier and one by one reads appropriate products from the accumulators and adds them, shifting left for tens, hundreds, etc.
Although similar in many ways to later machines, Mark I incorporated one feature that today’s sequenced program computers do not have: If you did not explicitly tell Mark I to go ahead and execute the next instruction, it stopped. Programmers had to enter a seven after each command to instruct the computer to proceed. If the machine didn’t get that signal or some other automatic signal, it just stopped dead and waited for directions. From some points of view this was a tremendous advantage; for example, it was wonderful for debugging step by step. Mark I was the only sequenced program computer to include this feature.
The chief programmer, Dick Bloch, kept a notebook in which he wrote out pieces of code that had been checked out and were known to be correct. One of his routines computed sines for positive angles less than π/4 to 10 digits. Rather than use the slow sine unit built into the machine, Grace Hopper simply copied Bloch’s routine into her own program whenever she knew it would suit her requirements. This practice ultimately allowed the programmers to dispense with the sine, logarithm, and exponential units altogether. Both Bloch and Bob Campbell had notebooks full of such pieces of code. Years later the programmers realized that they were pioneering the art of subroutines and actually developing the possibility of building compilers.
Mark I continued to function at Harvard for 14 years after the war, producing useful work until it was finally retired in 1959. During that time, it also served generations of students at Harvard, where Aiken had established a pioneering program in what was later to be called computer science—with courses for undergraduates and graduate students leading to a master’s degree or a Ph.D. Many important figures in the computer world were introduced to the subject on the Harvard Mark I.
In retrospect, Mark I’s greatest significance may have lain in its dramatic public demonstration that a large-scale machine could actually perform an automatic sequence of calculations according to a program, and do so without error. Mark I did not, however, influence later computer technology as a machine since its computing elements were made of electromagnetic relays rather than of vacuum tubes, such as were used in ENIAC, and thus lay outside the path to the future of computers.
Because Mark I used mechanical and relay technology, it was very slow. It produced results faster than conventional computing methods could but not nearly as fast as machines to be unveiled soon afterward, such as ENIAC. Addition or subtraction required one machine cycle, taking some 0.3 seconds. Multiplication required 20 cycles, or 6 seconds, and division could take as much as 51 cycles, or more than 15 seconds. Because of this, in later models division was handled by the multiplication of reciprocals.
Although Mark I was slow, it not only was programmed, rather than being hard-wired for each problem, but was also extremely versatile. Whereas ENIAC was restricted in its original design by the mission of computing ballistic tables, Mark I could accommodate a large variety of programs.
Aiken built three later machines at Harvard. Mark II, like Mark I, used relays as its operating components; Mark III pioneered in using magnetic drum memory and some solid state elements, along with vacuum tubes. Mark IV had magnetic core memory and was all electronic, using selenium solid-state devices and, later, ones made of germanium.
One of Mark III’s unusual features was its automatic coding machine. This unit had a tremendous array of keys corresponding to various subroutines that were stored inside it. If a programmer needed to find the sine of a number, for example, all he or she had to do was to hit the sine key and the whole sine routine would automatically enter in the program. As Grace Hopper recalled, “In other words, Mark III had what today would be called a compiling machine. With this magnificent keyboard you essentially could punch in the program you wanted to run in a form very similar to mathematical notation.” Apparently this was the only such coding machine ever built.
Nevertheless, these machines did not set the pace for the development of computer architecture in the years after World War II. One reason was that Aiken steadfastly opposed the use of a single store for both instructions and data, which became a central feature of post-World War II computers.
What, finally, was Aiken’s importance and influence? It comes down to four principal achievements. First, he demonstrated that it was possible to produce a machine to be programmed to execute a series of commands in a predetermined sequence of operations—without error. The widespread publicity that surrounded the dedication of Mark I gave notice to the world of the dawn of the computer age.
Second, Aiken’s lectures all over the world on the importance of computers and their potential uses were extremely important in gaining support for development of computers. Third, he initiated the application of computers to data processing—not just mathematical problems- including computer billing and accounting, for instance, for electric and gas companies.
Finally, he established at Harvard the world’s first full-fledged graduate program in what is known today as computer science, and it served as a model for programs at other universities. The roster of Aiken’s pupils is astonishing. It includes two of the chief designers of IBM’s System/360 and a number of present and former chairmen of computer science departments. Among others who received their training or apprenticeship under Aiken were Grace Hopper, pioneer of the compiler and certain computer languages; An Wang, founder of the computer company that bore his name; and numerous Europeans who came to spend time working in Aiken’s Harvard Computer Lab and learning the art and science of the computer.
Some historians of the computer believe that this last, the establishment of computer science as a legitimate and recognized part of university curricula and research programs, may have been more important than anything else Aiken did. He opened the curtain on the computer age, and then he filled the stage with some of its greatest players. In so doing, he built a monument more lasting than brass, of longer duration than any single machine. He was a true computer pioneer.