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.
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.
- Installing Arbor
- Getting the Code
- Building and Installing Arbor
- HPC Clusters
- Library Reference
- SIMD Classes
- Top-level functions
- Implementation requirements
- Missing functionality
- Implementation of vector transcendental functions
- Sampling API
- Distributed Context
- Dry-run Mode