Skip to content

CGMES performance regression with RDF4J upgrade #3365

Open
@rolnico

Description

@rolnico

As seen during previous dependency updates (see #2704 and #3018), there is a regression in CGMES conversion performances when the RDF4J dependency is upgraded.

We should investigate why that happens and if it's on powsybl side or if it is on RDF4J side.

Here are some performance comparison.

CGMES conversion test duration:

Computation Duration on version 4.3.2 Duration on version 5.1.2 Difference
on local computer 56.409 s 01:45 min +87%
on GitHub 01:31 min 02:37 min +72%

Durations by test class (7 longest durations):

Test class Before (ms) After (ms) Diff (ms) Evolution (%)
Cgmes3ConversionTest 11 590 14 078 +2 488 +21.46%
CgmesConformity1ModifiedConversionTest 6 001 14 347 +8 346 +139.06%
TransformerConversionTest 1 342 4 983 +3 641 +271.46%
HvdcConversionTest 7 646 10 046 +2 400 +31.38%
EquipmentExportTest 5 859 12 212 +6 353 +108.44%
CgmesConformity1ConversionTest 2 715 6 006 +3 291 +121.25%
StateVariablesExportTest 3 835 6 434 +2 599 +67.80%
Total 39 988 68 106 +28 118 +70.29%

Durations by class and by test:

CgmesConformity1ModifiedConversionTest Before (ms) After (ms) Diff (ms) Evolution (%)
Test microBETieFlow() 42 160 118 280.95%
Test microAssembledSwitchAtBoundary() 61 180 119 195.08%
Test smallNodeBreakerHvdcDcLine2BothConvertersTargetPpcc1rectifier2inverter() 492 608 116 23.58%
Test microBEUsingSshForRtcPtcDisabled() 34 160 126 370.59%
Test smallNodeBreakerVscControllerRemotePccTerminal() 442 580 138 31.22%
Test microBEReactiveCapabilityCurveOnePoint() 33 160 127 384.85%
Test miniBusBranchExternalInjectionControl() 33 165 132 400.00%
Test microGridBaseCaseNLMultipleReferencePriorities() 32 152 120 375.00%
Test microBEMissingRegulatingControl() 37 163 126 340.54%
Test microAssembledEquivalentBranchAtBoundary() 43 167 124 288.37%
Test microBEPhaseTapChangerLinearTest() 36 157 121 336.11%
Test microBEConformNonConformLoads() 32 159 127 396.88%
Test microBEMissingShuntRegulatingControlId() 32 156 124 387.50%
Test microT4OffSvc() 147 632 485 329.93%
Test miniNodeBreakerMissingSubstationRegion() 29 94 65 224.14%
Test miniNodeBreakerSvInjection() 58 181 123 212.07%
Test microBEEquivalentShunt() 31 153 122 393.55%
Test microBEReactivePowerGen() 33 153 120 363.64%
Test microBEEquivalentBranchAtBoundary() 35 154 119 340.00%
Test smallNodeBreakerHvdcMissingDCLineSegment() 429 563 134 31.23%
Test smallNodeBreakerHvdcNanTargetPpcc() 430 571 141 32.79%
Test microGridBELineDisconnectedAtBoundaryNode() 62 306 244 393.55%
Test microGridBaseBEStationSupply() 31 156 125 403.23%
Test microGridBaseCaseBESingleFile() 36 153 117 325.00%
Test microBESvInjection() 33 153 120 363.64%
Test microBEFixedMinPMaxP() 34 156 122 358.82%
Test microT4InvalidSvcMode() 78 325 247 316.67%
Test smallBusBranchTieFlowWithoutControlArea() 124 245 121 97.58%
Test smallNodeBreakerHvdcVscReactiveQPcc() 430 573 143 33.26%
Test microGridBaseCaseAssembledEntsoeCategory() 36 168 132 366.67%
Test microBERatioPhaseFaultyTabularTest() 31 157 126 406.45%
Test miniBusBranchT3xTwoRegulatingControlsEnabled() 30 150 120 400.00%
Test microBEInvalidSvInjection() 30 159 129 430.00%
Test microT4SvcWithoutRegulatingControl() 82 330 248 302.44%
Test microT4ReactivePowerSvcWithMissingRegulatingControl() 85 320 235 276.47%
Test microGridBaseCaseNLShuntCompensatorGP() 29 159 130 448.28%
Test microBEEquivalentInjectionRegulatingVoltage() 33 152 119 360.61%
Test microBEPtcSide2() 30 151 121 403.33%
Test microBESwitchAtBoundary() 31 154 123 396.77%
Test smallNodeBreakerHvdcDcLine2Inverter1Rectifier2() 428 571 143 33.41%
Test miniNodeBreakerInvalidT2w() 97 330 233 240.21%
Test miniBusBranchRtcRemoteRegulation() 30 154 124 413.33%
Test microBETransformerAtBoundary() 32 152 120 375.00%
Test microT4ReactivePowerSvc() 78 317 239 306.41%
Test microAssembledTransformerAtBoundary() 45 164 119 264.44%
Test microBEInvalidRegulatingControl() 30 152 122 406.67%
Test microBERatioPhaseTabularTest() 30 167 137 456.67%
Test smallNodeBreakerHvdcNoSequenceNumbers() 682 981 299 43.84%
Test microBEDuplicateRegion() 29 151 122 420.69%
Test microGridBaseBETargetDeadbandNegative() 28 150 122 435.71%
Test microBEReactiveCapabilityCurve() 30 154 124 413.33%
Test microBEExplicitBase() 29 153 124 427.59%
Test microBEPtcCurrentLimiter() 33 153 120 363.64%
Test microBEUnmergedXnode() 31 155 124 400.00%
Test microBEIncorrectDate() 32 154 122 381.25%
Test microAssembledThreeLinesAtBoundary() 56 178 122 217.86%
Test smallNodeBreakerHvdcDcLine2BothConvertersTargetPpcc1inverter2rectifier() 432 568 136 31.48%
Test microBEEquivalentBranch() 30 155 125 416.67%
Cgmes3ConversionTest Before (ms) After (ms) Diff (ms) Evolution (%)
Test svedala() 1280 1474 +194 +15.16%
Test smallGrid() 1153 1322 +169 +14.66%
Test svedalaConvertBoundary() 991 1200 +209 +21.09%
Test miniGridConvertBoundary() 104 239 +135 +129.81%
Test throwsUncheckedIOExceptionOnImport() 1 1 0 0.00%
Test miniGrid() 102 248 +146 +143.14%
Test svedalaWithDifferentFictitiousSwitchesCreationModes() 2016 2261 +245 +12.15%
Test smallGridWithAndWithoutTpSv() 2052 2346 +294 +14.33%
Test microGrid() 106 242 +136 +128.30%
Test miniGridRatedS() 97 220 +123 +126.80%
Test svedalaWithAndWithoutTpSv() 1742 2127 +385 +22.11%
Test microGridConvertBoundary() 95 222 +127 +133.68%
Test smallGridConvertBoundary() 1078 1230 +152 +14.10%
Test microGridWithAndWithoutTpSv() 185 476 +291 +157.30%
Test miniGridWithAndWithoutTpSv() 175 439 +264 +150.86%
Test loadNetworkMicroGrid() 116 235 +119 +102.59%
EquipmentExportTest Before (ms) After (ms) Diff (ms) Evolution (%)
Test smallGridHvdc() 1369 1473 +104 +7.60%
Test miniGridCgmesExportPreservingOriginalClassesOfGenerators() 311 483 +172 +55.31%
Test microGridBaseCaseAssembledSwitchAtBoundary() 121 435 +314 +259.50%
Test smallNodeBreaker() 912 1120 +208 +22.81%
Test testLoadGroups() 99 346 +247 +249.49%
Test microGridWithTieFlowMappedToEquivalentInjection() 101 331 +230 +227.72%
Test nordic32SortTransformerEnds() 89 200 +111 +124.72%
Test smallBusBranch() 320 556 +236 +73.75%
Test tapChangerControlDefineControlTest() 155 395 +240 +154.84%
Test miniBusBranch() 81 314 +233 +287.65%
Test generatorRegulatingControlEQTest() 29 24 -5 -17.24%
Test equivalentShuntTest() 70 306 +236 +337.14%
Test tapChangerControlDefineRatioTapChangerAndPhaseTapChangerTest() 157 398 +241 +153.50%
Test twoWindingsTransformerCgmesExportTest() 31 165 +134 +432.26%
Test microGrid() 116 358 +242 +208.62%
Test bPerSectionTest() 82 339 +257 +313.41%
Test twoWindingsTransformerWithShuntAdmittanceCgmesExportTest() 28 166 +138 +492.86%
Test hydroPowerPlantExportAndImportTest() 14 139 +125 +892.86%
Test phaseTapChangerTapChangerControlEQTest() 14 12 -2 -14.29%
Test miniNodeBreaker() 109 354 +245 +224.77%
Test generatingUnitTypesTest() 1 1 0 0.00%
Test threeWindingsTransformerCgmesExportTest() 15 137 +122 +813.33%
Test shuntCompensatorRegulatingControlEQTest() 12 11 -1 -8.33%
Test synchronousMachineKindExportAndImportTest() 16 147 +131 +818.75%
Test tapChangerControlDefineRatioTapChangerAndPhaseTapChangerT3wLeg1Test() 149 390 +241 +161.74%
Test tapChangerControlDefineRatioTapChangerAndPhaseTapChangerT3wLeg2Test() 152 396 +244 +160.53%
Test tapChangerControlDefineRatioTapChangerAndPhaseTapChangerT3wLeg3Test() 149 392 +243 +163.09%
Test smallGridHvdcWithCapabilityCurve() 865 1131 +266 +30.75%
Test microGridCgmesExportPreservingOriginalClassesOfLoads() 171 419 +248 +145.03%
Test nordic32() 74 204 +130 +175.68%
Test ratioTapChangerTapChangerControlEQTest() 22 30 +8 +36.36%
Test equivalentShuntWithZeroSectionCountTest() 69 305 +236 +342.03%
Test testExportEquivalentInjectionBaseVoltage() 1 1 0 0.00%
Test threeWindingsTransformerTest() 29 273 +244 +841.38%
Test fossilFuelExportAndImportTest() 15 138 +123 +820.00%
Test staticVarCompensatorRegulatingControlEQTest() 13 13 0 0.00%
Test microGridCreateEquivalentInjectionAliases() 96 339 +243 +253.13%
HvdcConversionTest Before (ms) After (ms) Diff (ms) Evolution (%)
Test smallNodeBreakerHvdcDcLine2BothConvertersTargetPpcc1rectifier2inverter() 448 595 +147 +32.81%
Test smallNodeBreakerHvdcTwoAcDcConvertersTwoDcLineSegments() 456 593 +137 +30.04%
Test smallNodeBreakerHvdc() 449 583 +134 +29.84%
Test smallNodeBreakerHvdcMissingDCLineSegment() 462 568 +106 +22.94%
Test smallNodeBreakerHvdcNanTargetPpcc() 454 584 +130 +28.63%
Test smallNodeBreakerHvdcMissingAcDcConverters() 445 578 +133 +29.89%
Test smallNodeBreakerHvdcVscReactiveQPcc() 442 589 +147 +33.26%
Test smallNodeBreakerHvdcTwoDcLineSegmentsOneTransformer() 448 593 +145 +32.37%
Test smallNodeBreakerHvdcDcLine2Inverter1Rectifier2() 450 582 +132 +29.33%
Test smallNodeBreakerHvdcTwoAcDcConvertersOneDcLineSegment() 464 593 +129 +27.80%
Test smallNodeBreakerHvdcWithDifferentConverterTypes() 453 593 +140 +30.90%
Test smallNodeBreakerHvdcWithTwoTransformers() 445 595 +150 +33.71%
Test smallNodeBreakerHvdcWithVsCapabilityCurve() 457 600 +143 +31.29%
Test smallNodeBreakerHvdcTwoAcDcConvertersTwoDcLineSegmentsNoAcConnectionAtOneEnd() 452 602 +150 +33.19%
Test smallNodeBreakerHvdcWithOneTransformer() 445 592 +147 +33.03%
Test smallNodeBreakerHvdcDcLine2BothConvertersTargetPpcc1inverter2rectifier() 443 603 +160 +36.12%
Test smallNodeBreakerHvdcTwoDcLineSegments() 442 586 +144 +32.58%
TransformerConversionTest Before (ms) After (ms) Diff (ms) Evolution (%)
Test microGridBaseCaseBExfmr2ShuntDefault() 104 215 +111 +106.73%
Test microGridBaseCaseBExfmr2Ratio0End1() 47 165 +118 +251.06%
Test microGridBaseCaseBExfmr2Ratio0End2() 41 162 +121 +295.12%
Test microGridBaseCaseBExfmr2RatioPhaseX() 47 162 +115 +244.68%
Test miniBusBranchT2xPhaseAngleClock1NonZero() 34 155 +121 +355.88%
Test microGridBaseCaseBExfmr3ShuntSplit() 44 164 +120 +272.73%
Test microGridBaseCaseBExfmr3RatioPhaseStarBusSide() 49 161 +112 +228.57%
Test microGridBaseCaseBExfmr3Ratio0StarBusSide() 45 161 +116 +257.78%
Test microGridBaseCaseBExfmr3RatioPhaseNetworkSide() 42 162 +120 +285.71%
Test microGridBaseCaseBExfmr3Ratio0NetworkSide() 40 161 +121 +302.50%
Test microGridBaseCaseBExfmr2Ratio0X() 43 164 +121 +281.40%
Test miniBusBranchPhaseAngleClock() 28 151 +123 +439.29%
Test miniBusBranchPhaseAngleClockZero() 30 154 +124 +413.33%
Test microGridBaseCaseBExfmr2ShuntSplit() 43 160 +117 +272.09%
Test microGridBaseCaseBEPhaseTapChangerXMin() 96 220 +124 +129.17%
Test microGridBaseCaseBExfmr2ShuntEnd1End2() 41 161 +120 +292.68%
Test microGridBaseCaseBExfmr3ShuntStarBusSide() 41 159 +118 +287.80%
Test microGridBaseCaseBExfmr2RatioPhaseEnd1End2() 39 161 +122 +312.82%
Test microGridBaseCaseBExfmr3Ratio0End1() 42 162 +120 +285.71%
Test microGridBaseCaseBExfmr3Ratio0End2() 44 167 +123 +279.55%
Test microGridBaseCaseBExfmr3Ratio0End3() 48 162 +114 +237.50%
Test microGridBaseCaseBExfmr3ShuntNetworkSide() 46 160 +114 +247.83%
Test microGridBaseCaseBExfmr2RatioPhaseEnd1() 39 161 +122 +312.82%
Test microGridBaseCaseBExfmr2RatioPhaseEnd2() 39 165 +126 +323.08%
Test microGridBaseCaseBExfmr2RatioPhaseDefault() 39 163 +124 +317.95%
Test microGridBaseCaseDefault() 39 159 +120 +307.69%
Test microGridBaseCaseBExfmr2ShuntEnd1() 39 160 +121 +310.26%
Test microGridBaseCaseBExfmr2ShuntEnd2() 38 159 +121 +318.42%
Test miniBusBranchT3xAllPhaseAngleClockNonZero() 30 156 +126 +420.00%
Test microGridBaseCaseBExfmr2Ratio0Default() 38 160 +122 +321.05%

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions