Commit 9fd1763
authored
Unified pseudocost object for the regular and deterministic mode (#1020)
This PR simplify the pseudo cost class in such a way that both regular and deterministic B&B use the same code path as much as possible. It also disable mutexes and atomics when running in deterministic mode as each thread has its own snapshot of the pseudocost. It also move the routines related with the diving heuristics back to the `diving_heuristics.cpp`, renamed `branch_and_bound_worker.hpp` to `worker.hpp` to match the new file structure and moved `worker_pool_t` to a dedicated header.
Regular mode (GH200, 10min):
```
================================================================================
main-190326-2 (1) vs simplify-pseudocost (2)
================================================================================
------------------------------------------------------------------------------------------------------------------------------
| | Run 1 | Run 2 | Abs. Diff. | Rel. Diff. (%) |
------------------------------------------------------------------------------------------------------------------------------
| Feasible 226 226 +0 --- |
| Optimal 70 67 -3 --- |
| Solutions with <0.1% primal gap 121 122 +1 --- |
| Nodes explored (mean) 4283972.9121 4455377.8117 +171404.8996 +3.847 |
| Nodes explored (shifted geomean) 6202.3471 7062.2682 +859.9210 +12.176 |
| Relative MIP gap (mean) 0.3382 0.3337 -0.0045 -1.325 |
| Relative MIP gap (shifted geomean) 0.1193 0.1166 -0.0027 -2.293 |
| Solve time (mean) 450.2347 452.9154 +2.6806 +0.592 |
| Solve time (shifted geomean) 221.4772 227.6381 +6.1609 +2.706 |
| Primal gap (mean) 11.4459 11.0482 -0.3976 -3.474 |
| Primal gap (shifted geomean) 0.6591 0.6008 -0.0582 -8.838 |
| Primal integral (mean) 49.9109 54.6941 +4.7832 +8.745 |
| Primal integral (shifted geomean) 11.5672 13.9826 +2.4153 +17.274 |
------------------------------------------------------------------------------------------------------------------------------
```
Determinism mode (GH200, 5min):
```
================================================================================
main-240426-determinism (1) vs simplify-pseudocost-determinism (2)
================================================================================
------------------------------------------------------------------------------------------------------------------------------
| | Run 1 | Run 2 | Abs. Diff. | Rel. Diff. (%) |
------------------------------------------------------------------------------------------------------------------------------
| Feasible 179 179 +0 --- |
| Optimal 45 46 +1 --- |
| Solutions with <0.1% primal gap 64 64 +0 --- |
| Nodes explored (mean) 1.556e+06 1.511e+06 -4.526e+04 -2.91 |
| Nodes explored (shifted geomean) 1895 1900 +5.427 +0.286 |
| Relative MIP gap (mean) 7.038 0.7827 -6.255 -88.9 |
| Relative MIP gap (shifted geomean) 0.2039 0.1841 -0.01984 -9.73 |
| Solve time (mean) 249.5 251.7 +2.153 +0.855 |
| Solve time (shifted geomean) 153.8 160.6 +6.767 +4.22 |
| Primal gap (mean) 39.8 39.43 -0.3723 -0.935 |
| Primal gap (shifted geomean) 5.315 5.314 -0.001059 -0.0199 |
| Primal integral (mean) 292 299.2 +7.201 +2.41 |
| Primal integral (shifted geomean) 49.42 50.91 +1.486 +2.92 |
------------------------------------------------------------------------------------------------------------------------------
```
Authors:
- Nicolas L. Guidotti (https://github.com/nguidotti)
Approvers:
- Alice Boucher (https://github.com/aliceb-nv)
- Trevor McKay (https://github.com/tmckayus)
- Chris Maes (https://github.com/chris-maes)
URL: #10201 parent 285990b commit 9fd1763
13 files changed
Lines changed: 705 additions & 890 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
8 | | - | |
9 | 8 | | |
10 | 9 | | |
11 | 10 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
| 9 | + | |
9 | 10 | | |
10 | 11 | | |
11 | 12 | | |
| |||
35 | 36 | | |
36 | 37 | | |
37 | 38 | | |
38 | | - | |
39 | 39 | | |
40 | 40 | | |
41 | 41 | | |
42 | | - | |
43 | 42 | | |
44 | 43 | | |
45 | 44 | | |
46 | | - | |
47 | 45 | | |
48 | 46 | | |
49 | 47 | | |
| |||
258 | 256 | | |
259 | 257 | | |
260 | 258 | | |
261 | | - | |
| 259 | + | |
262 | 260 | | |
263 | 261 | | |
264 | 262 | | |
| |||
810 | 808 | | |
811 | 809 | | |
812 | 810 | | |
813 | | - | |
| 811 | + | |
814 | 812 | | |
815 | 813 | | |
816 | 814 | | |
| |||
819 | 817 | | |
820 | 818 | | |
821 | 819 | | |
822 | | - | |
| 820 | + | |
823 | 821 | | |
824 | 822 | | |
825 | | - | |
| 823 | + | |
826 | 824 | | |
827 | 825 | | |
828 | 826 | | |
| |||
833 | 831 | | |
834 | 832 | | |
835 | 833 | | |
836 | | - | |
837 | | - | |
838 | | - | |
| 834 | + | |
| 835 | + | |
| 836 | + | |
839 | 837 | | |
840 | 838 | | |
841 | 839 | | |
| |||
848 | 846 | | |
849 | 847 | | |
850 | 848 | | |
851 | | - | |
852 | 849 | | |
853 | 850 | | |
854 | | - | |
855 | 851 | | |
856 | 852 | | |
857 | 853 | | |
858 | | - | |
| 854 | + | |
859 | 855 | | |
860 | 856 | | |
861 | 857 | | |
| |||
880 | 876 | | |
881 | 877 | | |
882 | 878 | | |
883 | | - | |
| 879 | + | |
884 | 880 | | |
885 | 881 | | |
886 | 882 | | |
| |||
907 | 903 | | |
908 | 904 | | |
909 | 905 | | |
910 | | - | |
| 906 | + | |
911 | 907 | | |
912 | 908 | | |
913 | 909 | | |
| |||
952 | 948 | | |
953 | 949 | | |
954 | 950 | | |
955 | | - | |
956 | | - | |
957 | | - | |
| 951 | + | |
958 | 952 | | |
959 | 953 | | |
960 | 954 | | |
| |||
986 | 980 | | |
987 | 981 | | |
988 | 982 | | |
989 | | - | |
| 983 | + | |
990 | 984 | | |
991 | 985 | | |
992 | 986 | | |
| |||
1005 | 999 | | |
1006 | 1000 | | |
1007 | 1001 | | |
1008 | | - | |
| 1002 | + | |
1009 | 1003 | | |
1010 | 1004 | | |
1011 | 1005 | | |
| |||
1049 | 1043 | | |
1050 | 1044 | | |
1051 | 1045 | | |
| 1046 | + | |
| 1047 | + | |
1052 | 1048 | | |
1053 | 1049 | | |
1054 | 1050 | | |
1055 | 1051 | | |
1056 | 1052 | | |
1057 | 1053 | | |
1058 | | - | |
| 1054 | + | |
1059 | 1055 | | |
1060 | 1056 | | |
1061 | 1057 | | |
| |||
1115 | 1111 | | |
1116 | 1112 | | |
1117 | 1113 | | |
| 1114 | + | |
| 1115 | + | |
| 1116 | + | |
1118 | 1117 | | |
1119 | 1118 | | |
1120 | | - | |
| 1119 | + | |
| 1120 | + | |
1121 | 1121 | | |
1122 | 1122 | | |
1123 | | - | |
1124 | | - | |
1125 | | - | |
1126 | | - | |
1127 | | - | |
1128 | | - | |
| 1123 | + | |
1129 | 1124 | | |
1130 | 1125 | | |
1131 | | - | |
| 1126 | + | |
| 1127 | + | |
| 1128 | + | |
| 1129 | + | |
| 1130 | + | |
| 1131 | + | |
| 1132 | + | |
1132 | 1133 | | |
1133 | 1134 | | |
1134 | | - | |
1135 | | - | |
1136 | | - | |
| 1135 | + | |
1137 | 1136 | | |
1138 | 1137 | | |
1139 | 1138 | | |
1140 | 1139 | | |
1141 | 1140 | | |
1142 | 1141 | | |
1143 | 1142 | | |
1144 | | - | |
| 1143 | + | |
1145 | 1144 | | |
1146 | 1145 | | |
1147 | 1146 | | |
| |||
1153 | 1152 | | |
1154 | 1153 | | |
1155 | 1154 | | |
1156 | | - | |
| 1155 | + | |
1157 | 1156 | | |
1158 | 1157 | | |
1159 | | - | |
| 1158 | + | |
1160 | 1159 | | |
1161 | 1160 | | |
1162 | 1161 | | |
| |||
1175 | 1174 | | |
1176 | 1175 | | |
1177 | 1176 | | |
1178 | | - | |
| 1177 | + | |
1179 | 1178 | | |
1180 | 1179 | | |
1181 | 1180 | | |
| |||
1187 | 1186 | | |
1188 | 1187 | | |
1189 | 1188 | | |
1190 | | - | |
| 1189 | + | |
| 1190 | + | |
| 1191 | + | |
| 1192 | + | |
1191 | 1193 | | |
1192 | 1194 | | |
1193 | 1195 | | |
| |||
1245 | 1247 | | |
1246 | 1248 | | |
1247 | 1249 | | |
1248 | | - | |
| 1250 | + | |
1249 | 1251 | | |
1250 | 1252 | | |
| 1253 | + | |
| 1254 | + | |
1251 | 1255 | | |
1252 | 1256 | | |
1253 | 1257 | | |
| |||
1284 | 1288 | | |
1285 | 1289 | | |
1286 | 1290 | | |
1287 | | - | |
| 1291 | + | |
1288 | 1292 | | |
1289 | 1293 | | |
1290 | 1294 | | |
| |||
1377 | 1381 | | |
1378 | 1382 | | |
1379 | 1383 | | |
1380 | | - | |
| 1384 | + | |
1381 | 1385 | | |
1382 | 1386 | | |
1383 | 1387 | | |
| |||
1511 | 1515 | | |
1512 | 1516 | | |
1513 | 1517 | | |
1514 | | - | |
| 1518 | + | |
1515 | 1519 | | |
1516 | 1520 | | |
1517 | 1521 | | |
| |||
1623 | 1627 | | |
1624 | 1628 | | |
1625 | 1629 | | |
1626 | | - | |
| 1630 | + | |
1627 | 1631 | | |
1628 | 1632 | | |
1629 | 1633 | | |
| |||
2507 | 2511 | | |
2508 | 2512 | | |
2509 | 2513 | | |
2510 | | - | |
| 2514 | + | |
2511 | 2515 | | |
2512 | 2516 | | |
2513 | 2517 | | |
| |||
2578 | 2582 | | |
2579 | 2583 | | |
2580 | 2584 | | |
2581 | | - | |
| 2585 | + | |
2582 | 2586 | | |
2583 | 2587 | | |
2584 | 2588 | | |
| |||
3322 | 3326 | | |
3323 | 3327 | | |
3324 | 3328 | | |
3325 | | - | |
3326 | | - | |
3327 | | - | |
3328 | | - | |
3329 | | - | |
| 3329 | + | |
| 3330 | + | |
| 3331 | + | |
| 3332 | + | |
| 3333 | + | |
| 3334 | + | |
3330 | 3335 | | |
3331 | 3336 | | |
3332 | 3337 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
11 | | - | |
12 | 11 | | |
13 | | - | |
14 | 12 | | |
15 | 13 | | |
16 | 14 | | |
| 15 | + | |
| 16 | + | |
17 | 17 | | |
18 | 18 | | |
19 | 19 | | |
| |||
318 | 318 | | |
319 | 319 | | |
320 | 320 | | |
321 | | - | |
| 321 | + | |
322 | 322 | | |
323 | 323 | | |
324 | 324 | | |
325 | 325 | | |
326 | 326 | | |
327 | 327 | | |
328 | 328 | | |
329 | | - | |
| 329 | + | |
330 | 330 | | |
331 | 331 | | |
332 | 332 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
0 commit comments