Published August 10, 2023 | Version v0.9.0
Software Open

Arbor Library v0.9.0



** 2023 08 09 **

After much more delay than anticipated, we are very happy to present a new Arbor release. Nearly 8 months of work is in it, much of which focussed on speed, optimisation, fixes and build system changes. This release includes Python 3.12 wheels as probably one of the first packages on PyPI 😄.

Major new features

  • External Connectivity: Arbor can now interface with other simulators or processes through MPI. Contexts now accept a second MPI communicator and Recipes can implement a external_connections_on method to specify how simulations might be interacting. See documentation for more.
  • Arbor now supports checkpointing and resume from a previously stored checkpoint. Useful when a certain point in time needs to be explored in multiple directions, when you want to rewind to a previous state, etc. See documentation for more.
  • More painted parameters are now scalable through iexpr: temperature, capacitance, resistivity, membrane potential and the following ionic parameters: internal and external concentration, diffusivity, and reversal potential. See documentation.
  • A set of ANN activation functions for NMODL have been added: sigmoid(x)relu(x) and tanh(x). Control volume area is exposed through NMODL.
  • A revamped backend for ARM CPU's that support Scalable Vector Extension (SVE). Arbor and modcc are now fully compatible, so users who have access to A64FX-based HPC can take full advantage of that hardware.

Breaking changes since v0.8.1

  • It is no longer possible to set binning and sampling policies, due to Arbor now having a fixed timestep. Removing exact delivery increases the speed of the simulation due to elimination of small steps, makes the numerics independent of presence of sampling, and also leads to a number of code simplifications.
  • Contexts are now constructed kwargs-only. So, arbor.context(12, None) is now arb.context(threads=12, gpu=None). In the case no arguments are supplied, the context initialized to default_allocation, which means it will use the total number of threads and first GPU that are locally available. arbor.simulation constructed without an explicit arbor.context also initializes a default_allocation.
  • Version bumps:
    • CUDA 11 or higher is required for GPU builds.

Full commit log

Neuroscience, documentation


Build, testing, CI

Fixes, optimization

New Contributors

Full Changelog


Files (21.7 MB)

Name Size Download all
21.7 MB Download

Additional details

Related works

Is supplement to
Software: (URL)


HBP SGA2 – Human Brain Project Specific Grant Agreement 2 785907
European Commission
HBP SGA3 – Human Brain Project Specific Grant Agreement 3 945539
European Commission
HBP SGA1 – Human Brain Project Specific Grant Agreement 1 720270
European Commission