v0.9.0 released!Posted on
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_onmethod 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:
tanh(x). Control volume
areais 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.simulationconstructed without an explicit
arbor.contextalso initializes a
- Version bumps:
- CUDA 11 or higher is required for GPU builds.
A full changelog is available in CHANGELOG.md.
Give it a go!
The release is out on PyPI, so give it a go:
python -m venv env && source env/bin/activate pip install arbor python -c 'import arbor; arbor.print_config()'
Should you encounter any problems, don’t hesitate to let us know.