Cargando…

Efficient simulation of neural development using shared memory parallelization

The Neural Development Simulator, NeuroDevSim, is a Python module that simulates the most important aspects of brain development: morphological growth, migration, and pruning. It uses an agent-based modeling approach inherited from the NeuroMaC software. Each cycle has agents called fronts execute m...

Descripción completa

Detalles Bibliográficos
Autor principal: De Schutter, Erik
Formato: Online Artículo Texto
Lenguaje:English
Publicado: Frontiers Media S.A. 2023
Materias:
Acceso en línea:https://www.ncbi.nlm.nih.gov/pmc/articles/PMC10400717/
https://www.ncbi.nlm.nih.gov/pubmed/37547492
http://dx.doi.org/10.3389/fninf.2023.1212384
_version_ 1785084507012988928
author De Schutter, Erik
author_facet De Schutter, Erik
author_sort De Schutter, Erik
collection PubMed
description The Neural Development Simulator, NeuroDevSim, is a Python module that simulates the most important aspects of brain development: morphological growth, migration, and pruning. It uses an agent-based modeling approach inherited from the NeuroMaC software. Each cycle has agents called fronts execute model-specific 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. Collision detection prevents new or migrating fronts from overlapping with existing ones. NeuroDevSim is a multi-core program that uses an innovative shared memory approach to achieve parallel processing without messaging. We demonstrate linear strong parallel scaling up to 96 cores for large models and have run these successfully on 128 cores. Most of the shared memory parallelism is achieved without memory locking. Instead, cores have only write privileges to private sections of arrays, 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 the growth of physically overlapping structures. For collision detection, a memory-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 most aspects of neural development for models simulating a few complex or thousands of simple neurons or a mixture of both. CODE AVAILABLE AT: https://github.com/CNS-OIST/NeuroDevSim.
format Online
Article
Text
id pubmed-10400717
institution National Center for Biotechnology Information
language English
publishDate 2023
publisher Frontiers Media S.A.
record_format MEDLINE/PubMed
spelling pubmed-104007172023-08-05 Efficient simulation of neural development using shared memory parallelization De Schutter, Erik Front Neuroinform Neuroscience The Neural Development Simulator, NeuroDevSim, is a Python module that simulates the most important aspects of brain development: morphological growth, migration, and pruning. It uses an agent-based modeling approach inherited from the NeuroMaC software. Each cycle has agents called fronts execute model-specific 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. Collision detection prevents new or migrating fronts from overlapping with existing ones. NeuroDevSim is a multi-core program that uses an innovative shared memory approach to achieve parallel processing without messaging. We demonstrate linear strong parallel scaling up to 96 cores for large models and have run these successfully on 128 cores. Most of the shared memory parallelism is achieved without memory locking. Instead, cores have only write privileges to private sections of arrays, 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 the growth of physically overlapping structures. For collision detection, a memory-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 most aspects of neural development for models simulating a few complex or thousands of simple neurons or a mixture of both. CODE AVAILABLE AT: https://github.com/CNS-OIST/NeuroDevSim. Frontiers Media S.A. 2023-07-20 /pmc/articles/PMC10400717/ /pubmed/37547492 http://dx.doi.org/10.3389/fninf.2023.1212384 Text en Copyright © 2023 De Schutter. https://creativecommons.org/licenses/by/4.0/This is an open-access article distributed under the terms of the Creative Commons Attribution License (CC BY). The use, distribution or reproduction in other forums is permitted, provided the original author(s) and the copyright owner(s) are credited and that the original publication in this journal is cited, in accordance with accepted academic practice. No use, distribution or reproduction is permitted which does not comply with these terms.
spellingShingle Neuroscience
De Schutter, Erik
Efficient simulation of neural development using shared memory parallelization
title Efficient simulation of neural development using shared memory parallelization
title_full Efficient simulation of neural development using shared memory parallelization
title_fullStr Efficient simulation of neural development using shared memory parallelization
title_full_unstemmed Efficient simulation of neural development using shared memory parallelization
title_short Efficient simulation of neural development using shared memory parallelization
title_sort efficient simulation of neural development using shared memory parallelization
topic Neuroscience
url https://www.ncbi.nlm.nih.gov/pmc/articles/PMC10400717/
https://www.ncbi.nlm.nih.gov/pubmed/37547492
http://dx.doi.org/10.3389/fninf.2023.1212384
work_keys_str_mv AT deschuttererik efficientsimulationofneuraldevelopmentusingsharedmemoryparallelization