The Foundation of Self-developing Blob Machines for Spatial Computing

The current trend in electronics is to integrate more and more transistors on a chip and produce massive hardware resources. As a consequence, traditional computing models, which mainly compute in the temporal domain, do not work well anymore since it becomes increasingly difficult to orchestrate these massive-scale hardware resources in a centralized way. Spatial computing is a unifying term that embodies many unconventional computing models and means computing on a relatively homogeneous physical medium made of hardware components, where the communication time is dependent on the euclidean distance between the components (locality constraint). This constraint makes the programming for high performance significantly more complex compared to classical non-spatial hardware because performance now depends on where computation happens in space (mapping problem). Blob computing is a new approach that addresses this parallel computing challenge in a radically new and unconventional way: it decouples the mapping of computations onto the hardware from the software programming while still elegantly exploiting the space of the underlying hardware. Hardware mapping of computations is done by a physical force-based approach that simulates forces between threads of computation (automata). Attractive forces are used to keep automata that need to communicate with each other closer while repulsive forces are used for load balancing. The advantage of theses primitives is that they are simple enough to be implemented on an arbitrary computing medium. They form the basis of a runtime system (RTS) that transforms an arbitrary computing medium into an easier-to-program virtual machine called the blob machine. The basic objects of the blob machine are those automata, and the instructions let automata create new automata in specific ways so as to maintain a hierarchical organisation (which facilitates both the mapping and the programming). We detail the basic instructions of the blob machine and demonstrate their confluence. Programming a spatial medium to perform a given algorithm then boils down to programming the blob machine, provided the RTS is implemented on it. The advantage of this approach is the hardware independency, meaning that the same program can be used on different media. By means of several examples programmed using a high level langage description, we further show that we can efficiently implement most current parallel computing models, such as Single Instruction Multiple Data (SIMD), data parallelism, ''divide and conquer'' parallelism and pipelining which demonstrates parallel expressiveness. On sorting and matrix multiplication algorithms, we also show that our approach scales up optimally with the number of basic hardware components.

[1]  Pinaki Mazumder,et al.  VLSI cell placement techniques , 1991, CSUR.

[2]  John Feo,et al.  SISAL reference manual. Language version 2.0 , 1990 .

[3]  Chris Hanson,et al.  Amorphous computing , 2000, Commun. ACM.

[4]  Edmond Schonberg,et al.  Programming with Sets: An Introduction to SETL , 1986 .

[5]  Luidnel Maignan,et al.  Self-developing blob machines for spatial computing: the foundations , 2008 .

[6]  Erik Winfree,et al.  Self-healing Tile Sets , 2006, Nanotechnology: Science and Computation.

[7]  John L. Casti,et al.  Unconventional Models of Computation , 2002, Lecture Notes in Computer Science.

[8]  Guy Durrieu,et al.  MaRS, a Combinator Graph Reduction Multiprocessor , 1989, PARLE.

[9]  Guy E. Blelloch,et al.  NESL: A Nested Data-Parallel Language , 1992 .

[10]  L. Adleman Computing with DNA , 1998 .

[11]  Erik M. Rauch Discrete, Amorphous Physical Models , 2003 .

[12]  F. Leighton,et al.  Introduction to Parallel Algorithms and Architectures: Arrays, Trees, Hypercubes , 1991 .

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

[14]  Damien Doligez,et al.  The Objective Caml system release 2.04 , 2002 .

[15]  Luca Cardelli,et al.  BioAmbients: an abstraction for biological compartments , 2004, Theor. Comput. Sci..

[16]  Radhika Nagpal Programmable self-assembly: constructing global shape using biologically-inspired local interactions and origami mathematics , 2001 .

[17]  Limsoon Wong,et al.  Principles of Programming with Complex Objects and Collection Types , 1995, Theor. Comput. Sci..

[18]  Frédéric Gruau,et al.  Computing Media and Languages for Space-Oriented Computation, 03.09. - 08.09.2006 , 2007, Computing Media and Languages for Space-Oriented Computation.

