Originally posted by: SystemAdmin
Good evening,
Sorry to bother those who are not interested...
I am having difficulies when trying to solve a huge MIP model, which contains millions of non-zeros, about 200,000 of them are binary variables. However, most of these binaries are supposed to be 0, only 200 or 300 of them might be 1. And these binaries have a pretty straightforward linear equality relationship, means that they are not independent. I estimated that only 12,000 of them are independent binary decision variables. Besides, we only need to find a feasible solution which is not too ridiculous...Thus, my question is, is it still possible to get a such a solution using Cplex 12.5? What parameters should I change to achieve better computing performance?
Currently we are using a 32 threads, 126GB memory server to solve this monster model. I already changed several parameters:
CPLEX Parameter File Version 12.5.0.0
CPX_PARAM_LPMETHOD 4
CPX_PARAM_APIENCODING "UTF-8"
CPX_PARAM_EPRELAX 1.00000000000000e-03
CPX_PARAM_PARALLELMODE -1
CPX_PARAM_EPGAP 1.00000000000000e-01
CPX_PARAM_EPINT 1.00000000000000e-02
CPX_PARAM_RELOBJDIF 2.00000000000000e-02
CPX_PARAM_MIPEMPHASIS 3
CPX_PARAM_NETEPOPT 1.00000000000000e-03
CPX_PARAM_NETEPRHS 1.00000000000000e-03
I did try it several times on the server, and it went through the below information:
Presolve has improved bounds 2744926 times...
Tried aggregator 3 times.
MIP Presolve eliminated 402796 rows and 460707 columns.
MIP Presolve modified 828008 coefficients.
Aggregator did 127631 substitutions.
Reduced MIP has 2065593 rows, 1900906 columns, and 8518547 nonzeros.
Reduced MIP has 136392 binaries, 0 generals, 0 SOSs, and 0 indicators.
Presolve time = 47.09 sec. (16424.70 ticks)
Probing fixed 0 vars, tightened 302088 bounds.
Probing time = 49.32 sec. (9792.64 ticks)
Tried aggregator 2 times.
MIP Presolve eliminated 8256 rows and 7158 columns.
MIP Presolve modified 596352 coefficients.
Aggregator did 2544 substitutions.
Reduced MIP has 2054793 rows, 1891204 columns, and 8476991 nonzeros.
Reduced MIP has 134322 binaries, 0 generals, 0 SOSs, and 0 indicators.
Presolve time = 11.99 sec. (4339.51 ticks)
Probing time = 45.19 sec. (6310.91 ticks)
Clique table members: 39208.
MIP emphasis: best bound.
MIP search method: dynamic search.
Parallel mode: opportunistic, using up to 32 threads.
Then it will stuck here for a long time, during which the CPU usage is about 90%. However, if it went through and continue to the below:
Root relaxation solution time = 3528.64 sec. (174932.36 ticks)
Nodes Cuts/
Node Left Objective IInf Best Integer Best Bound ItCnt Gap
-
0+ 0 2.03343e+07 3072.1983 153 99.98%
0 0 1221444.0634 3906 2.03343e+07 1221444.0634 153 93.99%
0 0 1222795.2941 4008 2.03343e+07 Cuts: 8974 185510 93.99%
0 0 1223238.0922 4193 2.03343e+07 Cuts: 8401 342845 93.98%
0 0 1223465.1370 4540 2.03343e+07 Cuts: 7115 501790 93.98%
Then the CPU usage drops to 100% or so, and the progress is slow.
So should I change any parameters to improve CPU usage in order to achieve best performance? I appreciate it very much if somebody could provide any suggestions on setting up the parameters. Thank you so much for your time in advance.
#CPLEXOptimizers#DecisionOptimization