In its current state, when the simulation runs out of free event buffers, ROSS throws an error suggesting increasing --extramem= and exiting the simulation, requiring that the user try increasing this parameter and restarting.
Would it be possible to instead force a premature GVT update at this point to do some stale event recollection to see if this resolves the issue and then resume the simulation?
There should still probably be some stdout warning about what happened so that the user can know why their simulation is taking a lot of time if this forced GVT update happens really frequently. Maybe make this an opt-in feature via a command line argument so that a user who knows the risk of turning their optimistic simulation into something potentially worse than conservative if --extramem isn't set appropriately. But it might be better than killing a potentially 10 hour long running simulation.
There will need to be a check to see if the time since the last GVT is 0 to prevent the endless loop of "Out of events, perform GVT to recollect, still out of events, perform GVT to recollect..."
In its current state, when the simulation runs out of free event buffers, ROSS throws an error suggesting increasing
--extramem=and exiting the simulation, requiring that the user try increasing this parameter and restarting.Would it be possible to instead force a premature GVT update at this point to do some stale event recollection to see if this resolves the issue and then resume the simulation?
There should still probably be some stdout warning about what happened so that the user can know why their simulation is taking a lot of time if this forced GVT update happens really frequently. Maybe make this an opt-in feature via a command line argument so that a user who knows the risk of turning their optimistic simulation into something potentially worse than conservative if
--extramemisn't set appropriately. But it might be better than killing a potentially 10 hour long running simulation.There will need to be a check to see if the time since the last GVT is 0 to prevent the endless loop of "Out of events, perform GVT to recollect, still out of events, perform GVT to recollect..."