v0.9.0 released!
Posted onAfter 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)
andtanh(x)
. Control volumearea
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 nowarb.context(threads=12, gpu=None)
. In the case no arguments are supplied, the context initialized todefault_allocation
, which means it will use the total number of threads and first GPU that are locally available.arbor.simulation
constructed without an explicitarbor.context
also initializes adefault_allocation
. - 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.