The ulam Programming Language for Artificial Life

Traditional digital computing demands perfectly reliable memory and processing, so programs can build structures once then use them forever—but such deterministic execution is becoming ever more costly in large-scale systems. By contrast, living systems, viewed as computations, naturally tolerate fallible hardware by repairing and rebuilding structures even while in use—and suggest ways to compute using massive amounts of unreliable, merely best-effort hardware. However, we currently know little about programming without deterministic execution, in architectures where traditional models of computation—and deterministic ALife models such as the Game of Life—need not apply. This expanded article presents ulam, a language designed to balance concurrency and programmability upon best-effort hardware, using lifelike strategies to achieve robust and scalable computations. The article reviews challenges for traditional architecture, introduces the active-media computational model for which ulam is designed, and then presents the language itself, touching on its nomenclature and surface appearance as well as some broader aspects of robust software engineering. Several ulam examples are presented; then the article concludes with a brief consideration of the couplings between a computational model and its physical implementation.

[1]  Alexandru Agapie,et al.  Probabilistic Cellular Automata , 2014, J. Comput. Biol..

[2]  Darko Stefanovic,et al.  A deoxyribozyme-based molecular automaton , 2003, Nature Biotechnology.

[3]  Martin C. Rinard,et al.  Parallelizing Sequential Programs with Statistical Accuracy Tests , 2013, TECS.

[4]  Craig W. Reynolds Flocks, herds, and schools: a distributed behavioral model , 1998 .

[5]  Shekhar Y. Borkar,et al.  iWarp: an integrated solution to high-speed parallel computing , 1988, Proceedings. SUPERCOMPUTING '88.

[6]  Erik D. Demaine,et al.  Reconfigurable asynchronous logic automata: (RALA) , 2010, POPL '10.

[7]  Grinstein,et al.  Statistical mechanics of probabilistic cellular automata. , 1985, Physical review letters.

[8]  David H. Ackley Indefinite Scalability for Living Computation , 2016, AAAI.

[9]  Sandeep K. Shukla,et al.  Guest Editors' Introduction: GALS Design and Validation , 2007, IEEE Design & Test of Computers.

[10]  Randall D. Beer,et al.  The Cognitive Domain of a Glider in the Game of Life , 2014, Artificial Life.

[11]  David H. Ackley,et al.  Indefinitely Scalable Computing = Artificial Life Engineering , 2014, ALIFE.

[12]  David H. Ackley,et al.  Ccr: A network of worlds for research , 1996 .

[13]  Vijayalakshmi Srinivasan,et al.  Programming with relaxed synchronization , 2012, RACES '12.

[14]  David H. Ackley,et al.  A Movable Architecture for Robust Spatial Computing , 2013, Comput. J..

[15]  Tommaso Toffoli,et al.  Cellular automata machines - a new environment for modeling , 1987, MIT Press series in scientific computation.

[16]  David H. Ackley Beyond efficiency , 2013, Commun. ACM.

[17]  Hans-J. Boehm Position paper: nondeterminism is unavoidable, but data races are pure evil , 2012, RACES '12.

[18]  Gernot Heiser,et al.  The von Neumann Architecture Is Due for Retirement , 2013, HotOS.

[19]  Richard M. Karp,et al.  An introduction to randomized algorithms , 1991, Discret. Appl. Math..

[20]  John von Neumann,et al.  Theory Of Self Reproducing Automata , 1967 .

[21]  David H. Ackley,et al.  Pursue Robust Indefinite Scalability , 2011, HotOS.

[22]  David H. Ackley Bespoke Physics for Living Technology , 2013, Artificial Life.

[23]  Rodney A. Brooks,et al.  Asynchrony induces stability in cellular automata based models , 1994 .

[24]  Dmitri B. Strukov,et al.  Race Logic: A hardware acceleration for dynamic programming algorithms , 2014, 2014 ACM/IEEE 41st International Symposium on Computer Architecture (ISCA).

[25]  Timothy J. Taylor,et al.  From artificial evolution to artificial life , 1999 .

[26]  Thomas S. Ray A Proposal to Create a Network-Wide Biodiversity Reserve For Digital Organisms , 1995 .

[27]  David H. Ackley,et al.  Artificial life programming in the robust-first attractor , 2015, ECAL.

[28]  Franck Cappello,et al.  Toward Exascale Resilience , 2009, Int. J. High Perform. Comput. Appl..

[29]  D. Endy,et al.  Refinement and standardization of synthetic biological parts and devices , 2008, Nature Biotechnology.

[30]  M. Bedau Artificial life: organization, adaptation and complexity from the bottom up , 2003, Trends in Cognitive Sciences.

[31]  Andrew S. Cassidy,et al.  A million spiking-neuron integrated circuit with a scalable communication network and interface , 2014, Science.