@@ -13,7 +13,7 @@ You can find out how to :ref:`get Arbor<in_install>`; get started quickly with o
...
@@ -13,7 +13,7 @@ You can find out how to :ref:`get Arbor<in_install>`; get started quickly with o
What is Arbor?
What is Arbor?
--------------
--------------
`Arbor <https://arbor-sim.org>`_. is a high-performance library for computational neuroscience simulations with multi-compartment, morphologically-detailed cells,
`Arbor <https://arbor-sim.org>`_ is a high-performance library for computational neuroscience simulations with multi-compartment, morphologically-detailed cells,
from single cell models to very large networks. Arbor is written from the ground up with many-cpu and gpu architectures in mind, to
from single cell models to very large networks. Arbor is written from the ground up with many-cpu and gpu architectures in mind, to
help neuroscientists effectively use contemporary and future HPC systems to meet their simulation needs.
help neuroscientists effectively use contemporary and future HPC systems to meet their simulation needs.
If you want to work on Arbor's code, you can get a copy of our repo and point `pip` at the local directory:
If you want to work on Arbor's code, you can get a copy of our repo and point `pip` at the local directory:
.. code-block:: bash
.. code-block:: bash
...
@@ -66,26 +71,25 @@ Every time you make changes to the code, you'll have to repeat the second step.
...
@@ -66,26 +71,25 @@ Every time you make changes to the code, you'll have to repeat the second step.
Advanced options
Advanced options
^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^^^
By default Arbor is installed with multi-threading enabled.
By default Arbor is installed with multi-threading enabled. To enable more advanced forms of parallelism,
To enable more advanced forms of parallelism, the following optional flags can
Arbor comes with a few compilation options. These can be used on both local (``pip3 install ./arbor``) and
be used to configure the installation:
remote (``pip3 install arbor``) copies of Arbor. Below we assume you are working off a local copy.
The following optional flags can be used to configure the installation:
* ``--mpi``: Enable MPI support (requires MPI library).
* ``--mpi``: Enable MPI support (requires MPI library).
* ``--gpu``: Enable GPU support for NVIDIA GPUs with nvcc using ``cuda``, or with clang using ``cuda-clang`` (both require cudaruntime).
* ``--gpu``: Enable GPU support for NVIDIA GPUs with nvcc using ``cuda``, or with clang using ``cuda-clang`` (both require cudaruntime).
Enable GPU support for AMD GPUs with hipcc using ``hip``. By default set to ``none``, which disables gpu support.
Enable GPU support for AMD GPUs with hipcc using ``hip``. By default set to ``none``, which disables gpu support.
* ``--vec``: Enable vectorization. This might require choosing an appropriate architecture using ``--arch``. Note that on x86-64 platforms compilation will fail if you enable vectorization, but the CPU or ``--arch`` does not support any form of AVX.
* ``--vec``: Enable vectorization. The ``--arch`` argument, documented below, may also have to be set appropriately to generated vectorized code.
* ``--arch``: CPU micro-architecture to target. By default this is set to ``native``.
See :ref:`install-architecture` for details.
* ``--arch``: CPU micro-architecture to target. The advised default is ``native``.
If calling ``setup.py`` the flags must come after ``install`` on the command line,
See `here <https://gcc.gnu.org/onlinedocs/gcc/x86-Options.html>`_ for a full list of options.
and if being passed to pip they must be passed via ``--install-option``. The examples
below demonstrate this for both pip and ``setup.py``.
**Vanilla install** with no additional features enabled:
**Vanilla install** with no additional features enabled:
.. code-block:: bash
.. code-block:: bash
pip3 install arbor
pip3 install arbor
python3 ./arbor/setup.py install
**With MPI support**. This might require loading an MPI module or setting the ``CC`` and ``CXX``
**With MPI support**. This might require loading an MPI module or setting the ``CC`` and ``CXX``
:ref:`environment variables <install-mpi>`:
:ref:`environment variables <install-mpi>`:
...
@@ -93,7 +97,6 @@ below demonstrate this for both pip and ``setup.py``.
...
@@ -93,7 +97,6 @@ below demonstrate this for both pip and ``setup.py``.
.. code-block:: bash
.. code-block:: bash
pip3 install --install-option='--mpi' ./arbor
pip3 install --install-option='--mpi' ./arbor
python3 ./arbor/setup.py install --mpi
**Compile with** :ref:`vectorization <install-vectorize>` on a system with a SkyLake
**Compile with** :ref:`vectorization <install-vectorize>` on a system with a SkyLake
:ref:`architecture <install-architecture>`:
:ref:`architecture <install-architecture>`:
...
@@ -101,21 +104,18 @@ below demonstrate this for both pip and ``setup.py``.
...
@@ -101,21 +104,18 @@ below demonstrate this for both pip and ``setup.py``.