Skip to content

MariyaS/neurokernel

 
 

Repository files navigation

Neurokernel

Package Description

Neurokernel is a Python framework for developing models of the fruit fly brain and executing them on multiple NVIDIA GPUs.

Support the project

Prerequisites

Neurokernel requires

  • Linux (other operating systems may work, but have not been tested)
  • Python 2.7 (Python 3.0 is not guaranteed to work)
  • at least one NVIDIA GPU with Fermi architecture
  • NVIDIA's GPU drivers
  • CUDA 5.0 or later.

To check what GPUs are in your system, you can use the inxi command available on most Linux distributions:

inxi -G

You can verify that the drivers are loaded as follows:

lsmod | grep nvidia

If no drivers are present, you may have to manually load them by running something like:

modprobe nvidia

as root.

The mpi branch of Neurokernel also requires OpenMPI 1.8.4 or later compiled with CUDA support. See this page for installation information. Note that OpenMPI 1.8 cannot run on Windows_.

Some of Neurokernel's demos require either ffmpeg or libav installed to generate visualizations.

Installation

Download the latest Neurokernel code as follows: :

git clone https://github.com/neurokernel/neurokernel.git

Since Neurokernel requires a fair number of additional Python packages to run, it is recommended that it either be installed in a virtualenv or conda environment. Follow the relevant instructions below.

Virtualenv

See this page for virtualenv installation information.

Create a new virtualenv environment and install several required dependencies: :

cd ~/
virtualenv NK
~/NK/bin/pip install numpy cython numexpr tables pycuda

If installation of PyCUDA fails because some of the CUDA development files or libraries are not found, you may need to specify where they are explicitly. For example, if CUDA is installed in /usr/local/cuda/, try installing PyCUDA as follows:

CUDA_ROOT=/usr/local/cuda/ CFLAGS=-I${CUDA_ROOT}/include \
LDFLAGS=-L${CUDA_ROOT}/lib64 ~/NK/bin/pip install pycuda

Replace ${CUDA_ROOT}/lib with ${CUDA_ROOT}/lib64 if your system is running 64-bit Linux. If you continue to encounter installation problems, see the PyCUDA Wiki for more information.

Run the following to install the remaining Python package dependencies listed in `setup.py`: :

cd ~/neurokernel
~/NK/bin/python setup.py develop

Conda

Note that conda packages are currently only available for 64-bit Ubuntu Linux 14.04. If you would like packages for another distribution, please submit a request to the Neurokernel developers_.

First, install the libibverbs1, libnuma1, libpmi0, libslurm26, and libtorque2 packages; these are required by the conda OpenMPI packages prepared for Neurokernel. You also need to ensure that CUDA has been installed in /usr/local/cuda.

Install conda by either installing Anaconda or Miniconda. Make sure that the following lines appear in your ~/.condarc file so that conda can find the packages required by Neurokernel: :

channels:
- https://conda.binstar.org/neurokernel/channel/ubuntu1404
- defaults

Create a new conda environment containing the packages required by Neurokernel by running the following command: :

conda create -n NK neurokernel_deps

Run the following to install the remaining Python package dependencies listed in setup.py: :

source activate NK
cd ~/neurokernel
python setup.py develop

Building the Documentation

To build Neurokerne's HTML documentation locally, you will need to install

Once these are installed, run the following: :

cd ~/neurokernel/docs
make html

More Information

More information about Neurokernel can be obtained from the project website at https://neurokernel.github.io.

Neurokernel's documentation is available at http://neurokernel.readthedocs.org.

Authors & Acknowledgements

See the included AUTHORS file for more information.

License

This software is licensed under the BSD License. See the included LICENSE file for more information.

Notes

The Neurokernel Project is independent of the NeuroKernel Operating System developed by NeuroDNA Computer.

Releases

No releases published

Packages

No packages published

Languages

  • Python 99.9%
  • Other 0.1%