-
Notifications
You must be signed in to change notification settings - Fork 38
Can I make instantiating a L5 Pyramidal Cell faster? #642
Comments
On second thought, maybe I should have opened this at https://github.com/neuronsimulator/nrn/ ... if that's the case let me know and I can close and switch to there |
I see on my machine that the morphology method in hoc_files/morphology.hoc takes 1.23s to import the morphology and 0.43s to instantiate it. (Note |
It may be the case, but I'm not sure, that a cell.clone() method that returns a clone of the cell would also have better performance. |
Thanks for your feedback. I removed the For cell.clone() ... when you have a chance would you mind linking the relevant documentation for this? Thank you in advance for your help. |
I was imagining reading the morphology data once as in the following
and then adjusting a few lines to call the above procedure instead of instantiating it as an object. E.g. in template.hoc
I get (note that the time to create a single model is misleading as morphology_0fb1ca4724() is also called earlier in the code).
instead of
On second thought I don't think it is worth the effort to write a clone function with the interpreter as there would be little or no |
I have similar speedup with the solution above :
vs
Of course this strategy works if you have the exact same morphology (we can think of it as "cloning" ). |
Yes, this worked for me too:
Thank you very much @nrnhines for demonstrating the necessary changes to make to the hoc files. Thanks @alexsavulescu for testing. I am still learning the ropes for hoc. I will resolve/close this issue as this speedup gives a considerable boost and enables my use case. |
Hi CoreNeuron team,
Description
Thanks for developing and sharing this software! I am working on benchmarking the performance of different neuron simulators on NERSC Cori HPC platform and so far I have reached a bottleneck in instantiating cells (not simulating, where I would expect to have the bottleneck).
Example
I have distilled to this code example
Which produces:
clocking in 1 second to construct a model is fine, but when I want to instantiate say 1000 of them I'm hosed.
I believe there is a more efficient way to do this but I am not sure how... that is my question!
Hoc files
These hoc files are adapted from the BBP project and I want to specifically use the specification from hoc_files/biophysics.hoc
I uploaded a folder of all the hoc files I am using to run this in dropbox here
Prerequisites
I am using the installment instructions specified here: neuronsimulator/nrn#806
so PGI compiler with OpenMPI on GPU.
Thank you all in advance for your suggestions and support
The text was updated successfully, but these errors were encountered: