Hi all. Is there a way to set time limit for JuMP models using CBC solver?
The “seconds” parameter only limits CPU seconds, which is different from Wallclock seconds.
I need to set a limit for Wallclock second!
Thanks
I don’t think so. Is the difference big?
Note that there is some time spent in JuMP setting up the problem that you will see in a call to optimize!(model)
that is not captured by the time limit. Is that what you are observing?
I don’t think so. Attached the screenshot of what’s happening.
As you can see I set “seconds” to 120, but I think CPU seconds are counted.
I don’t know if there is a way make the time limit the wallclock.You could just increase the time limit to account for the multiple threads?
Note that even if you set a time limit, the solver will not stop immediately, but instead at the next available opportunity. (i.e., it stopped at 156 seconds, not 120).
What are you trying to achieve?
I am doing some experiments on solving optimization problems when there is lack of resources, especially when there is time limit. I am trying to see how suboptimal the solutions are, depending on different time limits.
Note that there are plenty of issues to be aware of when trying to do this.
- Solvers might not respect time limits the same way.
- Insights are problem dependent.
- Solving the same model with the same solver and a longer time limit is not guaranteed to get a better answer.
See this slide deck for some of the pitfalls: https://school.a4cp.org/summer2017/slidedecks/Consistency-in-Solvers.pdf
Wow did not know about these issues!
Thank you so much for the tips!