[Ipopt] Finding bottlenecks in ipopt?

Sebastian Edman edse at edman.de
Mon Dec 14 15:15:34 EST 2015


Hi Ipopters,

I've searched the net for a good solver to solve simple convex quadratic 
sub problems (about 2-200 variables each), with box constraints. For 
each main problem there will be about 10'000 to a 100'000 sub problems 
as described above. There is no need for a high precision solution, the 
most important thing right now is speed. I have successfully implemented 
Ipopt in C# (using csipopt) and it is working but it seems to be an 
overhead somewhere (if I extract one of the subproblems and run it 
separately the output file says that it used about 0.015 seconds for 
precessing the problem, but still I can only process 1-2 sub problems 
per second).

I'm using the csipopt library (very similar to the C++ interface, using 
ipopt 3.11.0 dll) and I've provided an eval_f, eval_grad_f and eval_h. I 
have no eval_g and eval_jac_g since i use variable bounds for my box 
constraints.

I'm using the following options (in code)
"derivative_test", "first-order"
"tol", 1e-3
"print_level", 0
"option_file_name", ""
"print_options_documentation", "no"

I've not specified a solver explicitly, I assume that MUMPS is used. 
When I tried to specify another solver, I only got garbage back (I 
cannot remember now if it was errors or simply not the correct solution).

Have I chosen the right approach by using ipopt? Should I use another 
ipopt solver for my problems? Can I add more options to speed up the 
calculations? How do I turn off config file loading and output file 
writing completely or are the above enough? Are eval_g and eval_jac_g 
required for fast processing? Are there other overheads that I can turn 
off?

Right now I'm trying to see the end of the tunnel but its quite dark, it 
would be nice to see if I'm traversing in the right direction ;)

Thanks on beforhand
Sebastian


More information about the Ipopt mailing list