220 likes | 240 Views
STDP and Network Architectures. Parallel ODE Solver and Event Detector Eugene Lubenov. Networks of Neurons. GE. GI. GR. Spike-Timing Dependent Plasticity. Bi & Poo, J. Neurosci. (1998). Integrate-and-Fire Neuron Model. ODE System for the Membrane Potential. V ge gi. y’ = f (y, t).
E N D
STDP and Network Architectures Parallel ODE Solver and Event Detector Eugene Lubenov
Networks of Neurons GE GI GR
Spike-Timing Dependent Plasticity Bi & Poo, J. Neurosci. (1998).
Integrate-and-Fire Neuron Model ODE System for the Membrane Potential V ge gi y’ = f (y, t) y = Special Events e (y, t) = V – V_th
STDP Model ODE System for the STDP Variables Special Events Weight Matrix Update Rules NE NN output (Pe) output (Pr) NN NN GE GR input (M) input (M)
Project Ingredients • Matlab (Mathworks) http://www.mathworks.com/ • SUNDIALS (LLNL) http://www.llnl.gov/CASC/sundials/ • LAM MPI http://www.lam-mpi.org/ • Custom C Code
Why Matlab? • ode suite event functions knowing what to expect • MAT library loading parameters and input saving output BUT: SERIAL ONLY and SLOW
Why SUNDIALS • SUite of Nonlinear and DIfferential/ALgebraic equation Solvers Adams-Moulton (non-stiff), BDF (stiff) Variable Step, Variable Order (12, 5) Functional Iteration, Linear System Direct (full, banded, diag approx J) Iterative (GMRES) Sclaled Preconditioned (SPGMR) BUT: NO EVENT FUNCTIONS
Why LAM MPI? • Multiple Processors Solve larger problems Solve problems faster • Portable Code BUT:Problem granularity must be suited to underlying architecture: Beowulf cluster coarse granularity
Why Custom C Code? • Extend CVode with Event Capabilities • Problem specific routines: f(.), e(.) • Handle I/O and Message Passing • Inline Exponential Variables BUT: compatibility: mpicc, mex, gcc memory: Calloc, mxCalloc, CVodeMalloc debugging: parallel code
Problem Stiffness Moderately Stiff? WRONG! Non-Stiff!
Network Activity Poisson Inhibition Rhythmic Inhibition (10 Hz)
Network Activity GE plasticity only GR plasticity only
Network Weights GE Weight Matrix GE Weight Distribution
Network Weights GR tr(GR) = 0 and GR*GR’ = 0
Conclusion • Serial Code (v 2.3.4) good for real problems. • Parallel Code (v 1.1.0) needs work, but speedup might be hard to get. • Parallel Code (v 1.2.0) implements asynchronous message passing, but still in alpha. • Structure emerges from simulations.