-
Notifications
You must be signed in to change notification settings - Fork 113
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
Support for using file transfer mode via coreneuron embedded module #927
Conversation
* add new option coreneuron.file_mode = True / False * if file_mode=True, the model is written to folder corenrn_data and coreneuron is launched * with file transfer mode, only spikes will be available * bug fix in the test test_spikes.py in MPI mode: mpi4py needs to be imported before importing neuron * add test for file_mode both in serial as well as mpi mode
This reverts commit 3a03fe4.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks good to me except it seems time to go ahead and implement the \todo item in nrnpy_hoc.cpp and have only the single get_nrncore_opt_value with a return type argument.
Perhaps the NEURON Datum union can be used to send back a int, double, or pointer to (copy?) of a c_str. (Or backcast a returned void*?)
@nrnhines : I don't have complete picture about implementation aspects. Could we do this as separate PR? |
No problem. As soon as the checks are successful, I'll merge. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, very nice addition. One thing to bring back though..
coreneuron.verbose = 0 | ||
h.stdinit() | ||
corenrn_all_spike_t = h.Vector() | ||
corenrn_all_spike_gids = h.Vector() | ||
|
||
pc.spike_record( -1 if pc.id() == 0 else (pc.id()), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
By removing this we are no longer testing 2nd case when we iterate over PreSyns and match up vectors.
- apply suggestion from review in #927
* Update test for better code coverage - apply suggestion from review in #927 * fix the test : gid is pc.id()+1 and not pc.id()
corenrn_data and coreneuron is launched
available
mpi4py needs to be imported before importing neuron
mpi mode
I see two benefits with this PR:
we have to write separate shell scripts to run special and
special-core.
just few processes. But then model building part becomes
slow. Based on this PR, we can build model with process
per core and dump to the file. Then on CoreNEURON side
only few ranks can load the data and utilise GPU using
multiple OpenMP threads per rank.
cc: @iomaganaris @alexsavulescu