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

Default node order is cell contiguous (except for thread rootnodes). #3300

Draft
wants to merge 4 commits into
base: hines/cvlocal-bug
Choose a base branch
from

Conversation

nrnhines
Copy link
Member

@nrnhines nrnhines commented Jan 6, 2025

Default cell contiguity on top of #3299 implies that in general, CvMemList.ml.size() == 1 for each cell. The exceptions
are that CvMembList.ml.size() == 2 whenever the extracellular mechanism is present or if a synapse (of the same type) is located both in the cell rootnode and somewhere else on the cell (note that cell rootnodes for a thread are adjacent).
The node ordering of each cell (after the root node) is section depth first.

This ordering fixes most of the performance loss with respect to 8.2. With the intel compiler, performance of the ringtest with
nrniv -python ringtest.py -rparm -nring 32 -npt 1 -compart 1 3 -method 2 -2nd_order_thresh is

version    runtime (s)
8.2        1.4
master     6.7
This PR    2.7

I speculate that the remainder of the performance issue is the use of DataHandle during sim time instead of raw double* and that will be dealt with in subsequent pull requests.

I would like this PR to be reviewed as a change to #3299 but not merged. It can be merged to the master after #3299 is merged into the master.

@nrnhines nrnhines requested a review from JCGoran January 6, 2025 17:55
@nrnhines nrnhines marked this pull request as draft January 6, 2025 17:56
Copy link

✔️ 4f6cba4 -> Azure artifacts URL

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.

1 participant