Gurobi and checkpoints?
AnsweredHi Gurobi users,
Are there any possibilities to write checkpoints* from a given progress / iteration of computing (very big/long task) even from the Python code level?
*as checkpoint I understand a copy of all data / variables from the solver to a file that allows us to resume calculations afterwards (eg after interruption / after technical failures).
What are the possibilities in Gurobi?
Thank you!
-
Hi Lukasz,
Unfortunately, this is not currently possible in Gurobi 8.1.1, but I've made a note of your request as a feature request, still, I can not promise it will be part of the next release....
1 -
Hi all,
Is there a status update concerning this topic? Is the functionality available in any version of gurobi?
I would really like to use this functionality since otherwise I cannot solve large instances on my system. I am working in an HPC environment. I am facing strict maximal walltimes and would like to continue the calculation with my next job.
Best wishes.
1 -
Dear Gurobi team,
we are using Gurobi on high performance computers (HPC) in a large research project. As mentioned by another commenter, HPC systems often have time-limits. As a result, certain problems cannot be solved with Gurobi on these systems. A caching system that always to halt and resume the optimization would be very beneficial for the community.
Best regards
1 -
Hi Andreas and Jan,
my guess is that you are talking about storing the solving state of a MIP solve to a file, i.e., the full search tree plus all the additional information like cuts and pseudo costs that have been collected during the search.
Unfortunately, this is not possible in Gurobi. CPLEX had this feature a long time ago (I think until version 10.0) and then dropped it because it was really hard to support.
The only thing that you can do is to store all the feasible solutions that are found during the solving process. This can be done either with a callback function or with the "SolFiles" parameter, see https://www.gurobi.com/documentation/9.1/refman/solfiles.html
When you want to "resume" an aborted optimization job, you would then provide these solutions (or just the last, i.e., best solution) to the new optimization as a MIP start. Then, it would use this as incumbent solution so that you recover the primal progress. But on the dual side, there is unfortunately not much you can do. The search tree needs to be constructed again from scratch.
Regards,
Tobias
0
Please sign in to leave a comment.
Comments
4 comments