{"id":20956457,"url":"https://github.com/bluebrain/neurox","last_synced_at":"2025-05-14T05:31:51.494Z","repository":{"id":41833542,"uuid":"89603808","full_name":"BlueBrain/neurox","owner":"BlueBrain","description":"A parallel \u0026 distributed asynchronous simulator of extended Hodgkin-Huxley neuron models","archived":false,"fork":false,"pushed_at":"2022-04-27T11:14:28.000Z","size":74764,"stargazers_count":3,"open_issues_count":0,"forks_count":2,"subscribers_count":5,"default_branch":"master","last_synced_at":"2024-11-13T01:03:04.320Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/BlueBrain.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-04-27T14:00:55.000Z","updated_at":"2021-12-21T15:07:43.000Z","dependencies_parsed_at":"2022-08-11T18:50:57.517Z","dependency_job_id":null,"html_url":"https://github.com/BlueBrain/neurox","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BlueBrain%2Fneurox","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BlueBrain%2Fneurox/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BlueBrain%2Fneurox/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BlueBrain%2Fneurox/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BlueBrain","download_url":"https://codeload.github.com/BlueBrain/neurox/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225277060,"owners_count":17448613,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-19T01:26:03.456Z","updated_at":"2024-11-19T01:26:04.757Z","avatar_url":"https://github.com/BlueBrain.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# neurox\n\nA scalable parallel \u0026 distributed asynchronous simulator of extended Hodgkin-Huxley neuron models\n\n## Installation\n\nDependencies\n- cmake 2.8.12+: www.cmake.org\n- hpx 4+: https://hpx.crest.iu.edu/\n- tclap 1.2.1+: http://tclap.sourceforge.net/\n- libCoreNeuron: https://github.com/BlueBrain/coreneuron\n- sundials CVODES 3.1.0+: https://computation.llnl.gov/projects/sundials/cvodes\n  - requires SUPERLUMT solver: http://crd-legacy.lbl.gov/~xiaoye/SuperLU/#superlu_mt\n  - requires KLU solver: http://faculty.cse.tamu.edu/davis/suitesparse.html\n  - hint: add `-DSUPERLUMP_ENABLE=ON -DKLU_ENABLE=ON` to the `cmake` command to enable support\n\n## set-up\n\nGeneral compilation parameters:\n```\nexport CC=mpicc\nexport CXX=mpicxx\nexport WORKSPACE_PATH=/home/username/Workspace\n```\n\nHPX compilation parameters:\n```\nexport HPX_INSTALL_PATH=$WORKSPACE_PATH/hpx-install\nexport PKG_CONFIG_PATH=$HPX_INSTALL_PATH/lib/pkgconfig/:$PKG_CONFIG_PATH\nexport LD_LIBRARY_PATH=$HPX_INSTALL_PATH/lib:$LD_LIBRARY_PATH\nexport PATH=$HPX_INSTALL_PATH/bin:$PATH\n```\n\nneurox compilation parameters\n```\nexport NEUROX_INSTALL_PATH=$WORKSPACE_PATH/neurox-install\nexport LD_LIBRARY_PATH=$NEUROX_INSTALL_PATH/lib:$LD_LIBRARY_PATH\nexport PATH=$NEUROX_INSTALL_PATH/bin:$PATH\n```\n\n## Compilation\n\n```\ncmake .. -DCMAKE_INSTALL_PREFIX=$NEUROX_INSTALL_PATH\n```\n*Note*: requires libcoreneuron installation with export of function pointers (`-DEXPORT_MECHS_FUNCTIONS`) and extra mechanisms path when applicable(`-DADDITIONAL_MECHPATH` and `-DADDITIONAL_MECHS`). To be on the safe side, we will also disable timing out of coreneuron after a certain period of inactivity (`-DDISABLE_NRN_TIMEOUT`) and OpenMP that may interfere with HPX scheduler (`-DCORENEURON_OPENMP`).\nTo allow header files to be exposed externally we activate the flag`ENABLE_DEV_FILES_INSTALLATION`. Vectorization is provided by setting the input data-structure as Array-Of-Structures or Structures-of-Arrays (`-DENABLE_SOA`). All other flags are optional and are added to speed-up compilation.\n```\ncmake .. -DCMAKE_BUILD_TYPE=Release \\\n         -DCMAKE_INSTALL_PREFIX=$NEUROX_INSTALL_PATH \\\n         -DADDITIONAL_MECHPATH=$NEURODAMUS_LIB_PATH \\\n         -DADDITIONAL_MECHS=$ADDITIONAL_MECHS_PATH \\\n         -DEXPORT_MECHS_FUNCTIONS=ON \\\n         -DCORENEURON_OPENMP=OFF \\\n         -DDISABLE_NRN_TIMEOUT=ON\\\n         -DENABLE_DEV_FILES_INSTALLATION=ON \\\n         -DCMAKE_CXX_FLAGS=\"-std=c++11\" \\  \n         \\\n         -DENABLE_CUDA_MODULES=OFF \\\n         -DENABLE_NET_RECEIVE_BUFFERING=OFF \\\n         -DENABLE_OPENACC_INFO=OFF \\\n         -DENABLE_REPORTINGLIB=OFF \\\n         -DUNIT_TESTS=OFF \\\n         -DFUNCTIONAL_TESTS=OFF \\\n         -DCORENEURON_MAIN=OFF\n```\n\n## Execution\n\n```\n./neurox --help for execution parameters\n./neurox -d \u003cinput-data-folder\u003e -e \u003cexecution-time-milisecs\u003e for execution with minimum parameters\n```\n\n## Misc\n\n- We follow the google coding style (https://google.github.io/styleguide/cppguide.html) and format. To automatically format the code recursively in all folders use `clang-format`.\n```\nfind ./neurox -iname *.h -o -iname *.cc  | xargs clang-format -i -style=Google\n```\n\n- To check for coding style errors, use `ccplint.py` (https://raw.githubusercontent.com/google/styleguide/gh-pages/cpplint/cpplint.py ). False positives can be ignored by putting `// NOLINT` at the end of the line or `// NOLINTNEXTLINE` in the previous line.\n```\nfind ./neurox -iname *.h -o -iname *.cc  | xargs cpplint.py\n```\n\n- Documentation follows the doxygen (www.doxygen.org) notation and can be exported with `make doc`; \n\n- Developer note: to collect CPU hotspots with inter VTune (`amplxe-cl --help` for details):\n```\namplxe-cl -collect hotspots -r r000hs srun -n 1 ./bin/neurox_exec -d /gpfs/bbp.cscs.ch/project/proj16/bmagalha/Circuits/PCP/1/coreneuron_input\n```\n\n\n## Citations\nPlease use following citation to reference this work: \n\nB. R. C. Magalhães, T. Sterling, M. Hines, and F. Schürmann, “Asynchronous Branch-Parallel Simulation of Detailed Neuron Models,” Frontiers in Neuroinformatics, vol. 13, p. 54, 2019, doi: 10.3389/fninf.2019.00054.\n\n\n## Funding\nThe work was supported by funding to the Blue Brain Project, a research center of the École polytechnique fédérale de Lausanne (EPFL), from the Swiss government's ETH Board of the Swiss Federal Institutes of Technology. A portion of Michael Hines efforts was supported by NINDS grant R01NS11613.\n\n\n## Copyright\n\nCopyright (c) 2015-2022 Blue Brain Project/EPFL \u0026 Center for Research in Extreme Scale Technologies (CREST), Indiana University\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbluebrain%2Fneurox","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbluebrain%2Fneurox","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbluebrain%2Fneurox/lists"}