Skip to content
This repository was archived by the owner on Feb 26, 2025. It is now read-only.
This repository was archived by the owner on Feb 26, 2025. It is now read-only.

CoreNEURON - Performance issue when reporting dt is less than 0.1 #52

@jorblancoa

Description

@jorblancoa

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions