[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 

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 

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

More information about the Ipopt mailing list