an introduction to amorphous computing daniel coore, phd dept. mathematics and computer science...
TRANSCRIPT
An Introduction to Amorphous An Introduction to Amorphous ComputingComputing
Daniel Coore, PhD
Dept. Mathematics and Computer Science
University of the West Indies, Mona
The Amorphous Computing The Amorphous Computing ConceptConcept
Inspiration: A collection of cells self-organize to form a single organism
What are the organising principles at work within each of the individuals?
MotivationMotivation
To control massively parallel systems (biological, chemical, quantum) that are likely to be built in the near future to do useful work: e.g.
― Build molecular scale circuits,― Act as smart drug dispensers― Build 'smart' materials
To surpass the physical limits of traditional computers: by using low-cost parallelism
The Amorphous Computing The Amorphous Computing ModelModel
Particle Constraints― Asynchronous― Irregularly located― Local broadcast only― Limited Resources― Single program for all― Only "reasonable"
initial conditions
The ChallengeThe Challenge
How do we write programs to reliably produce coherent global behaviours under these constraints?
OutlineOutline
Background ECOLI Simulator Current Directions
BackgroundBackground
1996: Simple Algorithms: Clusters, Leader Election 1997: Coordinate Systems (Coore, Nagpal) 1997: Tube Formation (Weiss) 1997: Amorphous Inverter (Coore) 1998: GPL – Growing Point Language (Coore) 2000: OSL – Origami Shape Language (Nagpal) 2003: Growth and Self-Assembly (Kondacs) 2003: Persistent Nodes (Beal) 2004 - : System Level languages (Beal, Coore)
GradientsGradients
Gradients: Assign values that increase (or decrease) with the distance from some specified processor.
― Solution: Measure hop count from processor. Smooth values by averaging, if necessary.
ECOLIECOLI
Extensible Calculus of Local Interactions― Idea “cooking” since 1997.― Programming discipline used to develop GPL― Interpreter developed at UWI in 2000, still in
progress. Event-Driven Language
― messages arriving at processors trigger handlers― handlers may, in turn, send more messages
Example: Finding Hop CountsExample: Finding Hop Counts
Problem: Have each agent discover its shortest hop count to a given set of agents.
(define-behaviour find-dist ((current-dist 10000)) (define-dict default (DIST (src-id n) (guard (< n current-dist)) (set current-dist n) (send DIST src-id (+ n 1)))
(ACTIVATE () (set current-dist 0) (send DIST my-id 1))))
(init (set my-id (random 2000)) (if (< my-id10) (run find-dist)))
Simulator Screen ShotSimulator Screen Shot
Coordinate SystemsCoordinate Systems
a) x = kb) y = kc) r = kd) θ = ke) error
a b
c d e
The Amorphous InverterThe Amorphous Inverter
A CMOS Inverter: Processors apply labels to themselves in the pattern of the CMOS layout of an inverter.
The Growing Point LanguageThe Growing Point Language
Language for describing topological relations In theory, any planar graph can be described Pattern descriptions are automatically converted
into individual processor activities.
The Origami Shape LanguageThe Origami Shape Language
OSL described patterns of folds as if they were origami commands.
Compiled to agent level where local level actuations were effected to produce folds in correct sequence.
Current EffortsCurrent Efforts
ECOLI enhancement. (Holness) A Higher Level Pattern Description Language
(Coore) Persistent Nodes (Beal) Calculus for Localization (Ferguson, Coore)
Things To Be DoneThings To Be Done
Language for programming mobile agents. Language for self-organizing function (vs.
pattern formation = self-organizing form) Cooperative Computing: agents self-organize
resources (computation + space) to solve a big problem.
Powerful generalizable simulator for Amorphous Computing model to allow experiments with languages
A coordinate-free language for network localization