How to install

How to use brain-indexer on BB5

brain-indexer is now integrated in Blue Brain Spack, therefore on BB5 you can load it as a module using the command: module load unstable brain-indexer.

This is the only recommended option on BB5.

How to use brain-indexer locally

Since brain-indexer is an HPC application, the regular means of distribution don’t work well, i.e. wheels don’t play nicely with MPI or other critical HPC libraries.

Instead Spack has been invented. It works much like pip together with virtual environments, just that it isn’t limited to Python-only software. The advantage of spack is that it aware of the requirements of HPC applications and solves the dependency issues correctly by selecting, and if required compiling, a compatible set of libraries.

Therefore, the preferred way of installing brain-indexer locally, such as a laptop is

spack install brain-indexer

How to install from source

As a developer of brain-indexer you’ll need to build from source. The steps are to first install the required dependecies. On BB5 you can simply load the following modules:

module load unstable gcc cmake boost hpe-mpi

On other systems you might need to install them manually. The dependencies are modern versions of python>=3.8.0, cmake, gcc and mpi; and boost>=1.79.0.

Clone the repository:

git clone --recursive git@bbpgitlab.epfl.ch:hpc/brain-indexer.git

This is the command in case you forgot the --recursive:

git submodule update --init --recursive

Remember to cd into the correct directory and create the virtualenv and install as editable with pip

python -m venv <name of the virtualenv>
pip install -e .

But why can’t I ‘pip install’?

This question has two parts. Installing wheels is only partially possible simply because wheels don’t support MPI. (There also seems to be no interest in changing this. Hence, HPC uses Spack or conda.)

If all you need is a read only version of brain-indexer then you can obtain a version without MPI from from the BBP devpi

pip install --index https://bbpteam.epfl.ch/repository/devpi/simple brain-indexer

this will allow you to open and query any index, including multi-indexes. However, you’ll not be able to create multi-indexes.

If you don’t need to install from wheel, but are willing to install from a source distribution. You can obtain a fully functioning version of brain-indexer as follows

pip install --index https://bbpteam.epfl.ch/repository/devpi/simple brain-indexer --no-binary brain-indexer

However, it’s important that you have the required dependecies installed. Please check the section on installing from source.

Source

installation.rst