-
Notifications
You must be signed in to change notification settings - Fork 118
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
Eliminate make_mechanism and make_pointprocess from NEURON #2691
Comments
I was mistaken about https://modeldb.science/9853 hhint and hhq mechanisms being trivially implementable. I still think they are implementable but, as they interact with other inserted mechanisms, require a good deal of extra implementation effort, such as USEION (not so bad) and POINTER variables (extra effort on the hoc side to set them up). I am also possibly mistaken about the effort needed to bring make_mechanism into compatibility with NEURON version 9 (just a few lines of registration code). Unfortunately, the 9853 model figures run about 20 times slower in version 9 than in 8.2.3 (about 10 seconds as opposed to 0.5 seconds). (That model has 100 segments and with variable step method needs about 2000 time steps) Figure 4 runs 60 times slower. I don't know the reason for the performance issue. But I'd like to diagnose and fix that, keep these functions, and withdraw this proposal. |
It is interesting that the latest #2675 with the default compile of |
In scientific codes that use a lot of templates and rely heavily on inlining, nrn/cmake/ReleaseDebugAutoFlags.cmake Lines 24 to 26 in a710366
Is the difference similarly big when using |
FastDebug is not allowed if InterViews is part of the build:
Actually, I'm more concerned about why 8.2.3 is twice as fast (RelWithDebInfo) |
We should have a look with a profiler. If we're lucky it's something trivial, if not it's still good to know why and check it doesn't affect larger simulations. I've modified the CMake code for IV to allow it to build with |
With |
I propose elimination of make_mechanism and make_pointprocess. See documentation at https://nrn.readthedocs.io/en/latest/python/modelspec/programmatic/hocmech.html
This feature does not work with NEURON version 9.
This feature is used in modeldb only by https://modeldb.science/9853 implemented by me. hhint and hhq are trivially implementable with nmodl.
I believe it is not worth the effort to fit this feature into the SoA style of NEURON version 9. And elimination will remove a good deal of special case and confusing code.
The text was updated successfully, but these errors were encountered: