Releases: arbor-sim/arbor
Release list
v0.6
What's Changed
Core API:
- Add S-Exp for CV Policies by @thorstenhater in #1511
- Clean-up and extend mech cat iterator interface. by @thorstenhater in #1564
- Mech ABI: The final step. by @thorstenhater in #1452
- Add
dim3to gridDim constructor in generated mechanism code by @noraabiakar in #1630 - Added an empty catalogue by @Helveg in #1677
- Allow to limit Poisson schedule with a stop time (closes #1617) by @schmitts in #1684
- Expose profiler to Python by @Helveg in #1688
- Added a debug mode to
build-catalogueby @Helveg in #1686 - Write build-catalogue (c)make errors to
stdoutandstderrby @Helveg in #1679 - Makejobs arg by @Helveg in #1673
- Feature/python clean memory by @max9901 in #1670
- Feature/label dict by @apeyser in #1711
- Add locset expressions for proximal and distal translation of locations by @bcumming in #1671
- Gap Junction mechanisms by @noraabiakar in #1682
- Solve non-linear systems that are not kinetic schemes. by @noraabiakar in #1724
- Add cos and sin SVE implementations by @noraabiakar in #1744
- Deal with zero radius points in a morphology by @halfflat in #1719
- Simplify default proc_allocation generation. by @halfflat in #1725
- Find morphology location from a coordinate by @bcumming in #1751
- resurrect lmorpho by @schmitts in #1746
- Expose information about the CV discretization to the public inteface by @noraabiakar in #1758
- Allow the use of string s-expression CV-policies in pyarb by @noraabiakar in #1799
- Construct
domain_decompositiongiven a list ofgroup_descriptions. by @noraabiakar in #1788 - Profile externally loaded mechanisms by @noraabiakar in #1691
- Have option to set thread count to local maximum by @brenthuisman in #1716
CI/build/testing:
- Python unit test clean-up by @noraabiakar in #1595
- Add CI for the in-repo Spack package by @schmitts in #1544
- Ci/sanitize by @thorstenhater in #1521
- Update spack package to include fmt for arbor@0.5.3: by @bcumming in #1609
- Cache Spack for GHA by @schmitts in #1619
- Run examples via scripts (closes #1566) by @schmitts in #1631
- Build a catalogue in CI by @schmitts in #1632
- Switch to PyPA's
cibuildwheelaction repo's. by @Helveg in #1703 - Automatic test discovery sans boilerplate by @Helveg in #1693
- build external mechanism catalogues in release mode by @noraabiakar in #1713
make VERBOSE=1in verbose mode by @Helveg in #1715- Bump pybind to 2.8.1 by @brenthuisman in #1742
- Better error reporting in python context interface by @bcumming in #1732
- Better error diagnostic in python when invalid cell properties are provided. by @bcumming in #1743
- Test separately built catalogues by @bcumming in #1748
- Weekly cron job checking for submodule updates by @brenthuisman in #1741
- Added local Python testsuite instructions by @Helveg in #1809
- CMake CUDA clean-up. by @thorstenhater in #1804
- Add dry run benchmark cell model for testing communication scaling by @bcumming in #1627
- v0.6-rc by @brenthuisman in #1814
- More robust build-catalogue by @thorstenhater in #1784
Documentation:
arbor.mechanism_catalogue.extend()documentation added. by @brenthuisman in #1597- zenodo 0.5.2 entry by @brenthuisman in #1598
- mpi.py updated for new synapse labelling by @brenthuisman in #1602
- Tutorial structure: remove deduplication, includify by @brenthuisman in #1575
- Docs mechabi by @brenthuisman in #1610
- Improved documentation about weights by @brenthuisman in #1620
- Adapt to changes in Pandas requiring unique indices by @brenthuisman in #1625
- Add implies default license by @kanzl in #1635
- Update Slack to Gitter by @brenthuisman in #1637
- Better Python installation instructions by @brenthuisman in #1622
- Add example based on LFPykit example Example_Arbor_swc.ipynb by @espenhgn in #1652
- Name and describe arguments to constructors where ambiguous. by @brenthuisman in #1678
- improved Github Issue templates by @brenthuisman in #1698
- Add some comments about units to network ring examples by @schmitts in #1697
- Fix link (closes #1664) by @schmitts in #1701
- Fix class members in cable example by @schmitts in #1641
- Correctify and seabornize dendrite tutorial by @brenthuisman in #1706
- Polish GJ example readme by @thorstenhater in #1726
- Completed the docs with more
config()flags by @Helveg in #1708 - Make connectivity example more complete by @brenthuisman in #1721
- Add description of arbor and NEURON's
nernstapplication rules to the docs. by @noraabiakar in #1638 - Show docs version info more prominently on RTD by @brenthuisman in #1737
- Update/fix tinyopt README.md by @halfflat in #1747
- Add python gap junction example by @kanzl in #1750
- Documentation: add expected nmodl units by @noraabiakar in #1756
- Fixed broken link from
get_probestoprobesby @Helveg in #1763 - Removed double preposition by @Helveg in #1762
- Fixed MD to RST typo by @Helveg in #1760
- Fix broken links in
probe_sample.rstby @Helveg in #1761 - Docs/contrib updates by @brenthuisman in #1736
- Add Release procedure to docs by @brenthuisman in #1738
- Example and tutorial for two cells connected via a gap junction by @schmitts in #1771
- Have single source for citation info, compatible with Github citation UI by @brenthuisman in #1791
- Advertise GH Discussions for modelling by @brenthuisman in #1793
- Add release cycle info to docs by @brenthuisman in #1798
- Added a warning when users are reading latest docs. by @Helveg in #1800
Fixes/optimization:
- Fix GPU compile. by @thorstenhater in #1601
- Compile all arbor source files with
-fvisibility=hiddenby @noraabiakar in #1599 - Bug/assorted static analysis by @thorstenhater in #1615
- Fix ambiguous Region/Locset expressions by @thorstenhater in #1629
- Clean-up AVX routine and global def [EOM] by @thorstenhater in #1618
- Categorise ASSIGNED RANGE variables as STATE-ish. by @thorstenhater in #1624
- Check that mechanisms have the right kind by @noraabiakar in #1633
- Resolve uninitialised values. by @thorstenhater in #1616
- Correctly parse diameter in ASCII files by @bcumming in #1640
- Attempt fixing a64fx build by @bcumming in #1636
- Fix simulation::add_sampler cell_group dispatch by @noraabiakar in #1654
- Fix on-components on empty cable bug by @halffla...
Arbor Library v0.5.2
This release fixes an error in the CI generated Python wheels, which are as of this release available on PyPI. Other than those fixes, this release is identical to v0.5.1.
Arbor Library v0.5.1
Since v0.5 there have been some major features, and many small fixes and improvements.
Core API features:
- [C++/Python] Labels instead of indices for placeable item identification.
- [C++/Python] Morphology file format support: Arbor Cable-Cell Format.
- [C++/Python] Morphology file format support: Neurolucida ASCII format.
- [C++/Python] Morphology file format improvements: SWC.
- [C++/Python] Simplified connections and junctions.
- [C++/Python] Enable simulation resume/restart.
- [C++/Python] Add post events functionality to support models with STDP synapses
- [C++/Python] Allow dynamically creating and loading of mechanism catalogue
Documentation:
- Documentation URL changed to docs.arbor-sim.org
- New Python examples and tutorials
- Ever more complete documentation
- Added Code of Conduct
Build / CI:
- Spack distribution
- CI generated binary Python wheels
- Apple M1 compatibility
- CI moved from Travis to Github Actions
- Improved Python and C++ unit testing
- ARM CI
- Sanitizer CI
Contributions by, in no specific order, @haampie, @clinssen, @espenhgn, @Helveg, @brenthuisman, @noraabiakar,
@thorstenhater, @halfflat, @schmitts and @bcumming
Arbor Library v0.5
Since v0.4 there have been some major features, and many small fixes and improvements.
Core API features:
- [C++/Python] Numerous small bug fixes, optimizations and improvements.
- [C++/Python] Refactor cable cell interface to be read only, and be constructed from
descriptions of morphology, labels, and decorations. - [C++/Python]Expose diverse probes and rich interface for describing where and
what to sample on cable cells. - [C++/Python] Support for querying names in mechanism catalogues
- [Python] Wrapper for existing C++
pw_linfunctionality - [C++] Improved validation of recipe definitions during model building
Documentation:
- Added new Python examples
- Many small fixes for links, spelling, grammar and clarity.
- Add extensive guide for contributions and coding polices.
Build:
- Allow CMake configuration to use system copies of C++ dependencies
(nlohmann/json and pybind11), and makes this the default option. - Added GitHub Actions support for automated testing of a wider range of tests
and features than are run on our Travis CI (which will be removed soon) - More robust Python detection and consistent use of the same Python
interpreter in CMake configure and build steps.
Contributions by, in no specific order, @brenthuisman, @noraabiakar,
@thorstenhater, @halfflat, @schmitts and @bcumming
Arbor Library v0.4
Release notes
Library
- Moved from C++14 to C++17
- Removed our hand-rolled versions of
any,optionalandvariant.
- Removed our hand-rolled versions of
- Added
std::expectedequivalent for error handling.
Features
- Added mechanism catalogues with mechanisms used by Allen and BBP models.
- Removed support for spherical segments at the root of cable morphologies, and
replaced the sample-based representation with a segment-based representation:- Morphologies are defined in terms of two-point segments.
- Gaps are allowed between segments anywhere in a morphology.
- Exposed the current
timeinside mechanisms. - Added support for NeuroML2 morphology descriptions.
- Added a "stitch" morphology builder for constructing morphologies with
cable sections that can connect to any location on their parent cable. - Replaced recipe probe API with more flexible API that allows for sampling
not only voltages at single locations, but currents, ion species properties,
and mechanism state variables at single locations or across an entire cell. - Added support for querying probe metadata from the simulation object.
- Added new 'place_pwlin' C++ API for cell geometry queries.
- Added support for loading Allen SDK cell model morphologies from SWC.
- Added support for composing policies for creating compartments over sub-regions.
Documentation
- Restructured documentation to have cleaner separation between high level descriptions
of concepts and the C++ and Python APIs. - Added high level documentation for morphology descriptions, labels and cable cell
construction.
Optimizations
- Implemented memory optimizations for GPU matrix solver.
- Added support for ARM SVE intrinsics in the vectorized CPU back end.
Bug Fixes
- Fixed various modcc code generation errors.
Arbor Library v0.3
Arbor library version 0.3, tagged as v0.3
Arbor is a library for implementing performance portable network simulations of multi-compartment neuron models.
An installation guide and library documentation are available online at Read the Docs.
Submit a ticket if you have any questions or want help.
Change Log
Changes since v0.2:
- Python wrapper with pip installation.
- Replace the morphology specification API for more flexible cell building.
- Flat descriptions of ion channel distribution and synapse placement.
- Multi-compartment back end support for sub-branch mechanism distributions.
- Improved NMODL support:
- nonlinear kinetic schemes
- linear system solution in initial conditions
- many small features and bug fixes
- Generic ion species.
- Many optimizations and bug fixes.
Arbor Library v0.2.1
Arbor library version 0.2.1, tagged as v0.2.1
Arbor is a library for implementing performance portable network simulations of multi-compartment neuron models.
An installation guide and library documentation are available online at Read the Docs.
Submit a ticket if you have any questions or want help.
Release Notes.
Minor Update.
Arbor Library v0.2
Arbor library version 0.2, tagged as v0.2
Arbor is a library for implementing performance portable network simulations of multi-compartment neuron models.
An installation guide and library documentation are available online at Read the Docs.
Submit a ticket if you have any questions or want help.
Some key features include:
- Optimized back ends for CUDA, KNL, AVX2, ARM 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.
Change Log
Changes since v0.1:
- A new Hines matrix solver back end for the GPU that parallelises over cell
branches, not cells, to increase the amount of parallelism. See #631. - Support for describing and simulating electrical gap junctions. See #661 #686.
- An additional library
libarborenvis now installed with useful
helper functionality for managing the environment (e.g. detecting the number of available CPU cores). See #679. - Detection and allocation of GPUs to MPI ranks on systems with more than one GPU per node in
libarborenv. See #659 and #654. - The miniapp example was removed and replaced with a simple single cell model that shows how to use morphologies. See #703 and #710.
- Support for ARM NEON intrinsics. See #698.
- Basic Python support. Full Python support is slated for v0.3. See #668.
Contributors
Nora Abi Akar
John Biddiscombe
Benjamin Cumming
Felix Huber
Marko Kabic
Vasileios Karakasis
Wouter Klijn
Anne Küsters
Alexander Peyser
Stuart Yates
Citation
Nora Abi Akar, John Biddiscombe, Benjamin Cumming, Felix Huber, Marko Kabic, Vasileios Karakasis, Wouter Klijn, Anne Küsters, Alexander Peyser, Stuart Yates. (2019, March 4). arbor-sim/arbor: Arbor Library v0.2 (Version v0.2). Zenodo. http://doi.org/10.5281/zenodo.2583709
Version 0.1: First release
Arbor Library
Arbor library version 0.1, tagged as v0.1
Arbor is a library for implementing performance portable network simulations of multi-compartment neuron models.
An installation guide and library documentation are available online at Read the Docs.
Submit a ticket if you have any questions or want help.
Some key features include:
* Optimized back ends for CUDA, KNL and AVX2 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.
Contributors
Nora Abi Akar
John Biddiscombe
Benjamin Cumming
Marko Kabic
Vasileios Karakasis
Wouter Klijn
Anne Küsters
Ivan Martinez
Alexander Peyser
Stuart Yates
Citation
If you use this version of Arbor, please cite it as Nora Abi Akar, John Biddiscombe, Benjamin Cumming, Marko Kabic, Vasileios Karakasis, Wouter Klijn, Anne Küsters, Ivan Martinez, Alexander Peyser, Stuart Yates. (2018, October 12). arbor-sim/arbor: Version 0.1: First release (Version v0.1). Zenodo. http://doi.org/10.5281/zenodo.1459679. The full citation is available in different formats on Zenodo.