-
Notifications
You must be signed in to change notification settings - Fork 8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support parsing of v33 data #47
Conversation
fb89a94
to
5cbb1da
Compare
Codecov Report
@@ Coverage Diff @@
## main #47 +/- ##
==========================================
+ Coverage 94.26% 94.56% +0.29%
==========================================
Files 3 3
Lines 279 331 +52
==========================================
+ Hits 263 313 +50
- Misses 16 18 +2
Continue to review full report at Codecov.
|
036bc5d
to
1cb37be
Compare
b595b6f
to
1678306
Compare
This now parses a v33 file However the changes on this branch reduce performance of the code on non-v33 files: On this branch: julia> using PowerFlowData
julia> @time parse_network("raw/realistic29.raw");
1.348236 seconds (1.06 M allocations: 138.400 MiB, 2.10% gc time, 82.74% compilation time)
julia> @time parse_network("raw/realistic29.raw");
0.219198 seconds (1.27 k allocations: 75.141 MiB, 10.57% gc time) On julia> using PowerFlowData
julia> @time parse_network("raw/realistic29.raw");
0.601938 seconds (331.93 k allocations: 90.757 MiB, 5.39% gc time, 63.28% compilation time)
julia> @time parse_network("raw/realistic29.raw");
0.196851 seconds (1.13 k allocations: 69.327 MiB, 4.45% gc time) i'm inclined to leave this to future work as this is already a huge PR and likely still needs some other cleanup (as well as tests) |
Some timings, using a v33 file in https://github.com/NREL-SIIP/PowerSystemsTestData/ PowerModels.jl (v0.18.3)(with logging disabled via julia> @time PowerModels.parse_psse("PowerSystemsTestData/ACTIVSg70k/ACTIVSg70k.RAW");
97.266027 seconds (695.57 M allocations: 15.219 GiB, 5.58% gc time, 2.52% compilation time)
julia> @time PowerModels.parse_psse("PowerSystemsTestData/ACTIVSg70k/ACTIVSg70k.RAW");
97.628370 seconds (692.60 M allocations: 15.049 GiB, 6.54% gc time) PowerSystems.jl (v1.15.1)(with logging disabled via julia> @time PowerSystems.parse_psse("PowerSystemsTestData/ACTIVSg70k/ACTIVSg70k.RAW");
86.812174 seconds (684.53 M allocations: 14.675 GiB, 6.07% gc time, 0.56% compilation time)
julia> @time PowerSystems.parse_psse("PowerSystemsTestData/ACTIVSg70k/ACTIVSg70k.RAW");
96.440231 seconds (681.18 M allocations: 14.480 GiB, 6.52% gc time) PowerFlowData.jl (this branch)julia> @time parse_network("PowerSystemsTestData/ACTIVSg70k/ACTIVSg70k.RAW");
1.584180 seconds (1.10 M allocations: 162.025 MiB, 82.08% compilation time)
julia> @time parse_network("PowerSystemsTestData/ACTIVSg70k/ACTIVSg70k.RAW");
0.248645 seconds (1.19 k allocations: 96.073 MiB) So right now we're >10x faster on first run, and >100x on subsequent runs. We also have >100x fewer allocations on first run, and 10,000x on subsequent runs. And overall allocate ~100x less memory. |
Dang those are some sweet performance improvements! |
oi
,fi
columns) in Generators, Branches, Transformers #45