Skip to content

Latest commit

 

History

History
221 lines (128 loc) · 5.87 KB

install.rst

File metadata and controls

221 lines (128 loc) · 5.87 KB

Installation

The easiest way to install Elephant is by creating a conda environment, followed by pip install elephant. Below is the explanation of how to proceed with these two steps.

Prerequisites

Elephant requires Python 3.6, 3.7, 3.8, or 3.9.

(recommended) Conda (Linux/MacOS/Windows)

  1. Create your conda environment (e.g., elephant):

    conda create --name elephant python=3.7 numpy scipy tqdm
  2. Activate your environment:

    conda activate elephant

Debian/Ubuntu

Open a terminal and run:

sudo apt-get install python-pip python-numpy python-scipy python-pip python-six python-tqdm

Installation

Stable release version

The easiest way to install Elephant is via pip:

pip install elephant

If you want to use advanced features of Elephant, install the package with extras:

pip install elephant[extras]

To upgrade to a newer release use the --upgrade flag:

pip install --upgrade elephant

If you do not have permission to install software systemwide, you can install into your user directory using the --user flag:

pip install --user elephant

Development version

If you have Git installed on your system, it is also possible to install the development version of Elephant.

  1. Before installing the development version, you may need to uninstall the previously installed version of Elephant:

    pip uninstall elephant
  2. Clone the repository and install the local version:

    git clone git://github.com/NeuralEnsemble/elephant.git
    cd elephant

Minimal setup

pip install -e .

conda (with extras)

conda remove -n elephant --all  # remove the previous environment
conda env create -f requirements/environment.yml
conda activate elephant
pip install -e .

MPI support

Some Elephant modules (ASSET, SPADE, etc.) are parallelized to run with MPI. In order to make use of MPI parallelization, you need to install mpi4py package:

conda (easiest)

conda install -c conda-forge mpi4py

pip (Linux)

sudo apt install -y libopenmpi-dev openmpi-bin
pip install mpi4py

To run a python script that supports MPI parallelization, run in a terminal:

mpiexec -n numprocs python -m mpi4py pyfile [arg] ...

For more information, refer to mpi4py documentation.

CUDA and OpenCL support

asset module supports CUDA and OpenCL. These are experimental features. You can have one, both, or none installed in your system.

CUDA

To leverage CUDA acceleration on an NVIDIA GPU card, CUDA toolkit must installed on your system. Then run the following command in a terminal:

pip install pycuda

In case you experience issues installing PyCUDA, this guide <https://medium.com/leadkaro/setting-up-pycuda-on-ubuntu-18-04-for- gpu-programming-with-python-830e03fc4b81> offers a step-by-step installation manual.

If PyCUDA is detected and installed, CUDA backend is used by default in Elephant ASSET module. To turn off CUDA support, set ELEPHANT_USE_CUDA environment flag to 0.

OpenCL

If you have a laptop with a built-in Intel Graphics Card, you can still leverage significant performance optimization with OpenCL backend. The simplest way to install PyOpenCL is to run a conda command:

conda install -c conda-forge pyopencl intel-compute-runtime

However, if you have root (sudo) privileges, it's recommended to install up-to-date Intel Graphics Compute Runtime system-wide and then install PyOpenCL as follows:

conda install -c conda-forge pyopencl ocl-icd-system

Set ELEPHANT_USE_OPENCL environment flag to 0 to turn off PyOpenCL support.

Note

Make sure you've disabled GPU Hangcheck as described in the Intel GPU developers documentation <https://software.intel.com/ content/www/us/en/develop/documentation/get-started-with-intel- oneapi-base-linux/top/before-you-begin.html>. Do it with caution -using your graphics card to perform computations may make the system unresponsive until the compute program terminates.

Dependencies

Elephant relies on two special packages, installed by default:

  • quantities - support for physical quantities with units (mV, ms, etc.)
  • neo - electrophysiology data manipulations