Table of Contents
NEST
Introduzione PyNEST
Si usano API Python per poi generare automaticamente codice in linguaggio SLI, che servirà per simulare una rete dal punto di vista dei neuroni. NEST viene usato come interprete SLI per eseguire la vera e propria simulazione.
Se si chiama h il passo temporale discreto minimo (risoluzione) della simulazione, allora lo stato di ogni neurone è aggiornato ogni passo h. Gli impulsi (Spike) vengono inoltrati tra neuroni per multipli superiori di questo intervallo. Durante la simulazione, la propagazione dei segnali tra neuroni può avvenire interamente all'interno di un intero passo h. Questo impedisce interruzioni e interferenze tra neuroni e garantisce sincronizzazione.
Se necessario, è possibile comunque analizzare il segnale anche all'interno di un passo h, usando modelli di neuroni che terminano con la sigla “ps” (post-synaptic?)
Per iniziare
Una rete per poter essere simulata deve essere composta da
- nodes, di tre tipi:
- neurons: possono utilizzare diversi modelli matematici (iaf_neuron) http://en.wikipedia.org/wiki/Integrate-and-fire
- devices: sono dispositivi virtuali per effettuare input/output (multimeter, generator)
- sub-networks: sono root, layer, column, area
- connections, di 7 tipi, specificati successivamente.
Funzioni
- nest.Create, crea un nodo (o una lista di nodi) e specifica le caratteristiche di un nodo.
- nest.Connect, collega due nodi (o due liste di nodi) e specifica come vanno collegati:
- modello di sinapsi
- modello di connessione (maglia completa, maglia incompleta, uno ad uno, ecc.)
Installazione
Dipendenze
Utilizza i seguenti pacchetti:
- libreadline-gplv2-dev (oppure libreadline5-dev), make, g++
- libgsl0-dev, gsl-bin, gambas3-gb-gsl
- openmpi-common, libopenmpi-dev, libopenmpi1.6
comandi per l'installazione
./configure --prefix=/usr/local make make install