Skip to content

Convex.jl tests very slow with SDPA (also some failures) #17

@ericphanson

Description

@ericphanson

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?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions