NOZIONI FONDAMENTALI

CAM-8 (Cellular Automata Machine) e STEP (SpaceTemp Event Processor) sono due acronimi per indicare la medesima architettura di calcolo.
Essa e' definita come una Architettura a Multiprocessore Scalabile Infinitamente ottimizzata per la simulazione a grana fine di sistemi fisici (e non) distribuiti in uno Spazio Multidimensionale.
In altre parole questa macchina e' caratterizzata da una struttura a grana fine i cui elementi sono connessi tra loro da collegamenti di identica topologia che realizzano in sostanza una griglia di celle multidimensionale.

Il paradigma a fondamento di questo approccio e' quello degli Automi Cellulari, i quali sono strutturati nel seguente modo: si immagina una regione di spazio (con dimensioni ed estensione arbitrarie) suddivisa uniformente da una griglia regolare (come ad esempio una struttura cristallina). All'interno di ogni cella si immagina una entita' che svolge delle operazioni sulla base dei dati in suo possesso e delle informazioni che le giungono da altre celle (adiacenti e non).
In pratica si immagina ogni cella occupata da un Automa a Stati Finiti (tutti identici tra loro) e da un certo numero di dati distribuiti uniformemente nelle celle. Ogni automa modifica i propri dati (o meglio quelli della propria cella) sulla base di elaborazioni (transizioni) che hanno come argomento i dati locali e i dati letti da altre celle.

Per esempio si puo' cercare di simulare l'allagamento di un bacino idrico di forma qualunque. Per fare questo si potrebbe suddividere la mappa del bacino con una griglia bidimensionale e caratterizzare ogni cella con due valori: il livello medio del terreno (nell'area della cella) e l'altezza della colonna di liquido. In seguito viene definita una regola che per ogni cella stabilisce, sulla base del livello complessivo terreno piu' liquido proprio e dei vicini adiacenti, quanto liquido acquisire o cedere e da (o verso) quali direzioni realizzare lo scambio.

E' quindi chiaro che il sistema si fonda sui seguenti presupposti:

La programmazione di questa architettura consiste quindi nel definire le dimensioni dello spazio (intese come numero di assi e loro estensione), le relazioni reciproche tra celle (topologia dei collegamenti), le regole di transizioni (cioe' la dinamica del sistema in simulazione), e infine lo stato iniziale del sistema (i valori di partenza in ogni cella).

In questo senso si definisce il concetto di Materia Programmabile in quanto un programma, in questa architettura, non si sviluppa tramite un algoritmo ma attraverso la definizione di uno spazio con le proprie caratteristiche "fisiche" e le proprie dinamiche.
Al programmatore e' data ampia liberta' di scelta sia riguardo alle geometria del sistema che alle relazioni causa-effetto tra le sue parti. L'approccio algoritmico e' consentito e permette di realizzare dinamiche piu' complesse (unendolo al concetto precedentemente esposto) ma c'e' un prezzo da pagare in termini di prestazioni.


Ritorno al precedente