Skip to main content

Caching

Warning

For Engine versions < v1.6.0, caching is enabled/disabled using an Engine setting, NOT the launch window setting. The launch window setting will be ignored for Engine versions < v1.6.0.

Overview

gridmo's caching system automatically stores recently generated power systems software simulations outputs up to a predefined storage size, which can be configured via an Engine setting. When caching is enabled, outputs generated from a previous simulation can be used if you are launching a simulation which contains power system software tasks which are the same as a previously launched simulation.

Cache - Engine settingCache - Launch window

This system is an automated equivalent to a practice power system engineers are already using. For example:
  • An engineer runs a collection of power system software simulations in PSS®E and PSCAD™ (not via gridmo).
  • The engineer then generates benchmarking plots using outputs from the PSS®E and PSCAD™ simulations.
  • The engineer then finds an issue in the PSCAD™ model. The engineer fixes the issue and then recognizes that they only need to rerun the PSCAD™ simulations.
  • The engineer reruns the PSCAD™ simulations.
  • The engineer then generates benchmarking plots using outputs from the previously run PSS®E simulations and from the new PSCAD™ simulations.

In this example, the engineer has manually recognized a 'cache hit' on the previously run PSS®E simulations.

Warning

The cache is cleared when upgrading the Engine.

Supported Nodes

Caching is currently supported for the following Nodes:

  • PSCAD™

Determinism

The effectiveness of caching relies on the assumption that power system software simulations are deterministic (i.e. a network contingency test run on Monday morning should yield identical outputs to an identical test run on Monday afternoon).

However, we have observed that power system software simulations can be non-deterministic (i.e. outputs generated from identical power systems software simulation results can be different). Given we don't have access to the source code of the power systems software packages with which gridmo integrates, we are unable to find the exact cause of the non-determinism. We do however note the following:

  • Typically when non-determinism was observed, the outputs have typically only been slightly different and not functionally different.
  • Rarely when non-determinism was observed and the difference in outputs was very large, it occurred when there were simulation issues present such as calculation non-divergence or external library/dependency problems.
Warning

Based on observed non-determinism, we recommend that power systems software caching is used as a useful tool only where you have an extremely high confidence in the determinism of your simulations/models. We have chosen that caching is not always enabled, nor is it enabled by default. Additionally, we recommend that caching is used for testing and disabled for simulations intended for submission.

Cache hit checklist

The following checklist is used to uniquely identify power system software simulations and determine whether outputs generated from a previous simulation are used (i.e. a cache hit).

Warning

If you are modifying something which is not in the cache hit checklist and which will change the simulation outputs, you must disable caching.

CheckDetailsPower systems software
Project settingsFor example:
  • Project name
  • Project rated active power
  • System frequency
PSS®E
PSCAD™
PowerFactory
Node dataFor example:
  • Commands
  • Actions
  • Outputs
  • Advanced parameters
PSS®E
PSCAD™
PowerFactory
Dependent NodesAll dependent Nodes must have the same results. For example, a PSCAD™ Node which is dependent on a PSS®E Static Node also checks the PSS®E Static Node.
PSS®E
PSCAD™
PowerFactory
Engine versiongridmo Engine version (e.g. v1.5.3).
PSS®E
PSCAD™
PowerFactory
Engine settingsgridmo Engine settings which may affect the simulation results. For example:
  • Python timeout settings
  • PSS®E .dll load order
PSS®E
PSCAD™
PowerFactory
Power systems software versionThe power systems software version must match (e.g. PSS®E v34.9.5).
PSS®E
PSCAD™
PowerFactory
Python version used to interface with the power systems software versionThe python interface version must match (e.g. Python 3.11 is required to interface with PSS®E v36.2.0).
PSS®E
Power systems software compiler versionThe power systems software external compiler version must match (e.g. Intel Fortran compiler 19.2.49896 (64-bit)).
PSCAD™
Input models and supporting filesAll input model and supporting file data must match. For example:
  • PSS®E Static: Case file (.sav)
  • PSS®E Dynamic: Dynamic model data (.dyr)
  • PSS®E Dynamic: Dynamic user models (.dll)
  • PSS®E: Potentially supporting library files located inside the dynamic user model folder (e.g. .exe files for wrapper models)
  • PSCAD™: Workspace file (.pswx)
  • PSCAD™: Potentially supporting library files located inside the workspace file folder (e.g. .lib files)
  • PowerFactory: Project file (.pfd)
  • PowerFactory: Dynamic user models (.dll)
  • PowerFactory: Potentially supporting library files located inside the dynamic user model folder (e.g. .exe files for wrapper models)
PSS®E
PSCAD™
PowerFactory