A toolbox for biophysical network modeling on GPUs
Project description
The cuBNM toolbox performs efficient simulation and optimization of biophysical network models (BNM) of the brain on GPUs.
Overview
The toolbox currently supports simulation of network nodes activity based on reduced Wong-Wang model with analytical-numerical feedback inhibition control. The Balloon-Windkessel model is used for calculation of simulated BOLD signals. It calculates goodness of fit of the simulated BOLD to the empirical BOLD based on functional connectivity (FC) and functional connectivity dynamics (FCD) matrices. The parameter optimization of the model can be done using grid search or evolutionary optimizers. Parallelization of the entire grid or each iteration of evolutionary optimizers is done at two levels: 1) simulations (across the GPU ‘blocks’), and 2) nodes (across each block’s ‘threads’). The toolbox additionally supports running the simulations on single- or multi-core CPUs, which will be used if no GPUs are detected or when requested by user (but the toolbox mainly focuses on GPUs).
This is a simplified flowchart of the different components of the program written in Python, C++ and CUDA.
Installation
git clone https://github.com/amnsbr/cuBNM.git
cd cuBNM && pip install .
Installation requires Python (tested with 3.9) and g++. Currently Windows, Mac and non-Nvidia GPUs are not supported.
GSL is another requirement which will be installed by the package (in ~/.cuBNM/gsl
) but it takes a rather long time and is only done if libgsl.a
and libgslcblas.a
are not found in "/usr/lib", "/lib", "/usr/local/lib", $LIBRARY_PATH, $LD_LIBRARY_PATH
. If you have GSL on your system but it is installed elsewhere, please add the libgsl.a
and libgslcblas.a
directories to $LIBRARY_PATH
.
Usage
In ./examples/examples.py
you can find some examples of running a single simulation (run_sims
), grid search (run_grid
) or CMAES optimization (run_cmaes_optimizer
). More comprehensive documentations and examples will be added.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
File details
Details for the file cuBNM-0.0.1.tar.gz
.
File metadata
- Download URL: cuBNM-0.0.1.tar.gz
- Upload date:
- Size: 4.3 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | bf4260e3fa778ee448067fc0123a69bec959f818e211552cb1a7ccf6a6dcdc80 |
|
MD5 | eb4520c495a5c0d85aac5bbb7c603051 |
|
BLAKE2b-256 | 62fa93018788849b3275850a47cb50cb0d7c2cb86cf88f4bfb6bb8c1b9b2304c |
File details
Details for the file cuBNM-0.0.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
.
File metadata
- Download URL: cuBNM-0.0.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 5.0 MB
- Tags: CPython 3.12, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 73b1f85783790c7b66a81cf549833239e5e63366c3453ec0d6836ee3f5455fe8 |
|
MD5 | aa7fa6fe6d6cbc78a373f7d797f6b91d |
|
BLAKE2b-256 | b8ffce8b8eac6bbce737ec4c9d2502faea033f193dee764f6436bb6013a13b81 |
File details
Details for the file cuBNM-0.0.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
.
File metadata
- Download URL: cuBNM-0.0.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 5.0 MB
- Tags: CPython 3.11, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 37860145cbc557d44ee849fb74fd4f883e48125f83c0281b1951521cd23501d2 |
|
MD5 | e8b8d715692b372c7981fd02729053e1 |
|
BLAKE2b-256 | 2b7b6d16597311e71bd0dd2a262a5e2e66281d3f2b14a37ddcf9109b9694da00 |
File details
Details for the file cuBNM-0.0.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
.
File metadata
- Download URL: cuBNM-0.0.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 5.0 MB
- Tags: CPython 3.10, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6f18ae546c98d13950c8d39fce8ca6e3ba3e3d79dbe28c10398a6a4e81524b27 |
|
MD5 | e66dd79ec7fb74f72747f23ea8ce3f44 |
|
BLAKE2b-256 | ab37a1c236a32c430385007ea49deeef92fa4a4289b61789bc24d725c8418b16 |
File details
Details for the file cuBNM-0.0.1-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
.
File metadata
- Download URL: cuBNM-0.0.1-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 5.0 MB
- Tags: CPython 3.9, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 973303a1bf64451ea48e71af71fdfcb6327715855375f518a0a93fae05fa550a |
|
MD5 | 2a2b656b10aa28cac6f1ded32840c748 |
|
BLAKE2b-256 | 093bbe3a2a5031d73664f837c9ee15660404bd38685a15fac0742b4b66bff426 |
File details
Details for the file cuBNM-0.0.1-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
.
File metadata
- Download URL: cuBNM-0.0.1-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 5.0 MB
- Tags: CPython 3.8, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 68c03a00b56900d6e1eae832fd240851740fd711d48964835fa3ccd49079ba4a |
|
MD5 | b4492375f4ff6bc495f7dcfb2dea0c68 |
|
BLAKE2b-256 | 98917bdd95f37f4294b1fc73cb84207d84057a7af839697286ef1f152e0ce461 |
File details
Details for the file cuBNM-0.0.1-cp37-cp37m-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
.
File metadata
- Download URL: cuBNM-0.0.1-cp37-cp37m-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 5.0 MB
- Tags: CPython 3.7m, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a0bec69a42ca9825dd5bb1e197f527378399e12b182272c4ede313ce8fe72486 |
|
MD5 | d5e013a763113aefdc341fa02c7c8a90 |
|
BLAKE2b-256 | edd33b31ac84ecd26340feb841cc06a62826a82959bffb513da5a0789f0f0a89 |