Efficient simulation of neural development using shared memory parallelization
Frontiers in Neuroinformatics(2022)
Abstract
The Neural Development Simulator, NeuroDevSim, is a Python module that simulates the most important aspects of development: growth, migration and pruning. It uses an agent-based modeling approach inherited from the NeuroMaC software. Each cycle, agents called fronts execute code. In the case of a growing dendritic or axonal front this will be a choice between extension, branching or growth termination. Somatic fronts can migrate to new positions and any front can be retracted to prune parts of neurons.
NeuroDevSim is a multi-core program that uses an innovative shared memory approach to achieve parallel processing without messaging. We demonstrate close to linear strong scaling for medium size models for up to 32 cores and have run large models successfully on 128 cores. Most of the shared memory parallelism is achieved without memory locking. Instead cores have write privileges to private sections of arrays only, while being able to read the entire shared array. Memory conflicts are avoided by a coding rule that allows only active fronts to use methods that need writing access. The exception is collision detection, which is needed to avoid growth of physically overlapping structures. Here a locking mechanism was necessary to control access to grid points that register the location of nearby fronts. A custom approach using a serialized lock broker was able to manage both read and write locking.
NeuroDevSim allows easy modeling of neural development for models ranging from a few complex to thousands of simple neurons or a mixture of both.
### Competing Interest Statement
The authors have declared no competing interest.
MoreTranslated text
AI Read Science
Must-Reading Tree
Example
![](https://originalfileserver.aminer.cn/sys/aminer/pubs/mrt_preview.jpeg)
Generate MRT to find the research sequence of this paper
Chat Paper
Summary is being generated by the instructions you defined