an introduction to amorphous computing daniel coore, phd dept. mathematics and computer science...

17
An Introduction to An Introduction to Amorphous Computing Amorphous Computing Daniel Coore, PhD Dept. Mathematics and Computer Science University of the West Indies, Mona

Upload: anna-mitchell

Post on 17-Dec-2015

221 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: An Introduction to Amorphous Computing Daniel Coore, PhD Dept. Mathematics and Computer Science University of the West Indies, Mona

An Introduction to Amorphous An Introduction to Amorphous ComputingComputing

Daniel Coore, PhD

Dept. Mathematics and Computer Science

University of the West Indies, Mona

Page 2: An Introduction to Amorphous Computing 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?

Page 3: An Introduction to Amorphous Computing Daniel Coore, PhD Dept. Mathematics and Computer Science University of the West Indies, Mona

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

Page 4: An Introduction to Amorphous Computing Daniel Coore, PhD Dept. Mathematics and Computer Science University of the West Indies, Mona

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

Page 5: An Introduction to Amorphous Computing Daniel Coore, PhD Dept. Mathematics and Computer Science University of the West Indies, Mona

The ChallengeThe Challenge

How do we write programs to reliably produce coherent global behaviours under these constraints?

Page 6: An Introduction to Amorphous Computing Daniel Coore, PhD Dept. Mathematics and Computer Science University of the West Indies, Mona

OutlineOutline

Background ECOLI Simulator Current Directions

Page 7: An Introduction to Amorphous Computing Daniel Coore, PhD Dept. Mathematics and Computer Science University of the West Indies, Mona

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)

Page 8: An Introduction to Amorphous Computing Daniel Coore, PhD Dept. Mathematics and Computer Science University of the West Indies, Mona

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.

Page 9: An Introduction to Amorphous Computing Daniel Coore, PhD Dept. Mathematics and Computer Science University of the West Indies, Mona

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

Page 10: An Introduction to Amorphous Computing Daniel Coore, PhD Dept. Mathematics and Computer Science University of the West Indies, Mona

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

Page 11: An Introduction to Amorphous Computing Daniel Coore, PhD Dept. Mathematics and Computer Science University of the West Indies, Mona

Simulator Screen ShotSimulator Screen Shot

Page 12: An Introduction to Amorphous Computing Daniel Coore, PhD Dept. Mathematics and Computer Science University of the West Indies, Mona

Coordinate SystemsCoordinate Systems

a) x = kb) y = kc) r = kd) θ = ke) error

a b

c d e

Page 13: An Introduction to Amorphous Computing Daniel Coore, PhD Dept. Mathematics and Computer Science University of the West Indies, Mona

The Amorphous InverterThe Amorphous Inverter

A CMOS Inverter: Processors apply labels to themselves in the pattern of the CMOS layout of an inverter.

Page 14: An Introduction to Amorphous Computing Daniel Coore, PhD Dept. Mathematics and Computer Science University of the West Indies, Mona

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.

Page 15: An Introduction to Amorphous Computing Daniel Coore, PhD Dept. Mathematics and Computer Science University of the West Indies, Mona

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.

Page 16: An Introduction to Amorphous Computing Daniel Coore, PhD Dept. Mathematics and Computer Science University of the West Indies, Mona

Current EffortsCurrent Efforts

ECOLI enhancement. (Holness) A Higher Level Pattern Description Language

(Coore) Persistent Nodes (Beal) Calculus for Localization (Ferguson, Coore)

Page 17: An Introduction to Amorphous Computing Daniel Coore, PhD Dept. Mathematics and Computer Science University of the West Indies, Mona

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