Post on 01-Jan-2016
description
1 April 1998 DARPA Ultrascale Computing Program 1
AMORPHOUS COMPUTING
Harold Abelson, Thomas F. Knight,
and Gerald Jay Sussman
Massachusetts Institute of Technology
1 April 1998 DARPA Ultrascale Computing Program 2
A scientific and technological effort to identify
• methods for obtaining coherent behavior from the cooperation of large numbers of unreliable parts that are interconnected in unknown, irregular, and time-varying ways
• techniques for instructing myriads of programmable entities to cooperate to achieve particular goals
• engineering principles and languages that can be used to observe, control, organize, and exploit the behavior of programmable multitudes.
1 April 1998 DARPA Ultrascale Computing Program 3
Amorphous computing is
• Not emergent behavior
• Not “pretty pictures”
• It is engineering of mechanisms with prespecified, well-defined behavior
1 April 1998 DARPA Ultrascale Computing Program 4
Our model
• Computing elements sprinkled on a surface or in a volume
• Each can talk to a few nearby neighbors, but not reliably
• Each has modest computing power and a modest amount of memory
• The particles are not synchonized, nor are they regularly arranged.
1 April 1998 DARPA Ultrascale Computing Program 5
Properties of our model
• Local communication– locally disordered, but constrained by geometry
• Too many components to individually program or even to name
• Components are possibly faulty, sensitive to the environment, and may effect actions
1 April 1998 DARPA Ultrascale Computing Program 6
Example of an Amorphous Computing Medium
An amorphous medium has independent computational particles, all identically programmed. Each particle is represented by a spot in the picture, and different states are shown by different colors.
1 April 1998 DARPA Ultrascale Computing Program 7
Why is this interesting?
• Physically feasible at any scale
• Forces robustness of design
• Potentially extremely inexpensive
• Provides the possibility of bulk computation– smart paints– smart gels– concrete by the Megaflops
1 April 1998 DARPA Ultrascale Computing Program 8
How can we program amorphous stuff?
• We can look to biology for organizational metaphors (although we do not try to duplicate actual biological mechanisms)
• We’ll take examples from pattern formation to illustrate the point, and produce cartoon caricatures of biological morphogenesis
1 April 1998 DARPA Ultrascale Computing Program 9
Bifurcating Tubes: an example of emergent behavior
This is an amorphous physical simulation of a weak membranebounding a pressure vessel. When a bulge appears, the membranethins and the bulge expands. (by Radhika Nagpal)
1 April 1998 DARPA Ultrascale Computing Program 10
… But suppose we wanted to make something with a precisely specified geometry?
from Frank Netter
Atlas of Human Anatomy
1 April 1998 DARPA Ultrascale Computing Program 11
Local SIMD paradigm for programming differentiation and growth (Ron Weiss)
• Each computing element’s state includes some binary markers. Each computing element’s program has many independent rules. • Rules are triggered when messages are received. A rule is applicable if a certain boolean combination of markers is satisfied.• When a rule is applied it may set markers and send further messages.• Messages have hop counts that determine how far they will diffuse.• Markers may have lifetimes after which they expire.
1 April 1998 DARPA Ultrascale Computing Program 12
Differentiation
To make a “spine” the elements in an initial polarized tube must differentiate into bands of alternating C and D type segments.
1 April 1998 DARPA Ultrascale Computing Program 13
A program for creating segments
(start Crest ((send (make-seg C 1) 3)))
((make-seg seg-type seg-index) (and Tube (not C) (not D)) ((set seg-type) (set seg-index) (send created 3)))
(((make-seg) (= 0)) Tube ((set Bottom)))
(((make-seg) (> 0)) Tube ((unset Bottom)))
(created (or C D) ((set Waiting 10)))
(* (and Bottom C 1 (Waiting (= 0))) ((send (make-seg D 1) 3)))
(* (and Bottom D 1 (Waiting (= 0))) ((send (make-seg C 2) 3)))
(* (and Bottom C 2 (Waiting (= 0))) ((send (make-seg D 2) 3)))
(* (and Bottom D 2 (Waiting (= 0))) ((send (make-seg C 3) 3)))
1 April 1998 DARPA Ultrascale Computing Program 14
Segments can grow by invading neighboringsegments, thereby stimulating them to grow
15
Timeline of Segments’ Status
1RG1
R+1
G2
R+1
G2
R+1
G2
R+1
G2
R+1
G2
R+1
G2
R+1
G2
R+1
G2
R+1
G2R+2 R+2 R+2 R+2
2 RCG1
C+1 C+1 C+1 C+1 C+1 C+1 C+1 R+1 C+1
G2C+2 C+2 C+2
3 R RCG1
C+1 C+1 C+1 C+1 C+1 R+1 C+1 R+1 C+1
G2C+2 C+2
4 R R RCG1
C+1 C+1 C+1 R+1 C+1 R+1 C+1 R+1 C+1
G2C+2
5 R R R RCG1
C+1 R+1 C+1 R+1 C+1 R+1 C+1 R+1 C+1
G2
C R Xi, G Xi+1
R move C R grow Ci, G
R+x = Relaxed, grew x unitsC+x = Compressed, grew x unitsGx = Growth signal x
Rule IIRule I
1 April 1998 DARPA Ultrascale Computing Program 16
An experimental prototype for amorphous computing
Chris HansonDon AllenDarren SchmidtBei WangChris TermanTom Knight
1 April 1998 DARPA Ultrascale Computing Program 17
Computational particles
communicate using spread-spectrum transceivers.
1 April 1998 DARPA Ultrascale Computing Program 18
Test setup for transceiver
1 April 1998 DARPA Ultrascale Computing Program 19
Test signals from transceiver
1 April 1998 DARPA Ultrascale Computing Program 20
Some general tools for building structure in amorphous systems
• Wave propagation
• Coordinate refinement
• Activation/inhibition
1 April 1998 DARPA Ultrascale Computing Program 21
Crude local coordinate systems can be constructed by intersecting countdown waves radiating from several loci.
1 April 1998 DARPA Ultrascale Computing Program 22
Cleverness makes better Coordinates
Laplace’s equation can be used to interpolate from a boundary condition. One can approximately solve Laplace’s equation on
an amorphous computer by successive averaging.
1 April 1998 DARPA Ultrascale Computing Program 23
Local coordinate systems can be combined.
A global picture can be constructed by working out the mappings at the overlaps among the local coordinate systems.
1 April 1998 DARPA Ultrascale Computing Program 24
1 April 1998 DARPA Ultrascale Computing Program 25
By combining these ideas, we can obtain detailed topological
control, and embody the control mechanisms in a language…
Cartoon caricature of “differentiation” to build a chain of “CMOS inverters” (by Daniel Coore)
1 April 1998 DARPA Ultrascale Computing Program 26
A botanical metaphor
We organize the process in terms of “growing points.”
They make structures that exhibit “tropisms” toward particular “chemical gradients.”
The growing points may lay down materials.
Materials may secrete pheromones that attract or repel other growing points.
Growing points may split, die off, or join.
Support for this abstraction may be programmed as a uniform state machine in each computational particle.
1 April 1998 DARPA Ultrascale Computing Program 27
Start with Vdd, Vss, and a Poly Contact
1 April 1998 DARPA Ultrascale Computing Program 28
The poly contact sprouts a growing point that bifurcates and then grows toward the pheromones
secreted by Vdd and Vss.
1 April 1998 DARPA Ultrascale Computing Program 29
When the growing poly gets close to Vdd and Vss it is stopped by a short-range inhibition
1 April 1998 DARPA Ultrascale Computing Program 30
The poly growing points die off, but first they sprout P and N transistor diffusion growing points, which
grow toward Vdd and Vss, where they drop contacts.
1 April 1998 DARPA Ultrascale Computing Program 31
The diffusions also grow toward each other. When they hit they form a new poly contact and poly
growing point.
1 April 1998 DARPA Ultrascale Computing Program 32
The process then repeats, growing the next inverter.
1 April 1998 DARPA Ultrascale Computing Program 33
This process repeats to make an arbitrarily long
chain of ugly, but topologically correct inverters.
This demonstrates totally local control of precision topology.
1 April 1998 DARPA Ultrascale Computing Program 34
This very parallel process can be described using a serial process metaphor. The growing points provide
a serial locus of control, even though the implementation is in terms of a uniform state
machine in each computational particle
(define-growing-point ((poly from-input-contact) Q-id) (material poly) (tropism constant Vdd-long Vss-long) (initialize lifetime 5) (secrete (poly-short inhibitor) Q-id) (when (= lifetime 0) (start-growing-point (poly up) Q-id) (start-growing-point (poly down) Q-id) (terminate)))
1 April 1998 DARPA Ultrascale Computing Program 35
The growing points created by the poly contact growing point have independent existence.
(define-growing-point ((poly up) Q-id) (material poly) (secrete (poly-short inhibitor) Q-id) (tropism increasing Vdd-long) (when (sensing? Vdd-short)
(start-growing-point (poly p-fet) Q-id)(terminate)))
(define-growing-point ((poly p-fet) Q-id) (material poly) (initialize lifetime 10) (secrete (poly-short inhibitor) Q-id) (tropism constant Vdd-short) (when (= lifetime 1)
(start-growing-point (diffusion p-fet Vdd))(start-growing-point (diffusion p-fet contact)
Q-id)))
1 April 1998 DARPA Ultrascale Computing Program 36
Growing points can join as well as split.
(define-growing-point ((diffusion p-fet Vdd) Q-id) (material diffusion p-type) (secrete (diffusion-short inhibitor) Q-id) (tropism increasing Vdd-short) (when (is-type? Vdd)
(drop-metal-diffusion-contact)(terminate)))
(define-growing-point ((diffusion p-fet contact) Q-id) (material diffusion p-type) (secrete (diffusion-short inhibitor) Q-id) (secrete (n-diffusion-attract attractor) Q-id) (tropism increasing p-diffusion-attract Q-id) (when (is-type? n-diffusion)
(drop-poly-diffusion-contact)(start-growing-point (poly from-input-contact)
(new-id))(terminate)))
1 April 1998 DARPA Ultrascale Computing Program 37
The Challenge of Amorphous Computing
• To reliably obtain a desired behavior by engineering the cooperation of many parts, without assuming any precision interconnect or precision geometrical arrangement of the parts.
• To invent the computational substrate that can support this kind of engineering.