Los Alamos bets on ENIAC: Nuclear Monte Carlo simulations, 1947–1948 (2014) [pdf]
Pangram verdict · v3.3
We believe that this entire text is human-written.
AI likelihood · overall
HumanArticle text · 1,563 words · 1 segments analyzed
Los Alamos Bets on ENIAC: Nuclear Monte Carlo Simulations, 1947–1948 Thomas Haigh University of Wisconsin–Milwaukee Mark Priestley Crispin Rope From rich archival sources, the authors reconstruct the evolution of a program first run on ENIAC in April 1948 by a team including John and Klara von Neumann and Nick Metropolis. This was not only the first computerized Monte Carlo simulation, but also the first code written in the modern paradigm, usually associated with the “stored program concept,” ever executed. By reconstructing the Monte Carlo calcula- tions carried out on ENIAC in 1948 on behalf of Los Alamos Scientific Laboratory, this article examines programming practice and scientific computation at the dawn of mod- ern computing. This is the final article in a three-part series published in Annals explor- ing modifications made to ENIAC that made it the first computer to support what we have elsewhere defined as the “modern code para- digm,” one of a cluster of related innovations propagated by John von Neumann in his 1945 “First Draft of a Report on the EDVAC.”1 (The first article in this series, “Reconsidering the Stored Program Concept,” examined the history of the “stored program concept” and proposed a set of more specific alterna- tives.2 The second, “Engineering ‘The Miracle of the ENIAC’: Implementing the Modern Code Paradigm,” explored the conversion of ENIAC to the new programming method and put its capabilities into context against other computers of the late 1940s.3) The term “modern code paradigm” describes the con- trol mechanism adopted by modern com- puters, including the automatic execution of programs stored in an addressable memory and expressed as a series of operation codes followed by arguments. Programs written in this new style relied on conditional or calcu- lated jumps to change the course of their exe- cution and modified the addresses acted on by instructions to iterate through data structures.2 The ENIAC Monte Carlo program run in April and May 1948 was both the first compu- terized Monte Carlo simulation and the first program written in the new paradigm to be executed on any computer. The evolution we document here from computing plan through a series of flow diagrams and plan- ning documents to a revision of the code after initial tests provides a window through which we can observe the first full revolution of what would later be thought of as the soft- ware system development lifecycle. Although scholarly historians of computing have good reason to be leery of the hunt for “firsts” that dominated our field in its infancy, this does give the code an undeniable historical interest. More than a decade ago, historians of computing identified software history as a vital and under-researched area and have since gone a long way toward filling this gap.4 After an early focus on programming language design, more recent investigations have focused on the history of particular soft- ware companies and their founders, eco- nomic analysis of different sectors of the software industry, the software engineering movement and its relationship to the identity of programming, and the development of packaged software genres such as spread- sheets, word processors, and database man- agement systems.5 Studies of what programmers and other kinds of system developers actually do, of 42 IEEE Annals of the History of Computing Published by the IEEE Computer Society 1058-6180/14/$31.00 c 2014 IEEE software as a technological artifact, or of the coevolution of hardware and software have remained conspicuous by their absence. The importance of these topics has been recog- nized in related fields, including emerging communities focused on software studies, critical code studies, or platform studies. Within broader historical communities, his- torians of technology have placed an in- creasing emphasis on the importance of understanding technology in use, exploring the social meanings and technical cultures in which technologies are enveloped.6 Historians of science have placed a corre- sponding emphasis on studies of scientific practice, examining what scientists actually do inside and outside the laboratory. The study of instrumentation, technologies used to observe and measure aspects of nature, has been a particularly vibrant field. This article engages directly with the computations dis- cussed in Peter Galison’s classic “Computer Simulations and the Trading Zone.” That chapter depicted early computer simulation as the product of a new heterogeneous com- munity with “a new cluster of skills in com- mon, a new mode of producing scientific knowledge” constituted by “common activ- ity centered around the computer.”7 Differ- ent kinds of expertise were “traded” around this common object. Galison suggested that ENIAC’s Monte Carlo calculations “ushered physics into a place paradoxically dislocated from the traditional reality that borrowed from both experimental and theoretical domains” by building “an artificial world in which ‘experiments’ (their term) could take place” within computers.8 The status of simu- lation as a new kind of scientific experimen- tation has since been a major concern for philosophers of science and for historians of computing, such as Michael S. Mahoney and Ulf Hashagen.9 Galison’s chapter is revered more for its concepts and argument than for its detailed analysis of the specifics of early nuclear simu- lations. He first writes in some detail on John von Neumann’s 1944 work on numerical methods for the treatment of the hydrody- namic shocks produced within exploding nuclear weapons. Although a greatly simpli- fied model of the ignition of a fusion weapon provided ENIAC with its first actual problem, run in late 1945 and very early 1946, this was not a Monte Carlo simulation. Turning next to Monte Carlo, Galison uses archival corre- spondence to explore the techniques used to produce pseudorandom numbers and sketches in von Neumann’s published 1947 plan for the simulation of neutron diffusion in a fission reaction. However, Galison does not follow, or even mention, the main topic of this article: the development of this initial sketch into an evolving set of ENIAC pro- grams used for at least four distinct batches of Monte Carlo fission simulations during 1948 and 1949. Instead, his narrative jumps from von Neumann’s 1947 enthusiasm for fission Monte Carlo to 1949 plans to simulate an entirely separate physical system, Edward Tell- er’s design for a “Super” fusion bomb.10 Anne Fitzpatrick filled some of these gaps from the Los Alamos perspective, but our current article provides the first detailed examination of the 1948 Monte Carlo simulations.11 Monte Carlo methods proved to be of great importance to scientific computing and oper- ations research after their computerized debut on ENIAC. The original code’s direct descend- ants, run on computers at Los Alamos and Livermore laboratories, were a vital aspect of weapons design. They drove the needs of two of the world’s most important purchasers of high-performance computer systems and so, according to Donald MacKenzie, exerted a direct influence on the development of super- computer architecture.12 Monte Carlo meth- ods were one of the most important and widely adopted techniques in the transforma- tion of scientific practices around computer simulation. Beyond their established importance to the history of science, the Monte Carlo pro- grams run on the ENIAC in 1948 are also of considerable importance to the history of software. We believe them to be the best documented application programs run on any computer during the 1940s, allowing us to assemble a detailed reconstruction of the programs as run. We located several original flow diagrams including the final version for the spring 1948 calculations, the second major version of the program code in its entirety, and a detailed document describing changes made between the first and second versions of the program. We also consulted the ENIAC operations log book, which docu- ments each day of machine activity during the period and the process by which ENIAC was converted into a machine able to run code written in the modern paradigm. The calculations also shed light on an underexplored aspect of the work of John von Neumann and his Princeton-based col- laborators, who were then the most influen- tial group of computing researchers in the 43July–September 2014 United States and had been intimately involved in creating and disseminating cru- cial ideas on the design and programming of electronic computers such as the von Neumann architecture, the modern code paradigm, subroutine libraries, and flow dia- grams.13 Their work on ENIAC’s new instruc- tion set and the Monte Carlo code took place as they were moving from the design of the Institute for Advanced Studies computer, which provided the template for most of the electronic computers constructed in the United States in the early 1950s, to its con- struction, issuing in the process an influential series of reports on programming and dia- gramming methods.14 The material we have uncovered captures changes in the team’s thinking about the structure of the computa- tion as they absorbed the implications of the modern code paradigm, in particular the flex- ibility its control structures of branches and loops offered in comparison with earlier con- trol methods embodying fixed ideas about computational structures. Monte Carlo Origins There is no single Monte Carlo method. Rather, the term describes a broad approach encompassing many specific techniques. As its name lightheartedly suggests, the defining element is the application of the laws of chance. Physicists had traditionally sought to create elegant equations to describe the out- come of processes involving the interactions of huge numbers of particles. For example, Einstein’s equations for Brownian motion could be used to describe the expected diffu- sion of a gas cloud over