Comments (6)
There's no theoretical reason multiple devices should take substantially longer to run than a single device, so this is probably a bug.
When adding the second storage device, does the run finish, just slowly, or does it run forever and never return? If the latter, an error is probably getting thrown silently on one (or more likely all) of the worker threads and causing the finalizer to hang, waiting for results that will never be sent.
from pras.
Thanks for the examples, this will help a lot with debugging. I'll try to reproduce the issue and see if I can figure out what's causing it.
from pras.
The singlenode_stor
test system includes two storage devices as of last week and runs normally, so the issue may be related to specific parameters in your storage devices? Would you be able to post a minimal example of a SystemModel
that experiences the problem?
from pras.
The run runs forever and never return. See below the struct that I am using for storage before creating the StorageAsset. Happy to set up a call too if that could help
@with_kw struct StorageParameters
name::String
type::String = "Battery"
charge_capacity_MW::Int64
discharge_capacity_MW::Int64
energy_capacity_MWh::Int64
charge_efficiency::Float64
discharge_efficiency::Float64
carryover_efficiency::Float64 = 1.0
forced_outage_rate::Float64 = 0.00
repair_rate::Float64 = 1.0
end
I have 32 generators, 10 being VG as well as 8 storages with capacity of 40MWh on average. Since having 2 generators like that never returns, I tried having a bigger generator, and same here, it is struggling. The only result I got was for 1_000 samples and even with that, I could not replicate.
I am using the Temporal()
and Modern()
assess(Modern(samples=1_000), Temporal(), singlenode)
Here are the params for my "aggregated Storages()"
name: String "aggregated_storages"
type: String "Battery"
charge_capacity_MW: Int64 1421
discharge_capacity_MW: Int64 1421
energy_capacity_MWh: Int64 1180
charge_efficiency: Float64 0.9486832980505138
discharge_efficiency: Float64 0.9486832980505138
carryover_efficiency: Float64 1.0
forced_outage_rate: Float64 0.0
repair_rate: Float64 1.0
That I then fit into this asset type: PRASBase.Storages{8760,1,Dates.Hour,PRASBase.MW,PRASBase.MWh}
and here is my system:
ResourceAdequacy.SystemModel{load_params.n_timestamps,1,Hour,ResourceAdequacy.MW,ResourceAdequacy.MWh}(
assets, storages, emptygenstors,
DateTime(load_params.datetimes[1]):Hour(1):DateTime(load_params.datetimes[end]), load_params.load_MW)
Thanks.
from pras.
What is interesting is that sometimes with the aggregated generator, I will get a results really fast and without getting stuck but only 1/15 times ...
4.483385 seconds (5.04 M allocations: 236.421 MiB, 2.25% gc time)
LOLE(result_modern) = LOLE = 10.16±0.10 h/8760h
EUE(result_modern) = EUE = 18300±200 MWh/8760h
from pras.
What is interesting to notice is that the Storage capacityMWh and PowerMW seem to have an impact:
with 4 storages of size (powerMW, capacityMW), it is running but never returns (hanging on some error probably as you suggested above)
B1: (10, 40)
B2: (409, 889)
B3: (30, 120)
B4: (30, 120)
B1, B3, B4 are working individually. B2 is "crashing" / not returning.
It is also working fast if we take all of them but B2. With the below 3 storages, we are getting:
B1: (10, 40)
B2 removed
B3: (30, 120)
B4: (30, 120)
LOLE(result_modern) = LOLE = 60.7±0.2 h/8760h
EUE(result_modern) = EUE = 128900±700 MWh/8760h
Which is coherent with the same system without storage results:
Modern()
EUE = 133000±200 MWh/8760h
LOLE = 62.56±0.07 h/8760h
from pras.
Related Issues (20)
- Add SystemModel manipulation functions for common tasks HOT 4
- Dramatic slowdown after upgrading to v0.6.0 HOT 4
- Suboptimal storage strategies with small times-to-go
- Prevent negative chargeable energy HOT 1
- Increment minimum supported Julia version to 1.6?
- Allow choosing specific sample seeds
- Unit-level random seeds
- Disallow creating systems where lambda and mu are simultaneously zero
- Trying to install PRAS, running into "Package PRAS not found", "ERROR: cannot find name corresponding to UUID 4138dd39-2aa7-5051-a626-17a0bb65d9c8 in a registry"
- Question: Is the vision for PRAS to be exclusively a research tool or also to be used in the ISO and utility environments? HOT 3
- Implement Base.vcat for Storages, GeneratorStorages, and Lines structures HOT 1
- Initialize empty Generator, Storages, and GeneratorStorages objects
- Attempting calculate EFC for generator in rts.pras HOT 6
- Workflow question: Specifying a system using HDF5 file HOT 1
- Working with HDF5 files HOT 7
- assess(sys, NonSequentialMonteCarlo(), Shortfall()) HOT 1
- Add more sample-level result tests
- Bump HDF5 version? HOT 2
- Error During Test at SystemModel.jl HOT 10
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from pras.