Finding that the lineup CVX-3.0, Octave-4.0.0, Cygwin, windoze was a bit flaky (for some strange reason, opening my ~large csv output file in excel, then saving it under a different name “unblocked” octave in this config - any suggestions? weird, I was fflushing all the way…) I decided to brave a linux variant in a VM, and started again.
I picked a 32-bit Debian Jessie, and had to build Octave-4.0 and CVX again, and SeDuMi, SDPT3… Similar issues, this time I had to build openBLAS locally as well, because debian packages lag many revisions behind, and the debian package installer just never seemed to be able to pull in openBLAS to CVX’s satisfaction. But mostly it was the basic job of tracking down missing dependencies, using git, apt-get, wget, etc to pull stuff in, running make…
Long story short, it came up and was more stable (and faster!) under linux on a VM than in cygwin.
On Michael’s advice, I sought out the ECOS solver, and just now got it to compile and run ~clean as a CVX solver. A couple of issues here as well, not sure if it is ECOS/CVX, or CVX/Octave, or whatever, but posting here:
-
make sure CVX finds the right ECOS shim, the one that ships with CVX 3.0. The shim structure has changed, and there is an old 2.x style shim in the ECOS directories that can confuse CVX 3.0 if it picks it because of path search precedence.
-
there is also a library dependency (on the libut.so library) include directive in make_mex.m ("-lut" option) that I could’t resolve - these must be Matlab libs. I crossed my fingers, commented out the only reference I found, in “ctrlc.c” in ECOS/src, but of course it barfed when actually run from CVX (though ECOS seemed to run OK on native Octave). There seems to be lots of discussion about ctrl-c script interrupt when using the new Octave GUI. I chose to unblock some simple testing using ECOS by pulling the “#ifdef UNIX” code up to the Matlab section in ctrlc.c, tweaked it a bit to align with the Matlab vars, re-compiled ECOS, reran make_mex.m and cvx_setup, and got CVX to use ECOS ok, except that when I actually hit ctrl-c to the octave (GUI) command window, I hung the GUI.
Anyone out there know how to solve that last issue - to get decent ctrl-c handling for ECOS+CVX3.0 on Octave 4.0 using the new GUI?
cheers,
ben