Title: The Amorphous Computing Project
1The Amorphous Computing Project
- Daniel Coore, PhD
- Dept. Mathematics and Computer Science
- University of the West Indies, Mona
2The Amorphous Computing Concept
- Inspiration A collection of cells self-organize
to form a single organism
What are the organising principles at work within
each of the individuals?
3Motivation
- 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
4The Amorphous Computing Model
- Particle Constraints
- Asynchronous
- Irregularly located
- Local broadcast only
- Limited Resources
- Single program for all
- Only "reasonable" initial conditions
5The Challenge
- How do we write programs to reliably produce
coherent global behaviours under these
constraints?
6Outline
- Background
- ECOLI
- Simulator
- Current Directions
7Background
- 1996 Simple Algorithms (Clubs, Gradients)
- 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)
8Gradients
- Gradients Assign values that decrease with the
distance from some specified processor. - Solution Measure hop count from processor.
Smooth values by averaging, if necessary.
9Coordinate Systems
b
a
c
d
e
10The Amorphous Inverter
- A CMOS Inverter Processors apply labels to
themselves in the pattern of the CMOS layout of
an inverter.
11The 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.
12The 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.
13ECOLI
- Extensible Calculus of Local Interactions
- Idea cooking since 1997.
- Programming discipline used to develop GPL
- Formalised into a language at UWI, in 2000 with
implementation of interpreter - Event-Driven Language
- Events caused by messages arriving at processors,
sent from neighbours
14Example 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 (lt 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 (lt
my-id10) (run find-dist)))
15Simulator Screen Shot
16Current Efforts
- Amorphous Protocols (Nation)
- Reliable Communication Through Redundant Paths
(R. Anderson) - ECOLI enhancement. (Holness)
- A Higher Level Pattern Description Language
(Coore) - Persistent Nodes (Beal)
17Current Efforts
- Reliable Communication Through Redundant Paths
- Reimplementation of ECOLI
- Generalized Pattern Description Language
- Amorphous Medium Language (Beal)
- Generalised Software Abstractions
18Things 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