Skip to content
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

CoevolveSynced and Synapse benchmarks WIP #597

Merged
merged 17 commits into from
Jul 25, 2023

Conversation

gzagatti
Copy link
Contributor

This adds benchmark for the new aggregator which is under review CoevolveSynced (PR SciML/JumpProcesses.jl#315) as well as a new jump model to be benchmarked against, the synapse model.

Discussions on the synapse model can be found in PR rveltz/SynapseElife.jl#1 and the discourse thread.

You probably want to review this PR only once CoevolveSynced has been reviewed (PR SciML/JumpProcesses.jl#315) and incorporated into the main branch of JumpProcesses.jl

@ChrisRackauckas
Copy link
Member

┌ Info: last bit
--
  | │   length(res.xcsol.t) = 3373
  | │   tt[end] = 998.5891927961502
  | └   p_synapse.t_end = 1000.0
  | ┌ Warning: The simulation did not reach requested simulated time.
  | └ @ Synapse /cache/julia-buildkite-plugin/depots/5b300254-1738-4989-ae0a-f4d2d937f953/packages/Synapse/0lKxH/src/Solve.jl:236

Lots of them are getting stuck right near the end. Maybe double the allowed time.

@gzagatti
Copy link
Contributor Author

The problem was the saving callback. I think I've fixed it now, let's see.

@ChrisRackauckas
Copy link
Member

That's odd that some say unstable at the very end and never earlier.

@ChrisRackauckas
Copy link
Member

Is it only checking for instability at the end?

@gzagatti
Copy link
Contributor Author

gzagatti commented May 1, 2023

Indeed, the code only checks whether the simulation reached the desired simulation time at the end.

There are three stages in the simulation:

  1. t ∈ [0, 500]: Glutamate is off. There are no spikes.
  2. t ∈ [500, 501]: Glutamate is on. Spike.
  3. t ∈ [501, 1_000]: Glutamate is off. Recovery.

The plot below illustrates one of the variables:

image

There's a comment on top of the last simulation bit that says:

reaching tend: we simulate the synapse with Glutamate OFF until simulation end time required by the user. In most protocol, this is taking most of the time.

The instability only takes place when solving via PDMP. But, I am not sure why this happens only in a few of the cases (6 / 50 simulations raise a stability warning, in 2 / 6 warnings the simulation is aborted before reaching the end). I think it's problem specific, might be related with the stiffness of the problem on the recovery bit.

We might need some more investigation to pin down the exact cause.

@gzagatti
Copy link
Contributor Author

@ChrisRackauckas can we run this benchmark with the new version of JumpProcesses? The BuildKite job is still pending. I couldn't get it to cancel or restart.

@ChrisRackauckas
Copy link
Member

I bumped CI so it matches v1.9 as well

@gzagatti
Copy link
Contributor Author

@ChrisRackauckas BuildKite is stuck at Dynamically launch run_tutorial.yml. Is there anything we can do about it?

@ChrisRackauckas ChrisRackauckas merged commit c198112 into SciML:master Jul 25, 2023
@gzagatti gzagatti deleted the coevolve-ii branch July 25, 2023 14:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants