You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When running CoreNEURON simulations, it was noticed that putting the reporting dt < 0.1 (0.025 or 0.05), the performance of the IO was greatly degraded (factor of 10).
The reason for that is when CoreNEURON calls nrn_flush_reports() after the nrn_spike_exchange(), libsonatareport checks if it is time to write to disk (buffer is full).
Usually it will buffer several timesteps, but sometimes it will record_data twice between flush_reports, forcing the reporting library to force write to avoid deadlock, not using the buffering capabilities.
The idea would be to move the check for flushing Sonata reports in neuron to nrn_fixed_step_thread to ensure it is performed every simulation step.
The text was updated successfully, but these errors were encountered:
When running CoreNEURON simulations, it was noticed that putting the reporting dt < 0.1 (0.025 or 0.05), the performance of the IO was greatly degraded (factor of 10).
The reason for that is when CoreNEURON calls nrn_flush_reports() after the nrn_spike_exchange(), libsonatareport checks if it is time to write to disk (buffer is full).
Usually it will buffer several timesteps, but sometimes it will record_data twice between flush_reports, forcing the reporting library to force write to avoid deadlock, not using the buffering capabilities.
The idea would be to move the check for flushing Sonata reports in neuron to nrn_fixed_step_thread to ensure it is performed every simulation step.
The text was updated successfully, but these errors were encountered: