[Ipopt] Warm start in Ipopt in C++

Stefan Vigerske stefan at math.hu-berlin.de
Mon Jan 5 04:43:04 EST 2015


I think there is nothing to save the complete Ipopt state and restart it 
from there. The best you can currently do is to save primal and dual 
solution vectors in the intermediate_callback function and pass them to 
Ipopt again during get_starting_point.
You would also have to set the warm_start_init_point point for the 
restart. Some more advice on options settings for warmstarts is given at 
http://www.coin-or.org/Ipopt/documentation/node32.html. Also setting the 
bound_push and bound_frac options from 
http://www.coin-or.org/Ipopt/documentation/node44.html can be useful to 
avoid that Ipopt pushes the starting point into the interior.
Finally, note that in the intermediate_callback, you can access the 
current solution only w.r.t. the internal representation of the NLP, see 

Hope that helps,

On 12/31/2014 09:13 PM, Panos Lambrianides wrote:
> Hello everyone,
> Happy new year.
> I was wondering if anyone on the list would be kind enough to send me some
> sample code or point me to a sample of how to do a warm start in Ipopt
> using the C++ interface.  I couldn't find anything online.
> I am doing large scale GPU optimization and sometimes the GPUs hang and I
> have to restart.  In particular I am interested about how to save all the
> metadata so that Ipopt can restart from the latest termination point.
> Warmest wishes,
> _______________________________________________
> Ipopt mailing list
> Ipopt at list.coin-or.org
> http://list.coin-or.org/mailman/listinfo/ipopt

More information about the Ipopt mailing list