| Literature DB >> 19430597 |
James G King1, Michael Hines, Sean Hill, Philip H Goodman, Henry Markram, Felix Schürmann.
Abstract
As neuronal simulations approach larger scales with increasing levels of detail, the neurosimulator software represents only a part of a chain of tools ranging from setup, simulation, interaction with virtual environments to analysis and visualizations. Previously published approaches to abstracting simulator engines have not received wide-spread acceptance, which in part may be to the fact that they tried to address the challenge of solving the model specification problem. Here, we present an approach that uses a neurosimulator, in this case NEURON, to describe and instantiate the network model in the simulator's native model language but then replaces the main integration loop with its own. Existing parallel network models are easily adopted to run in the presented framework. The presented approach is thus an extension to NEURON but uses a component-based architecture to allow for replaceable spike exchange components and pluggable components for monitoring, analysis, or control that can run in this framework alongside with the simulation.Entities:
Keywords: NEURON simulator; distributed; large-scale simulation; parallel
Year: 2009 PMID: 19430597 PMCID: PMC2679160 DOI: 10.3389/neuro.11.010.2009
Source DB: PubMed Journal: Front Neuroinform ISSN: 1662-5196 Impact factor: 4.081
Figure 1The structural organization of component-based Extension Framework. An instance of it running on a node consists of different components. One component allows access to a Compute Engine, providing a common interface to other components. A Message Bus Component implements network connectivity, handling the exchange of APs among nodes. A MAC (monitor, analyze, control) Component may perform simulation analysis or modify simulation parameters.
Figure 2Control flow in the Extension Framework.
Interface functions of the Adapter Component during setup and simulation phase.
| Function | Parameters | Description |
|---|---|---|
| Environmental | Have the Adapter Component take steps necessary to initialize the Compute | |
| Variables | Engine prior to loading the model. | |
| Model Description | The Adapter Component gives the initial Model Description File to the Compute | |
| File | Engine so that it can instantiate the cells of the network and connect them. | |
| Array Pointer | Request for gids of cells on local node which send APs out. The gids are stored in the given Array Pointer. Used by Message Bus to coordinate spike exchange. | |
| Array Pointer | Request for gids of cells on remotes nodes which deliver APs in. The gids are stored in the given Array Pointer. Used by Message Bus to coordinate spike exchange. | |
| NodeID Array, | Request for the minimum spike delay of presynaptic objectsand which node they. | |
| Delay Array | reside on. Used by Message Bus to coordinate spike exchange. | |
| Gid, Array Pointer | Request more specific information regarding which nodes a given gid sends spikes. | |
| Gid, Variable Name | Acquire access to cell values during simulation to be used for reporting or analysis. | |
| Gid, Variable Name | Acquire access to variables from the simulator for the purpose of modifying the value during simulation. | |
| Once the Message Bus Component and MAC Component have completed their setup, have the Adapter Component execute any final preparation steps on the Compute Engine so that it is ready to start simulating. | ||
| Time Stop | Adapter Component has the Compute Engine execute solver until the specified time is reached. | |
| Gid, Time of Event | During the course of simulation,when a cell fires, the event is recorded. | |
| Gid, Time of Event, Local Flag | After spike exchange, deliver any action potentials from the indicated gid. Need to also relay if the gid is local to this node or remote. | |
Figure 3Three possible implementations of the Message Bus. Each square represents a Node for computation, arrows indicate delivery of AP messages. (A) Point–Point communications using MPI_Send and MPI_Recv. (B) Collective Communication using MPI_AllGather. (C) Extension to B featuring external socket communication.
Interface functions provided by NEURON once configured and compiled with the option – enable-ncs.
| Function | Parameters | Description |
|---|---|---|
| Array Pointer | Provide information about which gids on the local node send out APs, placing info at the indicated memory space. | |
| Array Pointer | Provide information about which remote gids will deliver APs to this local node, placing info at the indicated memory space. | |
| Host Array, Delay Array | Provide information about the minimum spike delays for a remote host to deliver an AP to the local node. | |
| Gid, Array Pointer | Provide information about which nodes a gid needs to send messages. | |
| Time Stop | Executes the solver until the indicated time has been reached | |
| Gid, Fire Time | After a cell reaches threshold, this function is called to handle the event. With option – enable-ncs, this function is not defined by NEURON so that another entity may define it. | |
| Source Gid, Local Flag | Provide the number of netcons activated when the indicated gid fires an AP. A flag indicates if the source gid is local to the node or remote. | |
| Source Gid, NetCon Index, Fire Time, Local Flag | Inject an AP into the indicated destination NetCon for a cell which fired. Requires the time of the event and a flag for whether the source gid is local to the node or remote. | |
Figure 4Comparison of Message Bus performance. (A) Blue Gene collective calls (using MPI_AllGather) performance exceeds that of point-to-point (using MPI_Send and MPI_Recv) (B) on a Linux cluster, point-to-point version of the Message Bus achieves greater performance than collective calls.
Figure 5Example MAC Component monitoring, analyzing, and controlling simulation behavior with accompanying flow diagrams illustrating component's logic. (A) Control simulation where the first graph shows the voltage trace, Vm, for one cell in the network, the second graph shows the firing rate, f, for this cell as well as the mean firing rate for the network. (B) MAC Component monitors firing rate and increases maximum conductance, g, for afferent synapses on neurons below a minimum rate, F′, by an amount Δg; the first and second graphs correspond with those of A and the third graph shows the Δg for synapses for the selected cell as well as the mean Δg for all cells in the network. (C) Revised MAC Component still monitoring for minimum firing rate but also monitoring for maximum firing rate, scaling back maximum conductance as needed; all three graphs correspond to those of B.
Figure 6Modifications to the hoc file from ModelDB. Setup remains normal while run is disabled to allow control to return to the Extension Framework layer.