Arbor is a high-performance library for computational neuroscience simulations
--------------
with morphologically-detailed cells, from single cell models to very large networks.
Arbor is a high-performance library for computational neuroscience simulations, being developed in work package 7.5.4 of the `Human Brain Project <//www.humanbrainproject.eu>`_.
The development team is based in:
The development team is from HPC centers, aiming to help neuroscientists
effectively use contemporary and future HPC systems to meet their simulation needs.
* `Swiss National Supercomputing Center <//www.cscs.ch>`_ (CSCS)
* `Jülich Supercomputing Centre <//www.fz-juelich.de/ias/jsc/EN/>`_ (JSC)
Arbor is designed from the ground up for **many core** architectures:
Arbor is designed from the ground up for **many core** architectures:
* Written in C++11 and CUDA;
* Written in modern C++ and CUDA;
* Distributed parallelism using MPI;
* Distributed parallelism using MPI;
* Multithreading with TBB and C++11 threads;
* Multithreading with TBB and C++11 threads;
* **Open source** and **open development**;
* **Open source** and **open development**;
* Sound development practices: **unit testing**, **continuous Integration**,
* Sound development practices: **unit testing**, **continuous Integration**,
and **validation**.
and **validation**.
Features
--------
We are actively developing `Arbor <https://github.com/arbor-sim/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.
@@ -15,7 +15,7 @@ The easiest way to get Arbor is with
...
@@ -15,7 +15,7 @@ The easiest way to get Arbor is with
pip3 install arbor
pip3 install arbor
It is also possible to use Setuptools directly on a local copy of the source code:
Every point release it pushed to the Python Package Index. If you wish to install another version, it is also possible to use Setuptools directly on a local copy of the source code, or instruct `pip` to install directly from our git repository:
.. code-block:: bash
.. code-block:: bash
...
@@ -23,6 +23,12 @@ It is also possible to use Setuptools directly on a local copy of the source cod
...
@@ -23,6 +23,12 @@ It is also possible to use Setuptools directly on a local copy of the source cod
You will need to have some development packages installed in order to build Arbor this way. For Debian/Ubuntu: `sudo apt install build-essential python-dev`, Fedora/Red Hat/CentOS: `sudo yum install @development-tools python-devel`.
.. note::
.. note::
Arbor's Setuptools process simplifies installation for common configurations
Arbor's Setuptools process simplifies installation for common configurations
on laptops and workstations by calling CMake under the hood.
on laptops and workstations by calling CMake under the hood.