-
Notifications
You must be signed in to change notification settings - Fork 1
Calculation management
Expression fast calculations: Calculation Management
The GeoDMS treats a model as a dependency tree of data items: every item declares, through its expression, which source data and other items it is calculated from. The engine manages this tree, so the modeller never specifies a calculation order.
Calculations are demand driven. Only the items that are actually requested (viewed in the GUI, exported, or updated from the command line) are calculated, together with the suppliers they depend on. Items that nothing asks for are never computed.
Within a session, calculated results are kept and reused; nothing is computed twice. Results are invalidated only by changes in:
- the direct or indirect expressions used to calculate them;
- the source data they are derived from.
After such a change, only the invalidated part of the tree is recalculated; everything else is reused. See Update Mechanism for a description of this incremental update mechanism. Results that should persist between sessions can be written to disk explicitly, see Strategic decoupling.
In determining how to calculate the requested results, the engine also:
- rewrites calculation rules symbolically to remove redundant calculation steps;
- optimizes the path of calculation steps (for example in the trade-off between calculating each country per year or each year per country);
- splits pre- and post-processing steps off from the core calculations;
- processes large domains in segments/tiles, in parallel where possible (see GeoDMS Default Tiling).
GeoDMS ©Object Vision BV. Source code distributed under GNU GPL-3. Documentation distributed under CC BY-SA 4.0.