I have recently switched from Gurobi to CPLEX and am very surprised I found several instances where all ticks and CPU time is spent at Root node processing and more disconcerting the total time (before B&C and root node) is extremely higher than my set time limit.
i.e.
Root node processing (before b&c):
Real time = 4035.04 sec. (2046454.85 ticks)
And
CPXPARAM_TimeLimit 900
I expected the model to solve within 15 minutes (900s) which is not the case at all! How can I tell CPLEX that I want the total solve time to be lesser than a given amount of seconds? I do not remember having such issue in Gurobi.
Version identifier: 12.10.0.0 | 2019-11-26 | 843d4de
CPXPARAM_Threads 4
CPXPARAM_TimeLimit 900
CPXPARAM_MIP_Tolerances_MIPGap 0.01
Found incumbent of value 0.000000 after 0.11 sec. (49.96 ticks)
Tried aggregator 1 time.
Reduced MIP has 8479 rows, 1993750 columns, and 5981010 nonzeros.
Reduced MIP has 1993750 binaries, 0 generals, 0 SOSs, and 0 indicators.
Presolve time = 8.87 sec. (2176.17 ticks)
Tried aggregator 1 time.
Detecting symmetries...
Elapsed time for symmetry detection = 9.79 sec. (10016.50 ticks)
Found 3.388971e+10070 symmetric permutations.
Reduced MIP has 8479 rows, 1993750 columns, and 5981010 nonzeros.
Reduced MIP has 1993750 binaries, 0 generals, 0 SOSs, and 0 indicators.
Presolve time = 27.84 sec. (18181.09 ticks)
Probing time = 2.73 sec. (337.13 ticks)
Clique table members: 3866669.
MIP emphasis: balance optimality and feasibility.
MIP search method: dynamic search.
Parallel mode: deterministic, using up to 4 threads.
Root relaxation solution time = 52.37 sec. (26532.65 ticks)
Nodes Cuts/
Node Left Objective IInf Best Integer Best Bound ItCnt Gap
* 0+ 0 0.0000 2188691.8597 ---
* 0+ 0 33835.2070 2188691.8597 ---
* 0+ 0 34473.5731 2188691.8597 ---
0 0 1450634.2495 191 34473.5731 1450634.2495 59 ---
* 0+ 0 1366924.0628 1450634.2495 6.12%
0 0 1444294.5449 191 1366924.0628 Cuts: 2219 50336 5.66%
0 0 1441334.5073 191 1366924.0628 Cuts: 2219 101597 5.44%
Clique cuts applied: 415
Mixed integer rounding cuts applied: 100
Zero-half cuts applied: 22
Root node processing (before b&c):
Real time = 4035.04 sec. (2046454.85 ticks)
Parallel b&c, 4 threads:
Real time = 0.00 sec. (0.00 ticks)
Sync time (average) = 0.00 sec.
Wait time (average) = 0.00 sec.
------------
Total (root+branch&cut) = 4035.04 sec. (2046454.85 ticks)
termination_status(model) = MathOptInterface.TIME_LIMIT
It seems that this issue was known 5 years ago in the following StackOverflow post:
However, there are no answers to this question