-
Notifications
You must be signed in to change notification settings - Fork 4
Description
I (and a summer student) are interested in getting SDPA-GMP working with Convex.jl, and I thought the place to start would be with SDPA. I tried running Convex.jl's tests with the solver set to SDPA under each of the three modes. Each test run had access to four processors on the same SLURM cluster (you can see the submit scripts and everything here: https://github.com/ericphanson/HP_SDPs_fawcett/tree/master/testing-SDPA). These are the results:
Mode | Time to finish tests | Tests failed (of 375) | Log |
---|---|---|---|
PARAMETER_DEFAULT | 8h 39 | 13 | test1 |
PARAMETER_UNSTABLE_BUT_FAST | 6h 25 | 2 | test2 |
PARAMETER_STABLE_BUT_SLOW | 5h 22 | 73 | test3 |
I haven't had time to check each failure, but all the ones I scanned through were tolerance failures (the optimal values or values for the variables were not close enough to the true ones or to those obtained by solving the problem another way).
These results seemed pretty strange to me. PARAMETER_UNSTABLE_BUT_FAST
had the fewest failures, but from the name I assumed it would have the most. And PARAMETER_STABLE_BUT_SLOW
had the most failures and ran the fastest (and some of the failures looked quite bad: Evaluated: -265.0031579792031 ≈ 0 (atol=0.001)
).
I'm worried about both the test failures and the run time (in comparison, ECOS and SCS pass the tests, and the complete test run finishes in ~4 minutes on travis: https://travis-ci.org/JuliaOpt/Convex.jl/builds/543652452). One thing I noticed is that SDPA seemed to be running single-threaded, no matter how I set the environmental variable OMP_NUM_THREADS
that the SDPA manual suggested using. The manual also mentioned that linking against different BLAS versions could speed it up by a lot.
Do you know why I would be getting these failures and slow run times? Are there things I can do to try to improve it?