-
Notifications
You must be signed in to change notification settings - Fork 3
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
Save States Patches + Misc. #153
Conversation
Hmm, it isn't clear why pytest failed. Maybe try to re-run?
|
@@ -149,7 +149,7 @@ def __init__(self, parameters=None): | |||
'jitter_force': jitter_force, | |||
'bounds': remove_units(self.bounds), | |||
'barriers': self.mother_machine, | |||
'physics_dt': self.parameters['time_step'] / 10, | |||
'physics_dt': self.parameters['timestep'] / 10, |
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.
oh, sorry for changing the parameter name. It's for the greater good!
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.
Looks good to me. I'll re-run the pytest -- looks like it was killed for some unknown reason.
|
@matt-wolff any new tests added that might be taking a lot of memory? |
I tried starting a sim from a saved state after merging fce79ed into |
When we load a saved state, we have to be sure we don't use the same seed that we used to generate the state. Otherwise, the unique molecule IDs will clash. We avoid this by adding the time at which the state was saved to the seed.
In the saved state, `evolvers_ran` might be false. In that case, since `Evolver.process.request_set` is also false, we can get an endless loop of requesters and evolvers waiting for the other to run. To break this loop, we run the requesters whenever `request_set` is false.
When loading a saved colony state, we were failing to correctly initialize the exchange data. In the process of fixing that, we also had to move where we deserialize the saved state to deserialize before setting the exchange data because the exchange data contains a set, which our serializers don't understand.
Requires PR vivarium-collective/vivarium-core#198, which introduces process commands. The process commands interface lets us retrieve internal state from parallelized EngineProcess instances.
I just pushed a commit that requires vivarium-collective/vivarium-core#198, so I expect the tests to fail |
Upgrade fixes a bug where arrow would hang.
In 492dc42, we solved the problem of neither Evolvers nor Requesters running by running calculate_request() an extra time in the Evolver. However, this meant that a request was generated without the Allocator running, which caused the simulation to crash. Instead, this commit fixes the problem by ensuring that evolvers_ran is not saved when saving states.
Holding off on merging this to avoid changing the codebase too much while @thalassemia is getting started |
save_times
in ecoli configs is loaded into a simulation so that no duplicate states are saved.get_value()
.criticalMassPerOriC
evolvers_ran
andEvolver.process.request_set
are both false