当前位置: X-MOL 学术Front. Neuroinform. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Efficient simulation of neural development using shared memory parallelization
Frontiers in Neuroinformatics ( IF 3.5 ) Pub Date : 2023-07-20 , DOI: 10.3389/fninf.2023.1212384
Erik De Schutter 1, 2
Affiliation  

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 athttps://github.com/CNS-OIST/NeuroDevSim.

中文翻译:

使用共享内存并行化有效模拟神经发育

神经发育模拟器 NeuroDevSim 是一个 Python 模块,可模拟大脑发育最重要的方面:形态生长、迁移和修剪。它使用继承自 NeuroMaC 软件的基于代理的建模方法。每个周期都有称为前端的代理执行特定于模型的代码。在树突或轴突前沿生长的情况下,这将是延伸、分支或生长终止之间的选择。体细胞前沿可以迁移到新的位置,并且任何前沿都可以缩回以修剪部分神经元。碰撞检测可防止新的或迁移的前沿与现有前沿重叠。NeuroDevSim 是一个多核程序,它使用创新的共享内存方法来实现无需消息传递的并行处理。我们演示了大型模型的线性强并行扩展至 96 个核心,并已在 128 个核心上成功运行。大多数共享内存并行性是在没有内存锁定的情况下实现的。相反,内核仅对数组的私有部分具有写入权限,同时能够读取整个共享数组。通过编码规则避免内存冲突,该规则仅允许活动前端使用需要写入访问的方法。碰撞检测是个例外,它是避免物理重叠结构增长所必需的。对于碰撞检测,需要内存锁定机制来控制对记录附近前沿位置的网格点的访问。使用序列化锁代理的自定义方法能够管理读取和写入锁定。NeuroDevSim 允许对神经发育的大多数方面进行轻松建模,用于模拟几个复杂或数千个简单神经元或两者混合的模型。代码可在https://github.com/CNS-OIST/NeuroDevSim
更新日期:2023-07-20
down
wechat
bug