Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use SOA format for mechanism data #2027

Merged
merged 373 commits into from
Jun 5, 2023

Conversation

olupton
Copy link
Collaborator

@olupton olupton commented Oct 17, 2022

Introduce new SOA data structures for NEURON model data. So far:

  • Nodes: area, voltages and matrix equation data (d, a, b, rhs).
  • Mechanisms: floating point data (i.e. RANGE variables)

are migrated to use the new neuron::container::soa<...> format.

Status:

  • The CI on this PR is normally passing
  • Internal BBP CI is normally passing
  • ModelDB CI is normally passing without suspicious diffs

Dependencies:

This builds on #1929 (which was not merged) and incorporates ideas from https://github.com/neuronsimulator/data-structure-design.

@olupton olupton changed the base branch from olupton/data-structures to master October 27, 2022 08:32
src/nrniv/kschan.cpp Outdated Show resolved Hide resolved
src/nrniv/singlech.cpp Outdated Show resolved Hide resolved
@olupton olupton force-pushed the olupton/data-structures-including-mechanisms branch 2 times, most recently from 3f121e0 to b51f37f Compare November 1, 2022 12:14
olupton added a commit that referenced this pull request Nov 1, 2022
* Bump submodule past iv#45.
* PyObject_HEAD contains an ;
* drop nrn_isdouble
* drop unused memory pool code
@olupton olupton force-pushed the olupton/data-structures-including-mechanisms branch from ac0450f to 88cf7b6 Compare November 1, 2022 21:07
@codecov-commenter
Copy link

codecov-commenter commented Nov 2, 2022

Codecov Report

Merging #2027 (2b44298) into master (b4ade55) will increase coverage by 1.38%.
The diff coverage is 92.02%.

❗ Current head 2b44298 differs from pull request most recent head e23d8d8. Consider uploading reports for the commit e23d8d8 to get more accurate results

@@            Coverage Diff             @@
##           master    #2027      +/-   ##
==========================================
+ Coverage   58.77%   60.15%   +1.38%     
==========================================
  Files         623      642      +19     
  Lines      119597   121134    +1537     
==========================================
+ Hits        70288    72872    +2584     
+ Misses      49309    48262    -1047     
Impacted Files Coverage Δ
...re/lib/python/neuron/tests/utils/capture_stdout.py 0.00% <0.00%> (ø)
src/ivoc/oc2iv.h 50.00% <ø> (ø)
src/ivoc/symdir.cpp 0.00% <0.00%> (ø)
src/ivoc/xmenu.h 68.00% <ø> (+2.61%) ⬆️
src/nmodl/netrec_discon.cpp 62.31% <ø> (ø)
src/nrncvode/netcvode.h 100.00% <ø> (ø)
src/nrncvode/vrecitem.h 65.51% <ø> (ø)
src/nrniv/arraypool.h 96.10% <ø> (-3.90%) ⬇️
src/nrniv/bbsavestate.h 50.00% <ø> (ø)
src/nrniv/glinerec.h 0.00% <ø> (-35.72%) ⬇️
... and 118 more

... and 9 files with indirect coverage changes

📣 We’re building smart automated test selection to slash your CI/CD build times. Learn more

src/nrniv/shape.cpp Outdated Show resolved Hide resolved
@alexsavulescu alexsavulescu force-pushed the olupton/data-structures-including-mechanisms branch from d41678e to 63e20bc Compare November 8, 2022 16:14
@olupton olupton force-pushed the olupton/data-structures-including-mechanisms branch 3 times, most recently from a4e9fac to ce1bade Compare November 9, 2022 18:09
@bbpbuildbot

This comment was marked as outdated.

@bbpbuildbot

This comment was marked as outdated.

@bbpbuildbot

This comment was marked as outdated.

@bbpbuildbot

This comment was marked as outdated.

@bbpbuildbot

This comment was marked as outdated.

@bbpbuildbot

This comment was marked as outdated.

@bbpbuildbot

This comment was marked as outdated.

@olupton olupton force-pushed the olupton/data-structures-including-mechanisms branch from 7ded4ab to 4ac4e2b Compare November 21, 2022 16:15
@bbpbuildbot

This comment was marked as outdated.

@olupton olupton force-pushed the olupton/data-structures-including-mechanisms branch from 380e7c3 to 2b44298 Compare June 5, 2023 11:11
@azure-pipelines
Copy link

✔️ 2b44298 -> Azure artifacts URL

@github-actions
Copy link
Contributor

github-actions bot commented Jun 5, 2023

NEURON ModelDB CI: launching for 2b44298 via its drop url

Copy link
Member

@alexsavulescu alexsavulescu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚀

@bbpbuildbot

This comment has been minimized.

@github-actions
Copy link
Contributor

github-actions bot commented Jun 5, 2023

NEURON ModelDB CI: 2b44298 -> download reports from here

@azure-pipelines
Copy link

✔️ e23d8d8 -> Azure artifacts URL

@olupton olupton merged commit 6c529a4 into master Jun 5, 2023
@olupton olupton deleted the olupton/data-structures-including-mechanisms branch June 5, 2023 16:54
olupton added a commit that referenced this pull request Jun 16, 2023
These data were already in SoA format, but bringing them into
the ecosystem introduced in #2027 removes the final usage of
some old pointer-updating logic, which in any case required
contortions in Python scripts to get things to work. This can be
removed because the new data_handle<T> component can
now handle referring to i_membrane_ values.

To enable this, add support to neuron::container::soa<...> for
fields that can be toggled active/inactive at runtime, and add
new tests covering this.

Also drop set_area and set_v for uniformity.
@ramcdougal ramcdougal mentioned this pull request Jul 1, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants