amorphous computing greg streletz uc davis department of computer science

55
Amorphous Computing Greg Streletz UC Davis Department of Computer Science

Post on 19-Dec-2015

220 views

Category:

Documents


2 download

TRANSCRIPT

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.

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.

Properties of Amorphous Systems

• Individual particles may be unreliable.

• Each particle can store state and generate random numbers.

• All particles are programmed identically.

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

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.

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.”

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.

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”

Current Research

• Amorphous Computing Project at MIT’s Artificial Intelligence Laboratory– Funded by DARPA (DoD)

• Xerox PARC

Impetus for Investigating Amorphous Computing Methods

• Advances in:– Microfabrication– Cellular engineering

• Both of these disciplines provide a possible implementation technology for amorphous systems.

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.

Metaphors from Biology

• Morphogenesis: large numbers of cells interacting to form tissues, organs, organ systems, …

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

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.

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

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.

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.

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.

Region Definition

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

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.

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.

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.

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).

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.

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.

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

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.

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.

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

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

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.

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.

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

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.

Self-Organizing Area Networks

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.

Emergent Communication Networks

• The emergent communication network automatically evolves the most efficient network structure for the given problem.

Search wave

Fastest path(avoids congestion)

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.

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.

Self-Organizing Coordinate Systems

small triangle bigger triangle after smoothing

demonstration of theresulting coordinate system

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.”

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.

Using Amorphous Computing for Simulating Physics

• Rauch has explored such issues in his thesis on Discrete, Amorphous Physical Models.

wave equation

simulation results

Using Amorphous Computing for Simulating Physics

• The MIT group also has done Reaction-Diffusion simulations using amorphous computing

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.

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.

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.

Cellular Computing

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.

Cellular Nanofabrication

• However, cellular computing, in conjunction with amorphous computing methods such as the pattern formation language of GPL, might provide an ideal way to fabricate molecular-scale electronic structures.

Cellular Nanofabrication• If molecular scale electronic components

become feasible, we will need a way to assemble these components in extremely densely packed circuits, possibly even in three dimensions.

• An extremely large system of “computational cells” - programmed using amorphous computing methods - is envisioned as the factory for such circuits.

Conclusion

• Massively parallel computation is in vogue these days.– LLNL ASCI program goal: ~10,000 processors

• However, it is extremely difficult to coordinate this number of processors explicitly.

Conclusion

• Amorphous computing addresses this fact, and the possibility of massively parallel computation on an even much greater scale, by proposing a new paradigm for organizing computation.

• The main organizational principle is that individual elements interact only locally, and that they can potentially be unreliable.

Conclusion

• Amorphous computing attempts to exploit the apparent power of this organizational principle - as illustrated by examples in nature - to perform specific computational tasks.