Constructing Neuronal Network Models in Massively Parallel Environments

Recent advances in the development of data structures to represent spiking neuron network models enable us to exploit the complete memory of petascale computers for a single brain-scale network simulation. In this work, we investigate how well we can exploit the computing power of such supercomputers for the creation of neuronal networks. Using an established benchmark, we divide the runtime of simulation code into the phase of network construction and the phase during which the dynamical state is advanced in time. We find that on multi-core compute nodes network creation scales well with process-parallel code but exhibits a prohibitively large memory consumption. Thread-parallel network creation, in contrast, exhibits speedup only up to a small number of threads but has little overhead in terms of memory. We further observe that the algorithms creating instances of model neurons and their connections scale well for networks of ten thousand neurons, but do not show the same speedup for networks of millions of neurons. Our work uncovers that the lack of scaling of thread-parallel network creation is due to inadequate memory allocation strategies and demonstrates that thread-optimized memory allocators recover excellent scaling. An analysis of the loop order used for network construction reveals that more complex tests on the locality of operations significantly improve scaling and reduce runtime by allowing construction algorithms to step through large networks more efficiently than in existing code. The combination of these techniques increases performance by an order of magnitude and harnesses the increasingly parallel compute power of the compute nodes in high-performance clusters and supercomputers.

[1]  Marc-Oliver Gewaltig,et al.  NEST (NEural Simulation Tool) , 2007, Scholarpedia.

[2]  Jason Evans April A Scalable Concurrent malloc(3) Implementation for FreeBSD , 2006 .

[3]  Bradley C. Kuszmaul SuperMalloc: a super fast multithreaded malloc for 64-bit machines , 2015, ISMM.

[4]  Bruce Graham,et al.  Creating, documenting and sharing network models , 2012, Network.

[5]  Pierre Yger,et al.  PyNN: A Common Interface for Neuronal Network Simulators , 2008, Front. Neuroinform..

[6]  Markus Diesmann,et al.  Advancing the Boundaries of High-Connectivity Network Simulation with Distributed Computing , 2005, Neural Computation.

[7]  Haibo Chen,et al.  SSMalloc: a low-latency, locality-conscious memory allocator with stable performance scalability , 2012, APSys.

[8]  Viktor K. Jirsa,et al.  The Virtual Brain Integrates Computational Modeling and Multimodal Neuroimaging , 2013, Brain Connect..

[9]  Dimitrios S. Nikolopoulos,et al.  Scalable locality-conscious multithreaded memory allocation , 2006, ISMM '06.

[10]  Markus Diesmann,et al.  Frontiers in Computational Neuroscience Enabling Functional Neural Circuit Simulations with Distributed Computing of Neuromodulated Plasticity , 2022 .

[11]  Lorenz Mösenlechner,et al.  The state of MIIND , 2008 .

[12]  Abigail Morrison,et al.  CyNEST: a maintainable Cython-based interface for the NEST simulator , 2014, Front. Neuroinform..

[13]  Jesper Andersson,et al.  A multi-modal parcellation of human cerebral cortex , 2016, Nature.

[14]  Tobias C. Potjans,et al.  The Cell-Type Specific Cortical Microcircuit: Relating Structure and Activity in a Full-Scale Spiking Network Model , 2012, Cerebral cortex.

[15]  Moritz Helias,et al.  A unified framework for spiking and gap-junction interactions in distributed neuronal network simulations , 2015, Front. Neuroinform..

[16]  Michael L. Hines,et al.  Python in neuroscience , 2015, Front. Neuroinform..

[17]  Markus Diesmann,et al.  A multi-scale layer-resolved spiking network model of resting-state dynamics in macaque visual cortical areas , 2018, PLoS Comput. Biol..

[18]  Gerhard Wellein,et al.  Introduction to High Performance Computing for Scientists and Engineers , 2010, Chapman and Hall / CRC computational science series.

