Arbor¶
What is Arbor?¶
Arbor is a high-performance library for computational neuroscience simulations.
The development team is from from high-performance computing (HPC) centers:
Swiss National Supercomputing Center (CSCS), Jülich and BSC in work package 7.5.4 of the HBP.
Aim to prepare neuroscience users for new HPC architectures;
Arbor is designed from the ground up for many core architectures:
Written in C++11 and CUDA;
Distributed parallelism using MPI;
Multithreading with TBB and C++11 threads;
Open source and open development;
Sound development practices: unit testing, continuous Integration, and validation.
Features¶
We are actively developing Arbor, improving performance and adding features. Some key features include:
Optimized back end for CUDA
Optimized vector back ends for Intel (KNL, AVX, AVX2) and Arm (ARMv8-A NEON) intrinsics.
Asynchronous spike exchange that overlaps compute and communication.
Efficient sampling of voltage and current on all back ends.
Efficient implementation of all features on GPU.
Reporting of memory and energy consumption (when available on platform).
An API for addition of new cell types, e.g. LIF and Poisson spike generators.
Validation tests against numeric/analytic models and NEURON.
Citing Arbor¶
Specific versions of Arbor can be cited via Zenodo:
The following BibTeX can be used to cite Arbor:
@INPROCEEDINGS{
paper:arbor2019,
author={N. A. {Akar} and B. {Cumming} and V. {Karakasis} and A. {Küsters} and W. {Klijn} and A. {Peyser} and S. {Yates}},
booktitle={2019 27th Euromicro International Conference on Parallel, Distributed and Network-Based Processing (PDP)},
title={{Arbor --- A Morphologically-Detailed Neural Network Simulation Library for Contemporary High-Performance Computing Architectures}},
year={2019}, month={feb}, volume={}, number={},
pages={274--282},
doi={10.1109/EMPDP.2019.8671560},
ISSN={2377-5750}}
Alternative citation formats for the paper can be downloaded here, and a preprint is available at arXiv.
Getting Stared:
Arbor Models:
Python:
C++ API: