Dear all,
I understand that this is an old question asked seveal times on the forum, but with recent releases of native Apple Silicon binaries for MATLAB, Mosek, and Gurobi (and with my experimenting with SDPT3 at least working), I figured it might be worthwhile to perhaps again ask about it just in case.
So, basically, I have an M-series chip and so far CVX (with native SDPT3, with Mosek and Gurobi) has worked really well using the Rosetta translation layer. However, with MATLAB and Mosek now both supporting Apple Silicon, I’m thinking about whether I can get better calculation speed using native binaries with CVX.
I used the CVX2 version with only open-source solvers, and used the ARM version of MATLAB Coder to manually compile the MEX files (including cvx_bcompress and cvx_eliminate in cvx/lib, and the SDPT3 related ones in cvx/sdpt3/Solver/Mexfun) and it seems CVX is running just fine and the solutions are correct.
However, my question is, now if I want to use the other commercial solvers, particularly Mosek, cvx_setup doesn’t seem to see the Mosek installation (whether I include the path in MATLAB or directly put the dylib and mex files in the CVX directory), and it only sees SDPT3 and SeDuMi. I’m wondering if this has something to do with the open-source-solver CVX version has some kind of preference/manifest (e.g. in cvx_version or in cvx_prefs.mat) that only enumerates the two solver names and doesn’t include Mosek/Gurobi? If so, is there someway one can manually add the commercial solver names so that CVX searches for them?
Alternatively, I also tried to directly use CVX with commercial solvers and swapping out the dylib and mex files with ARM versions, but unfortuantely that doesn’t pass the check in cvx_setup:
UNEXPECTED ERROR: ------------------------------
Unrecognized function or variable ‘command_str’.
Error in cvx_license
Error in cvx_license
Error in cvx_version (line 309)
cvx_license( args{:} );
Error in cvx_setup (line 20)
cvx_version( ‘-install’, varargin{:} );
Looking forward to your thoughts! Thanks a lot.
Regards,
Mike