1 / 55

Amorphous Computing

Amorphous Computing. Greg Streletz UC Davis Department of Computer Science. Amorphous Systems. An amorphous system consists of an extremely large number of computing elements. These “computational particles” can be mixed in a volume or scattered on a surface.

aderyn
Télécharger la présentation

Amorphous Computing

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Amorphous Computing Greg Streletz UC Davis Department of Computer Science

  2. Amorphous Systems • An amorphous system consists of an extremely large number of computing elements. • These “computational particles” can be mixed in a volume or scattered on a surface.

  3. Properties of Amorphous Systems • Particles are asynchronous and irregularly placed, and do not have any initial knowledge of their positions. • Particles interact locally by communicating with other particles within some finite communication radius.

  4. Properties of Amorphous Systems • Individual particles may be unreliable. • Each particle can store state and generate random numbers. • All particles are programmed identically.

  5. Amorphous Computing • Amorphous computing is the enterprise of harnessing the organizational properties of amorphous systems to do useful things. • Development of: • Organizational principles • Programming languages

  6. Amorphous Computing • Amorphous computing is related to the study of self-organizing systems, emergent behaviors, etc., but there is an important difference: Amorphous computing is an engineering discipline.

  7. Amorphous Computing as Engineering • The goal of amorphous computing is to “engineer prespecified, coherent behavior from the cooperation of immense numbers of unreliable parts …” • … “to construct systems so that they end up organized to behave as we a priori intend, not merely as they happen to evolve.”

  8. Possible Applications • Smart materials • Mix computational particles with bulk materials such as paint, gel, or concrete. • Smart paint could be used to coat objects and then compute their shape, to sense environmental parameters, to cancel noise, etc. • Programmable materials: materials that can sense and react to their environment.

  9. Possible Applications • New computational models for simulation • Self-reconfiguring computers or robotics • Fabrication of mechanical structures using the elements in an amorphous system as “builders”

  10. Current Research • Amorphous Computing Project at MIT’s Artificial Intelligence Laboratory • Funded by DARPA (DoD) • Xerox PARC

  11. Impetus for Investigating Amorphous Computing Methods • Advances in: • Microfabrication • Cellular engineering • Both of these disciplines provide a possible implementation technology for amorphous systems.

  12. Impetus for Investigating Amorphous Computing Methods • In addition to the possibility of implementing an amorphous system, research into amorphous computing methodologies is driven by the observation that in nature local interactions of large numbers of independent entities often result in complex and interesting outcomes.

  13. Metaphors from Biology • Morphogenesis: large numbers of cells interacting to form tissues, organs, organ systems, …

  14. Metaphors from Biology • Group behaviors in which many individual organisms react to each other locally, resulting in the emergence of a global pattern • Flocks of birds • Schools of fish • The flashing of fireflies

  15. Metaphors from Biology • Botanical metaphor • Growth inhibition • Tropisms • Coore’s “Growing Point Language” (GPL) • Allows programmers to specify complex patterns. • Is compiled into a uniform state machine for each of the individual particles in an amorphous system.

  16. Some Basic Techniques in Amorphous Algorithms • Illustration of a few basic algorithmic techniques that are central to amorphous computing: • Distance measurement • Region definition • Hierarchies • Self-organizing communication • Self-organizing coordinate systems

  17. Distance Measurement • Measurement of the approximate distance between two particles in an amorphous system is fundamental to amorphous computing. • Distance measurement is accomplished through the use of diffusion wave propagation.

  18. Diffusion Wave Propagation • Goal: to propagate a message throughout the amorphous system. • Assume that some particle - the anchor particle - initiates the message. • Furthermore assume the the message contains a hop count, which the anchor particle has initialized to 0.

  19. Diffusion Wave Propagation • Propagation algorithm: • Upon receiving a message, a particle will increment the hop count and then rebroadcast the message to its neighbors. • Subsequently, if the particle receives a message with a higher hop count, it will ignore it. This prevents the wave from propagating backwards. • The hop count is an estimate of a given particle’s distance from the anchor particle.

  20. Region Definition • Problem: Given an amorphous system on a surface, use the system to divide the surface into several distinct regions.

  21. Region Definition • Assumptions: • Particles are “randomly and uniformly distributed.” • Each particle can communicate with several of its neighbors. • A particle does not initially know the distances or directions to any of its neighbors.

  22. Region Definition • Algorithmic approach: • (1) Each particle creates an ID for itself using its random number generator. • (2) Each particle identifies the set of particles with which it can communicate. • (3) Each particle initializes a state variable LOWNUM to be equal to its particle ID.

  23. Region Definition • Algorithmic approach: • (4) Perform local clustering: • Each particle compares its LOWNUM variable to that of each of its neighbors. • If a neighbor’s LOWNUM is lower than its own, a particle resets its LOWNUM to this lower value. • Do this for a few iterations. • Result: a few regions, the radius of each being roughly equal to the number of iterations. However, the boundaries are ragged and there may be holes.

  24. Region Definition • Algorithmic approach: • (5) Regularize the regions using a peer pressure algorithm: • Each particle computes a frequency table of the LOWNUM values of itself and its neighbors. • Each particle then resets its LOWNUM to the most frequently occurring LOWNUM value in its table. • Continue until stabilization occurs. • Result: compact, well-defined regions, each of which has a representative particle (the particle whose ID is the LOWNUM value for the region).

  25. Region Definition • Algorithmic approach: • (6) Propagate edge information. • A particle that sees more than one LOWNUM value is near an edge. • Use a similar propagation algorithm. • Each edge will then have an ID (and representative). • (7) Propagate vertex information. • A particle that sees more than two LOWNUM values is near a vertex. • Result: each vertex has an ID and representative.

  26. Region Definition • Algorithmic approach: • (8) Combine all of the information through broadcast accumulation. • Initially, each particle knows information only about structures to which it belongs. • Share this information by broadcasting to neighbors. • A particle relays information it receives only when the information is something new. • Eventually, all particles will know everything about their collective topology.

  27. Region Definition • Each particle will know: • IDs of all of the regions • IDs of all of the edges • IDs of all of the vertices • Which edges separate which regions • Which edges meet at each vertex

  28. Region Definition • Observations: • Clustering / Region Growing: Reminiscent of algorithms in the fields of feature extraction and computer vision. • Note that the correctness of these algorithms actually depends on the fact that particles can communicate only locally.

  29. Hierarchies • Given an amorphous system, it is often useful to organize it hierarchically. • Each level of a hierarchy contains groups of processors. • Different levels of a hierarchy organize the processors at different levels of granularity.

  30. Hierarchies • Analogies • Biology: • Cells within a tissue • Tissues within an organ • Organs within an organ system • Sociology: • Individuals organize into groups • Groups organize into groups of groups • Possibly many levels of metagroups

  31. Hierarchies • The possibility of introducing hierarchies into an amorphous system has obvious implications for programming in an amorphous computing environment: • Enables the creation of high-level abstractions • Provides for data encapsulation • Encourages an object-oriented approach

  32. AC Hierarchies • A formal abstraction for expressing the hierarchy concept • An ordered sequence of levels • Each level consists of a collection of groups and a method of inter-group communication.

  33. AC Hierarchies • Algorithms: • Overlapping-clubs algorithm • Uses local broadcast to construct first level of hierarchy; provides geometric bounds. • Tight-clubs algorithm • Uses local broadcast to construct first level of hierarchy; provides groups with high fault tolerance. • Tree-regions algorithm • Can be applied recursively to create higher levels of the hierarchy; uses spanning trees.

  34. Self-Organizing Communication • In an amorphous system, a communication network must be self-organizing and self-repairing. • Two approaches: • Self-organizing area networks • Emergent communication networks

  35. Self-Organizing Area Networks • Uses the hierarchy concept • Post Office paradigm: • Computational components are organized into cities, cities are organized into states, states are organized into countries, etc. • City post office knows all cities in the state, state post office knows all states in the country, etc.

  36. Self-Organizing Area Networks

  37. Emergent Communication Networks • Hierarchical communication networks are static, and therefore may be inefficient for actual communication patterns, although they do provide all-to-all routing generality. • To optimize for specific emergent communication patterns, a dynamic routing algorithm can be used.

  38. Emergent Communication Networks • The emergent communication network automatically evolves the most efficient network structure for the given problem. Search wave Fastest path (avoids congestion)

  39. Self-Organizing Coordinate Systems • Since the computational particles in an amorphous system initially do not know their positions, the system needs to be able to self-organize a coordinate system. • One way to do this is to use triangulation, combined with the diffusion wave method of distance measurement.

  40. Self-Organizing Coordinate Systems • Triangulation method: • Since the location of any point in the plane can be deduced from its distance from three non-colinear points, we can establish a coordinate system in the plane by choosing three non-colinear anchors and by using the diffusion wave based method of distance measurement (with hop counts) to approximate the distance of a given particle from each of these anchors.

  41. Self-Organizing Coordinate Systems small triangle bigger triangle after smoothing demonstration of the resulting coordinate system

  42. Self-Organizing Coordinate Systems • Revisiting the morphogenesis metaphor. • Nagpal remarks that:“The use of distance waves and triangulation also occurs in Biology. In the morphogenesis of the fly, three anchors are used - the anterior, posterior and dorsal points. Each produces a chemical gradient to effectively form a coordinate system which is used to differentiate the body into segments.”

  43. Using Amorphous Computing for Simulating Physics • Typically, continuous conservative systems are represented by differential equations. However, such a system can be simulated discretely with an amorphous system by explicitly passing discrete computational tokens of the conserved quantities between the computational particles. Local exchanges of these tokens result in the global conservation of the quantities concerned.

  44. Using Amorphous Computing for Simulating Physics • Rauch has explored such issues in his thesis on Discrete, Amorphous Physical Models. wave equation simulation results

  45. Using Amorphous Computing for Simulating Physics • The MIT group also has done Reaction-Diffusion simulations using amorphous computing

  46. Using Amorphous Computing to Construct Geometry • The “Growing Point Language” (GPL) has been developed by Coore using a botanical metaphor involving such things as growing points and tropisms. • This language is a fairly powerful formalism for expressing geometry in a form that is easily translated for implementation on an amorphous computer.

  47. Using Amorphous Computing to Construct Geometry • Coore has shown that any planar graph can be expressed in GPL (up to topological equivalence). • This pattern formation capability has implications for circuit design.

  48. Cellular Computing • Sussman and Knight have proposed a way to implement digital logic gates using living biological cells. • The idea is to use concentrations of DNA-binding proteins as signals, and to perform switching by exploiting the fact that the presence of a repressor protein can prevent the binding of RNA polymerase, and thus the production of the usual output protein.

  49. Cellular Computing

  50. Cellular Computing • The possibility of cellular logic gates may provide a natural implementation technology for amorphous computing. • However, cellular computing of this type would be very slow, and therefore probably fairly useless for serious computation.

More Related