Rough investigation: Open-source solver time and memory penalties
#22
Great work guys! I'm trying to follow along. From having a play, it looks like the ~34 lines of code defining the Process Transformation constraints are the biggest bottleneck now, together with the Process Flow Shares ones.

Create model: 0.000072 seconds (86 allocations: 9.000 KiB)
System Sets: 0.000062 seconds (697 allocations: 57.195 KiB)
Get data: 0.126396 seconds (96.55 k allocations: 4.645 MiB)
Parameters: 0.000076 seconds (28 allocations: 1.305 KiB)
Compute sets: 0.003145 seconds (31.07 k allocations: 1.266 MiB)
Variables: 0.427004 seconds (5.74 M allocations: 265.189 MiB, 17.58% gc time)
Objective: 0.000031 seconds (37 allocations: 2.172 KiB)
EQ_OBJINV: 0.000362 seconds (2.81 k allocations: 130.523 KiB)
EQ_OBJFIX: 0.000370 seconds (2.68 k allocations: 121.883 KiB)
EQ_OBJVAR: 0.000568 seconds (3.71 k allocations: 261.398 KiB)
EQ_ACTFLO: 0.003794 seconds (56.12 k allocations: 2.402 MiB)
EQL_CAPACT: 0.005743 seconds (82.12 k allocations: 3.988 MiB)
EQE_CAPACT: 0.002943 seconds (49.06 k allocations: 1.976 MiB)
EQE_CPT: 0.000207 seconds (1.74 k allocations: 65.930 KiB)
EQL_CPT: 0.000146 seconds (1.48 k allocations: 49.820 KiB)
EQG_CPT: 0.000173 seconds (1.92 k allocations: 77.039 KiB)
EQL_FLOSHR: 2.689352 seconds (33.74 M allocations: 1.891 GiB, 12.86% gc time)
EQL_FLOSHR: 3.379022 seconds (33.73 M allocations: 1.890 GiB, 13.02% gc time)
EQL_FLOSHR: 2.258765 seconds (33.73 M allocations: 1.890 GiB, 13.85% gc time)
EQE_ACTEFF: 0.084329 seconds (1.31 M allocations: 54.377 MiB)
EQ_PTRANS: 32.496109 seconds (360.99 M allocations: 15.599 GiB, 9.21% gc time)
EQG_COMBAL: 0.003289 seconds (26.95 k allocations: 1.687 MiB)
EQE_COMBAL: 0.000493 seconds (3.47 k allocations: 138.609 KiB)
EQE_COMPRD: 0.000244 seconds (1.95 k allocations: 67.266 KiB)
EQ_STGTSS: 0.003442 seconds (59.42 k allocations: 2.432 MiB)
Constraints: 40.936759 seconds (463.81 M allocations: 21.337 GiB, 9.99% gc time)
Running HiGHS 1.7.2 (git hash: 5ce7a2753): Copyright © 2024 HiGHS under MIT licence terms
Coefficient ranges:
Matrix [1e-02, 1e+04]
Cost [1e+00, 1e+00]
Bound [1e-01, 1e+01]
RHS [9e-02, 8e+03]
Presolving model
265 rows, 285 cols, 963 nonzeros 0s
228 rows, 245 cols, 826 nonzeros 0s
Presolve : Reductions: rows 228(-376); columns 245(-4571); elements 826(-1094)
Solving the presolved LP
Using EKK dual simplex solver - serial
Iteration Objective Infeasibilities num(sum)
0 1.2861637975e+04 Pr: 30(74.9799) 0s
162 3.8706151237e+04 Pr: 0(0); Du: 0(1.35003e-13) 0s
Solving the original LP from the solution after postsolve
Model status : Optimal
Simplex iterations: 162
Objective value : 3.8706151237e+04
HiGHS run time : 0.02
Solve model: 0.031630 seconds (37.42 k allocations: 3.734 MiB)
End to end model run: 41.530639 seconds (469.71 M allocations: 21.605 GiB, 10.03% gc time)
Reply


Messages In This Thread
RE: Rough investigation: Open-source solver time and memory penalties - by willcattoneeca - 09-09-2024, 11:56 AM

Forum Jump:


Users browsing this thread: 1 Guest(s)