-
Notifications
You must be signed in to change notification settings - Fork 136
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
Performance issues with SCS 2.1.4 vs 2.1.2 #170
Comments
That's very strange because the main changes between those two tags are to the GPU solver (which I presume you're not using here) and adding the cmake install option (which doesn't affect python). No core part of SCS was changed. Can you run cvxpy with Here is the list of files changed between those two tags:
|
Here's the output with 2.1.2 :
Lin-sys: sparse-direct, nnz in A = 35307 Iter | pri res | dua res | rel gap | pri obj | dua obj | kap/tau | time (s)
100| 7.55e-05 1.00e-04 4.85e-01 -9.35e-01 7.26e-03 2.09e-13 1.31e-01 Status: Solved/Inaccurate Error metrics: c'x = 0.0011, -b'y = 0.0034 And here it is with 2.1.4 :SCS v2.1.4 - Splitting Conic Solver Lin-sys: sparse-direct, nnz in A = 35307 Iter | pri res | dua res | rel gap | pri obj | dua obj | kap/tau | time (s)
100| 7.55e-05 1.00e-04 4.85e-01 -9.35e-01 7.26e-03 1.79e-11 2.33e-01 Status: Solved/Inaccurate Error metrics: |
To my eye those outputs look identical (except for timing etc). Could it be something changed inside cvxpy? |
I investigated a bit further, and it might indeed be because of cvxpy. I thought I had 1.1.7 installed in both of my environment, but in fact what is listed in my conda environment isn't what is actually used. By the way, I noticed that installing scs through pip didn't work, as in the installation is marked as completed but running a script using SCS freezes because "SCS is not installed". |
Specifications
Description
Using SCS 2.1.4 with
cvxpy
is significantly slower than with 2.1.2, and sometimes even fails.Additional information
My particular use case requires pretty intense calculations with
cvxpy
.ECOS
was selected by default but I had to switch toSCS
because it couldn't handle some of the larger tasks.While switching from Windows to an Ubuntu-based OS, I ran a reproducibility test to check if everything worked as expected. However, the part of my script that calls
cvxpy
was significantly slower, and failed at some point. I investigated further, and I noticed than when reinstallingcvxpy
throughconda
, it automatically installed the latest version ofSCS
, while my previous environment usedSCS
2.1.2. Switching back to that version solved the issue.As this issue is probably specific to the problem and data I'm working with, I am just wondering if there any release notes or summary of what changed between those two versions ? I have tried looking at PRs and issues, but the only thing I could find was comparing files between the two branches, and trying to understand that kind of code is well above my abilities.
Edit : I looked a bit further into CPU usage, running a specific task with
SCS
2.1.2 makes the CPU spike at about 55%, while running the same task withSCS
2.1.4 makes the CPU max out at 99 to 100%, constantly. I am using an Intel i7-10810U.The text was updated successfully, but these errors were encountered: