Caching
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.


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.
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.
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).
If you are modifying something which is not in the cache hit checklist and which will change the simulation outputs, you must disable caching.
Check | Details | Power systems software |
---|---|---|
Project settings | For example:
| PSS®E PSCAD™ PowerFactory |
Node data | For example:
| PSS®E PSCAD™ PowerFactory |
Dependent Nodes | All 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 version | gridmo Engine version (e.g. v1.5.3). | PSS®E PSCAD™ PowerFactory |
Engine settings | gridmo Engine settings which may affect the simulation results. For example:
| PSS®E PSCAD™ PowerFactory |
Power systems software version | The 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 version | The 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 version | The power systems software external compiler version must match (e.g. Intel Fortran compiler 19.2.49896 (64-bit)). | PSCAD™ |
Input models and supporting files | All input model and supporting file data must match. For example:
| PSS®E PSCAD™ PowerFactory |