# Deterministic termination criteria for CBC

I'm running CBC on problems for which not always an integer solution can be found in a given time, so the command line option sec 120 is set (2 minutes maximum). The random seeds are also set to avoid that the same run returns different results (randomCbcSeed 42 randomSeed 42).

However, I found that this still returns non-deterministic results as the the 2min timeout is pretty sensitive to CPU load (~CPU time ~solve time). In fact, I noticed that when running lots of independent CBC runs in parallel (on a CI server which is also shared across other users), this issue is exacerbated. Slower hardware may also return different results than faster hardware which is also a problem for my use case.

Is there any another definitely deterministic way to terminate CBC prematurely so that it always returns the same results (I don't mind if it's a few seconds or minutes more or less than the specified timeout, but stable results are pretty essential for me)?

• @Psyndrom Ventura: Do you know if the node inspection time is roughly the same across different problems (i.e. does it always take the same time on the same machine to inspect 1000 nodes for instance)? What I'd like to know is whether I can use this maxN parameter as proxy for the execution time or will one problem instance with maxN 50000 take 10 minutes to solve and another one 20 seconds? May 14 '20 at 22:48