Conversation
| void undo(const HighsOptions& options, HighsSolution& solution, | ||
| HighsBasis& basis, const HighsInt report_col = -1) { | ||
| reductionValues.resetPosition(); | ||
| HighsBasis& basis, const HighsInt report_col = -1, |
There was a problem hiding this comment.
Why is this needed? Don't the workers have separate postsolve stacks?
There was a problem hiding this comment.
The workers don't have separate postsolve stacks. The current undo function is changing some global data structures, so you can't call undo on two different threads simultaneously.
This change is adding an argument so it does everything on copied data.
highs/presolve/HPresolve.cpp
Outdated
| mipsolver->mipdata_->implications.rebuild(model->num_col_, newColIndex, | ||
| newRowIndex); | ||
| mipsolver->mipdata_->cutpool = | ||
| // TODO: Find a sensible way to do this |
There was a problem hiding this comment.
Are you deleting the cut pool?
There was a problem hiding this comment.
Yup! This was done before and I didn't see a need to change the workflow.
I had to get creative here because the std::atomic in HighsCutPool. I didn't want to change cutpool to a ptr in HighsMipData either (wanted to keep it as a reference). I'm happy with any ideas here as I think the current thing looks ugly (even if it works).
|
@Opt-Mucca I've merged latest into this branch to see whether all the CI tests pass |
No description provided.