[19]  Robert H. Dennard,et al.  Practical Strategies for Power-Efficient Computing Technologies , 2010, Proceedings of the IEEE.

[20]  Jaejin Lee,et al.  SFMalloc: A Lock-Free and Mostly Synchronization-Free Dynamic Memory Allocator for Manycores , 2011, 2011 International Conference on Parallel Architectures and Compilation Techniques.

[21]  Ali-Reza Adl-Tabatabai,et al.  McRT-Malloc: a scalable transactional memory allocator , 2006, ISMM '06.

[22]  Bjarne Stroustrup,et al.  The C++ programming language (2nd ed.) , 1991 .

[23]  Tomoki Fukai,et al.  Spiking network simulation code for petascale computers , 2014, Front. Neuroinform..

[24]  Klas H. Pettersen,et al.  Modeling the Spatial Reach of the LFP , 2011, Neuron.

[25]  Marc-Oliver Gewaltig,et al.  NEST (NEural Simulation Tool) , 2007, Scholarpedia.

[26]  Message Passing Interface Forum MPI: A message - passing interface standard , 1994 .

[27]  Kathryn S. McKinley,et al.  Hoard: a scalable memory allocator for multithreaded applications , 2000, SIGP.

[28]  Nicolas Brunel,et al.  Dynamics of a recurrent network of spiking neurons before and following learning , 1997 .

[29]  Anders Lansner,et al.  Virtues, Pitfalls, and Methodology of Neuronal Network Modeling and Simulations on Supercomputers , 2012 .

[30]  Pablo Martínez-Cañada,et al.  Genetic algorithm for optimization of models of the early stages in the visual system , 2017, Neurocomputing.

[31]  Markus Diesmann,et al.  Meeting the Memory Challenges of Brain-Scale Network Simulation , 2012, Front. Neuroinform..

[32]  Tomoki Fukai,et al.  Supercomputers Ready for Use as Discovery Machines for Neuroscience , 2012, Front. Neuroinform..

[33]  Marc-Oliver Gewaltig,et al.  Efficient Parallel Simulation of Large-Scale Neuronal Networks on Clusters of Multiprocessor Computers , 2007, Euro-Par.

[34]  Moritz Helias,et al.  Neuroinformatics Original Research Article Pynest: a Convenient Interface to the Nest Simulator , 2022 .

[35]  Alexey Kukanov,et al.  The Foundations for Scalable Multicore Software in Intel Threading Building Blocks , 2007 .

[36]  Moritz Helias,et al.  Scalability of Asynchronous Networks Is Limited by One-to-One Mapping between Effective Connectivity and Correlations , 2014, PLoS Comput. Biol..

[37]  Ana Sokolova,et al.  Fast, multicore-scalable, low-fragmentation memory allocation through large virtual memory and global data structures , 2015, OOPSLA.

[38]  Nicolas Brunel,et al.  Dynamics of Sparsely Connected Networks of Excitatory and Inhibitory Spiking Neurons , 2000, Journal of Computational Neuroscience.

[39]  Bjarne Stroustrup,et al.  C++ Programming Language , 1986, IEEE Softw..

[40]  Markus Diesmann,et al.  Spike-Timing-Dependent Plasticity in Balanced Random Networks , 2007, Neural Computation.

[41]  Erik De Schutter,et al.  STEPS: efficient simulation of stochastic reaction–diffusion models in realistic morphologies , 2012, BMC Systems Biology.

[42]  Nathan R. Tallent,et al.  HPCTOOLKIT: tools for performance analysis of optimized parallel programs , 2010, Concurr. Comput. Pract. Exp..

[43]  Moritz Helias,et al.  Decorrelation of Neural-Network Activity by Inhibitory Feedback , 2012, PLoS Comput. Biol..

[44]  Michael L. Hines,et al.  Parallel network simulations with NEURON , 2006, Journal of Computational Neuroscience.

[45]  Alexander Peyser,et al.  Nest 2.12.0 , 2017 .