Skip to main content

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.

flowchart

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

cuBNM-0.0.1.tar.gz (4.3 MB view details)

Uploaded Source

Built Distributions

cuBNM-0.0.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (5.0 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.27+ x86-64 manylinux: glibc 2.28+ x86-64

cuBNM-0.0.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (5.0 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.27+ x86-64 manylinux: glibc 2.28+ x86-64

cuBNM-0.0.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (5.0 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.27+ x86-64 manylinux: glibc 2.28+ x86-64

cuBNM-0.0.1-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (5.0 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.27+ x86-64 manylinux: glibc 2.28+ x86-64

cuBNM-0.0.1-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (5.0 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.27+ x86-64 manylinux: glibc 2.28+ x86-64

cuBNM-0.0.1-cp37-cp37m-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (5.0 MB view details)

Uploaded CPython 3.7m manylinux: glibc 2.27+ x86-64 manylinux: glibc 2.28+ x86-64

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

Hashes for cuBNM-0.0.1.tar.gz
Algorithm Hash digest
SHA256 bf4260e3fa778ee448067fc0123a69bec959f818e211552cb1a7ccf6a6dcdc80
MD5 eb4520c495a5c0d85aac5bbb7c603051
BLAKE2b-256 62fa93018788849b3275850a47cb50cb0d7c2cb86cf88f4bfb6bb8c1b9b2304c

See more details on using hashes here.

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

File hashes

Hashes for cuBNM-0.0.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 73b1f85783790c7b66a81cf549833239e5e63366c3453ec0d6836ee3f5455fe8
MD5 aa7fa6fe6d6cbc78a373f7d797f6b91d
BLAKE2b-256 b8ffce8b8eac6bbce737ec4c9d2502faea033f193dee764f6436bb6013a13b81

See more details on using hashes here.

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

File hashes

Hashes for cuBNM-0.0.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 37860145cbc557d44ee849fb74fd4f883e48125f83c0281b1951521cd23501d2
MD5 e8b8d715692b372c7981fd02729053e1
BLAKE2b-256 2b7b6d16597311e71bd0dd2a262a5e2e66281d3f2b14a37ddcf9109b9694da00

See more details on using hashes here.

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

File hashes

Hashes for cuBNM-0.0.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6f18ae546c98d13950c8d39fce8ca6e3ba3e3d79dbe28c10398a6a4e81524b27
MD5 e66dd79ec7fb74f72747f23ea8ce3f44
BLAKE2b-256 ab37a1c236a32c430385007ea49deeef92fa4a4289b61789bc24d725c8418b16

See more details on using hashes here.

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

File hashes

Hashes for cuBNM-0.0.1-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 973303a1bf64451ea48e71af71fdfcb6327715855375f518a0a93fae05fa550a
MD5 2a2b656b10aa28cac6f1ded32840c748
BLAKE2b-256 093bbe3a2a5031d73664f837c9ee15660404bd38685a15fac0742b4b66bff426

See more details on using hashes here.

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

File hashes

Hashes for cuBNM-0.0.1-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 68c03a00b56900d6e1eae832fd240851740fd711d48964835fa3ccd49079ba4a
MD5 b4492375f4ff6bc495f7dcfb2dea0c68
BLAKE2b-256 98917bdd95f37f4294b1fc73cb84207d84057a7af839697286ef1f152e0ce461

See more details on using hashes here.

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

File hashes

Hashes for cuBNM-0.0.1-cp37-cp37m-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a0bec69a42ca9825dd5bb1e197f527378399e12b182272c4ede313ce8fe72486
MD5 d5e013a763113aefdc341fa02c7c8a90
BLAKE2b-256 edd33b31ac84ecd26340feb841cc06a62826a82959bffb513da5a0789f0f0a89

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page