Skip to content

v0.4.0

Latest
Compare
Choose a tag to compare
@cjuli1 cjuli1 released this 07 Nov 11:47

JulES v0.4.0

Release compatible with TuLiPa v0.4.0

Changes since v0.3.0

  • Redesigned orchestration and parallellisation with Distributed.jl (not with DistributedArrays.jl as before) and local databases
    • Initialization:
      • Local databases are created on all available cores and populated with:
        • User input, subsystems, scenarios, horizons and problem distribution
      • Specific problems are built on their allocated cores
      • One of the local databases initializes results. It will have the task of collecting results and timing from all
        problems on all cores. Timing can be used to do dynamic load balancing (not implemented). Results and main
        problem (clearing or master problem) are on the same core to reduce data transfer overhead
    • Each simulation step consist of
      • Scenario modelling
      • Update and solve problems on their allocated cores
      • Collect results and timing
      • Possibly do load balancing
    • Minimal data transfer
      • Some data synced and distributed to all cores (horizons, scenarios, problem distribution, simulation state)
      • Most data is collected on demand and locally cached. This (fetch-needed-data-only + cache) minimizes
        communication between cores, which is important for performance.
  • Added interfaces for inputs, outputs, scenarios, subsystems, problem distribution (and new methods) and horizon handling
  • All problems use the same horizons, a horizon with a high time resolution in the start and a decreasing granularity. Facilitated with ShortenedHorizon, ExternalHorizon and IgnoreMustUpdateShiftfromHorizon.
  • Added inflow model
  • Added end value problem
  • Added support for TuLiPa extensions through JulES