-
Notifications
You must be signed in to change notification settings - Fork 27
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
very slow transfer from JuMP to SCS? #266
Comments
Upon killing the process I got this:
so the qdldl factorisation seems to struggle with problems of such sizes: ok, I think this is more of a scs issue, and no printout wass related to buffered io; I managed to capture the following header when directly logging to a file:
|
Try the MKL linear solver backend, it tends to be faster for fractorizing very large matrices. |
@bodono that's what I did! |
Great, glad to hear it worked well! Was SCS able to solve the problem in the end? |
well, it will take scs some time to finish :)
(to certify the solution I need |
so the convergence of scs is pretty slow, but when I had added (an artificial) bound on the objective <=1.0 (to get a feasible solution) it solved the problem immediately!
|
I guess "immediately" is relative 😆 |
Woah! So adding a redundant constraint actually improved performance? That's wild. This could open up a whole new line of research. |
I think the constraint is not really redundant: previously I had
now instead of asking for
Is this what what you meant by "redundant"? I've already noted much earlier (2017? :) that approaching this way the maximum (from below) is sometimes much faster than running scs directly with |
Oh I see, I thought the constraint was redundant because the objective is -1 and the constraint was t <= 1, but I see you're doing a maximization problem. Does approaching from below involve solving a series of these problems and using warm-starting etc? Is it faster than just solving the problem directly? |
Yes, I think JuMP reformulates the problem and flips some signs so that maximization becomes minimization etc. In particular SCS reports negative objective when JuMP.objective_value(model)` is positive. Sorry for the confusion. The problem SCS sees looks is
Yes, I know that my problem will have a (trivial) solution when So sometimes I start with |
I'm actually not sure if this is the correct place to report this, but here it is:
My problem has a single psd constraint of size 7_381 with 22_043_332 linear constraints (veeeery sparse ones). After preprocessing (i.e. symmetry reduction:) I get 10 psd constraints of sizes
and
459_849
(somewhat denser, but still on average1e-4
to1e-5
density) constraints.The latter problem I can create easily in JuMP (it takes about ~75 minutes). However calling
optimize!
withSCS.Optimizer
attached results inHowever I believe all of this happens before the problem is handled to
libscs
(e.g. I get no printout of SCS header).Are these reasonable sizes for JuMP/MOI/bridges (? I'm shooting in the dark here) to behave well? Where should I start debugging?
@odow, @blegat
The text was updated successfully, but these errors were encountered: