Add closed-form SOC step-size computation#59
Conversation
Download benchmark artifactsBenchmark Summary
Runtime regressions (> 5.0%)
Runtime improvements (> 5.0%)
|
|
@JonasBreuling Do you see better performance on your SOCPs with this branch? |
|
I can check this tomorrow. But my hope is to improve robustness and getting rid of another paramer that has to be chosen. |
Great let me know when you get around to it and if it works. In the meantime I'll make the changes on the GPU side and check for regressions there. If you see improved performance on your problems tomorrow I'll merge and make a new release. |
Download benchmark artifactsBenchmark Summary
Runtime regressions (> 5.0%)
Runtime improvements (> 5.0%)
|
Download benchmark artifactsBenchmark Summary
Runtime regressions (> 5.0%)
Runtime improvements (> 5.0%)
|
Download benchmark artifactsBenchmark Summary
Runtime regressions (> 5.0%)
Runtime improvements (> 5.0%)
|
Download benchmark artifactsBenchmark Summary
Runtime regressions (> 5.0%)
Runtime improvements (> 5.0%)
|
Download benchmark artifactsBenchmark Summary
Runtime regressions (> 5.0%)
Runtime improvements (> 5.0%)
|
Download benchmark artifactsBenchmark Summary
Runtime regressions (> 5.0%)
Runtime improvements (> 5.0%)
|
Download benchmark artifactsBenchmark Summary
Runtime regressions (> 5.0%)
Runtime improvements (> 5.0%)
|
It works for my systems. The overall runtime is is slightly reduced and the stability is of the same order. I'm also using the Clarabel solver, which seems to be more stable in situations with tight tolerances. Do you know which features they may have implemented that improve stability? Possibly the broken equilibration step? |
|
How much is runtime reduced by? I think equilibration is one factor that should help. Unfortunately every time I enable it, I see worse robustness on the Maros-Mészáros problem. Another thing that may be a factor is the accuracy of the linear system solve. If you increase the number of iterative refinement iterations, QOCO should be more robust. I do have a logging PR out for QOCO as well which I am hoping will help diagnose robustness issues. |
Runtime is reduce by a few percents. So actually it is not really worth it. I think Clarabel also used qldlt by default. So it should be comparable. But I can use really small static/dynamic regularization. QOCO requires larger values to remain stable. Hence, many iterative refinement steps are required to ensure tight tolerances can be met. But most of the time the solver diverges and cannot met the tolerances unless very specific tuning of regularization and iterative refinement is done |
|
I suppose the purpose of the exact line search is to remove the bisection parameter, so speedups isn't the primary purpose, so this feature is still useful. I feel like if there are robustness issues with QOCO it must stem from the linear system solve. Of course Clarabel does Ruiz but QOCO doesn't which is one explanation. I think this will require a bit more digging, since pretty much all solvers but QOCO use Ruiz, so it should be helping. |
See Issue: #57 by @JonasBreuling
TODO:
cone.cu