[19]  Guy E. Blelloch,et al.  NESL: A Nested Data-Parallel Language (Version 2.6) , 1993 .

[20]  Stylianos Perissakis,et al.  Stream computations organized for reconfigurable execution , 2006, Microprocess. Microsystems.

[21]  Gheorghe Paun,et al.  Membrane Computing , 2002, Natural Computing Series.

[22]  Ehud Shapiro,et al.  Spatial machines: a more realistic approach to parallel computation , 1992, CACM.

[23]  Daniel Le Métayer,et al.  Programming by multiset transformation , 1993, CACM.

[24]  Stamatis Vassiliadis,et al.  Proceedings of the 1st conference on Computing frontiers , 2004 .

[25]  E T. Leighton,et al.  Introduction to parallel algorithms and architectures , 1991 .

[26]  David B. Skillicorn,et al.  Models and languages for parallel computation , 1998, CSUR.

[27]  Michael J. Flynn,et al.  Parallel architectures , 1996, CSUR.

[28]  Frédéric Gruau,et al.  The Blob Division: A "Hardware-Free", Time Efficient, Self-Reproduction on 2D Cellular Automaton , 2004, BioADIT.

[29]  Chris Dwyer,et al.  Circuit and System Architecture for DNA-Guided Self-Assembly of Nanoelectronics , 2004 .

[30]  Daniel Coore,et al.  Botanical computing: a developmental approach to generating interconnect topologies on an amorphous computer , 1999 .

[31]  Xavier Leroy The objective caml system release 3 , 2001 .

[32]  Thompson The VLSI Complexity of Sorting , 1983, IEEE Transactions on Computers.

[33]  Frédéric Gruau,et al.  Cellular Gravity , 2000, Parallel Process. Lett..

[34]  Jean-Louis Giavitto,et al.  Invited Talk: Topological Collections, Transformations and Their Application to the Modeling and the Simulation of Dynamical Systems , 2003, RTA.

[35]  K. Mani Chandy,et al.  UC: A Set-Based Language for Data-Parallel Programming , 1995, J. Parallel Distributed Comput..

[36]  Thomas Lengauer VLSI Theory , 1990, Handbook of Theoretical Computer Science, Volume A: Algorithms and Complexity.

[37]  John Wawrzynek,et al.  Stream Computations Organized for Reconfigurable Execution (SCORE) , 2000, FPL.

[38]  M. Nivat,et al.  Selected papers of the fourth international conference on Database theory , 1993, ICDT 1995.

[39]  Seth Copen Goldstein,et al.  Scalable shape sculpting via hole motion: motion planning in lattice-constrained modular robots , 2006, Proceedings 2006 IEEE International Conference on Robotics and Automation, 2006. ICRA 2006..

[40]  Tetsuya Asai,et al.  Reaction-diffusion computers , 2005 .

[41]  Olivier Temam,et al.  BLOB computing , 2004, CF '04.

[42]  John E. Savage,et al.  Evaluation of design strategies for stochastically assembled nanoarray memories , 2005, JETC.

[43]  Jean-Louis Giavitto,et al.  06361 Executive Report -- Computing Media Languages for Space-Oriented Computation , 2007, Computing Media and Languages for Space-Oriented Computation.

[44]  M. Arbib,et al.  Neural Organization: Structure, Function, and Dynamics , 1997 .

[45]  Tommaso Toffoli,et al.  Programmable matter methods , 1999, Future Gener. Comput. Syst..

[46]  Björn Lisper,et al.  On the relation between functional and data parallel programming languages , 1993, FPCA '93.

[47]  K. Tomita,et al.  Graph automata: natural expression of self-reproduction , 2002 .

[48]  Dario Floreano,et al.  POEtic Tissue: An Integrated Architecture for Bio-inspired Hardware , 2003, ICES.

[49]  Frédéric Gruau,et al.  The Blob: A Basic Topological Concept for "Hardware-Free" Distributed Computation , 2002, UMC.