soplex
soplex copied to clipboard
High runtime of `_rationalLUSolver.clear()` in `SoPlexBase<R>::_changeLhsReal()`
Hi all,
we run SoPlex on relatively small LPs where we solve the same constraints with different bounds several times per second. I realize that such small LPs are a bit of a niche use case but one thing we noticed in a profile was that updating the bounds took a surprisingly long time (~14% of the total time). Most of time was spent in _rationalLUSolver.clear()
. This sounds related to SYNCMODE
which we had set to SYNCMODE_ONLYREAL
(as well as SOLVEMODE
and CHECKMODE
).
We also saw a large overhead in storing the solution (SoPlexBase::_storeSolutionReal
, 8% of total time) and the solve itself took much longer than with our baseline of SoPlex 3 (we are in the process of upgrading from v3 to v6, so the baseline is v3 and the version where we experience the slowdown is the latest version on the main branch here).
Can either of these overheads be avoided in some way? I'm attaching the profile in case you are interested: callgrind.out.303286.log