Open nrnhines opened 4 months ago
@nrnhines I'd be happy to work on this from Wed onwards. Please let me know if you'd prefer to work in it yourself, so we don't both work on this.
@1uc Go ahead. I'll be spending this week at the ebrains workshop and won't be able to start working on it til next week.
The nrn/src/nmodl occurrences of VECTORIZE and vectorize generally refer to whether mod files are thread safe and whether instances of mechanisms should be limited to existing in thread 0. The word was first introduced long ago to allow efficient simulation on a CRAY Y/MP (which had a pipeline size of 128). Prior to that, there was no Memb_list structure and memory for a mechanism instance was allocated on a Node by Node basis. Setup of the tree matrix involved
The introduction of the Memb_list structure along with its reorganization/construction function nrn/src/nrnoc/treeset.cpp:v_setup_vectors() more or less reversed the above order to
Subsequently over the years, this was refactored for use with CVODE and pthreads, and memory allocation/reallocation evolved into a complete AoS (Array of structure) memory layout that exists through NEURON version 8.
A review of occurrences of
can be summarized as
So... "vectorize" should be eliminated when possible, and otherwise changed to something like "threadsafe" All remnants of pre Memb_list function prototype code generation should be eliminated.
This issue description should be edited to increase clarity.