Default node order is cell contiguous (except for thread rootnodes).#3300
Conversation
|
✔️ 4f6cba4 -> Azure artifacts URL |
|
|
✔️ 67edba4 -> Azure artifacts URL |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #3300 +/- ##
==========================================
- Coverage 68.34% 68.34% -0.01%
==========================================
Files 682 682
Lines 116580 116572 -8
==========================================
- Hits 79680 79672 -8
Misses 36900 36900 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
|
✔️ 67edba4 -> artifacts URL |
|
✔️ 4a69c68 -> artifacts URL |
|
✔️ 4a69c68 -> Azure artifacts URL |
|
✔️ 170d40e -> artifacts URL |
|
✔️ b62acb7 -> artifacts URL |
|
✔️ b62acb7 -> Azure artifacts URL |
|
✔️ 595a3b4 -> artifacts URL |
|
✔️ 3d8a428 -> Azure artifacts URL |
|
|
✔️ 63b49b9 -> Azure artifacts URL |
|
✔️ 63b49b9 -> artifacts URL |



Default cell contiguity on top of #3299 implies that in general,
CvMemList.ml.size() == 1for each cell. The exceptionsare that
CvMembList.ml.size() == 2whenever 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_threshisI 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.