Opened 7 years ago
Last modified 7 years ago
#4470 new defect
Bad performance of tearing for large scale models
Reported by: | Patrick Täuber | Owned by: | Patrick Täuber |
---|---|---|---|
Priority: | high | Milestone: | Future |
Component: | Backend | Version: | |
Keywords: | Cc: | Francesco Casella, Henning Kiel |
Description
The execution time for the postOptModule tearingSystem
is quite bad for large scale models, e.g. from ScalableTestsuite.
The situation has been improved a lot by removing the loop check from differentiation.
The current times for tearing for the BreakerNetwork_N_XX
models can be seen here:
#3816
The performance should be improved further. I will soon add some more times to compare.
Change History (4)
comment:1 by , 7 years ago
comment:2 by , 7 years ago
Number of tearing variables altogether:
N | MC1 | MC2 | MC11 | MC21 | MC12 | MC22 | MC13 | MC23 | MC231 | MC3 | MC4 | omcTearing |
---|---|---|---|---|---|---|---|---|---|---|---|---|
320 | 960 | 960 | 960 | 960 | 960 | 960 | 960 | 960 | 641 | 640 | 960 | 641 |
640 | 1920 | 1920 | 1920 | 1920 | 1920 | 1920 | 1920 | 1920 | 1281 | 1280 | 1920 | 1281 |
1280 | 3840 | 3840 | 3840 | 3840 | 3840 | 3840 | 3840 | 3840 | 2561 | 2560 | ? | 2561 |
comment:3 by , 7 years ago
By Speed up tearing matching a bit, Allow dividing by all globalKnownVars in initDAE and Speed up tearing the computation time of tearingSystem
could be reduced.
The new times for BreakerNetwork_N_XX
are the following:
N | MC1 | MC2 | MC11 | MC21 | MC12 | MC22 | MC13 | MC23 | MC231 | MC3 | MC4 | omcTearing |
---|---|---|---|---|---|---|---|---|---|---|---|---|
320 | 0.5563 | 0.4898 | 0.5699 | 0.5022 | 0.5598 | 0.6282 | 0.5713 | 0.522 | 0.6635 | 0.6442 | 1.9331 | 0.8897 |
640 | 2.234 | 1.9099 | 2.347 | 2.019 | 2.347 | 2.047 | 2.384 | 2.111 | 2.724 | 2.612 | 7.632 | 5.897 |
1280 | 8.662 | 7.252 | 9.045 | 7.789 | 9.744 | 8.157 | 9.162 | 8.36 | 11.54 | 10.278 | 32.69 | 38.74 |
So this model now scales with O(n2).
comment:4 by , 7 years ago
Here are some more times for a distribution model (DistributionSystemLinear_N_XX_M_XX
):
Before:
MC1 | MC2 | MC11 | MC21 | MC12 | MC22 | MC13 | MC23 | MC231 | MC3 | MC4 | omcTearing | |
---|---|---|---|---|---|---|---|---|---|---|---|---|
N_14_M_14 | 3.943 | 0.957 | 3.979 | 0.8367 | 4.084 | 0.9617 | 3.997 | 1.1681 | 1.7441 | 1.5703 | 2.2 | |
N_20_M_20 | 29.84 | 5.793 | 28.88 | 4.247 | 29.02 | 4.969 | 29 | 6.216 | 9.914 | 8.989 | 15.553 | |
N_28_M_28 | 195.77 | 37.4 | 199.51 | 23.54 | 200.92 | 24.8 | 194.64 | 39.39 | 67.4 | 55.91 | 113.01 |
After:
MC1 | MC2 | MC11 | MC21 | MC12 | MC22 | MC13 | MC23 | MC231 | MC3 | MC4 | omcTearing | |
---|---|---|---|---|---|---|---|---|---|---|---|---|
N_14_M_14 | 0.671 | 0.5259 | 0.676 | 0.5373 | 0.74 | 0.6321 | 0.7345 | 0.7025 | 0.7934 | 0.612 | 2.318 | 2.099 |
N_20_M_20 | 2.092 | 1.9841 | 2.122 | 1.97 | 2.359 | 2.206 | 2.866 | 2.314 | 2.934 | 2.345 | 9.44 | 15.241 |
N_28_M_28 | 7.261 | 6.662 | 7.555 | 6.728 | 9.004 | 8.425 | 9.213 | 8.319 | 10.931 | 8.695 | 36.24 | 111.11 |
Current times of the entire tearing procedure (initDAE + simDAE) for the
BreakerNetwork_N_XX
models with the different heuristics (default: MC3):