Note: This is documentation for version 5.0 of Source. For a different version of Source, select the relevant space by using the Spaces menu in the toolbar above

Improving Performance

There are several user-configurable options in Source that can be used to increase performance (ie. reduce model run times) by changing the way Source runs the model. Many of these options will be suitable for the majority of models, but they can cause changes in results for some users, so caution should be used when selecting them.

Performance Improvement

Throughout the userguide, when there is a user-configurable option that can improve performance, it is indicated with a note like this one.

Minimise the number of recorded parameters

Before running the Source scenario, give consideration to the required output and only record the parameters of interest. Some node or link types can produce more than 20 separate data outputs (eg. storages). In general, the more outputs you record, the longer the simulation will take, though this depends on exactly what you record; recording mass-balance is more computationally intensive than recording inflow, for example.

To turn off all recorded parameters, in the Project Hierarchy, right click on the scenario's name and select Record None (Figure 1). Navigate to the parameters of interest using the Project Hierarchy and Parameters pane, right-click on the parameter and choose Record All (Figure 1). For more information, see recording parameters.

Figure 1. Selecting recording parameters

Parallel Networks

Networks with multiple outlet nodes (Figure 2) can be configured to run separate networks simultaneously by selecting Run Separate Networks in Parallel (Figure 3). This should not be selected as an option if there are calculation dependencies across the separate networks, e.g. Subnetwork 2 calls a function which involves a value from Subnetwork 1.

Figure 2. Example of geographic and schematic scenarios with multiple outlets


Figure 3. Configure single analysis, Run Separate Networks Parallel

Minimise what is run during model setup

Model run time increases with longer modelling periods. Take care to choose appropriate start and end dates when configuring your model (Figure 3).

Components of a model can be deactivated by right-clicking on them in either Schematic Editor or Geographic Editor and choosing Deactivate. Deactivated nodes are indicated by a grey circle backlash symbol on top of the node icon. Deactivated links become a solid grey line. (Figure 4). In Geographic Editor, deactivating a link will change the border of its associated sub-catchment to grey. Deactivating large sections of a model (eg. a network branch) will improve performance by decreasing model run-time. This can be useful when you are working with part of a model only, eg. during calibration.

When running a model with deactivated components, two warning notifications are generated, one indicates how many components are deactivated, and the second indicates how many components were excluded from the run order. Excluding components from the run order will reduce run time. 

For more information on deactivation in Schematic Editor see here, and for Geographic Editor, see here.

Figure 4. Node and link deactivation

Limit Storage travel time calculations

When configuring ordering at storages, if Do Not Order From Upstream Storages is enabled, the storage limits the maximum travel time for any node downstream of it to that storage; storages upstream of it are not considered during maximum travel time calculations. When this option is enabled, the application will do less future prediction of water requirements, improving performance of the ordering phase. This can significantly improve run times in models that have ordering and long travel times.

Figure 5. Storage Node, ordering

Scenario Performance Options

All of the following can be found in the Scenario Options dialog, which is accessed via Edit » Scenario Options.

Assurance Rules

Source has a set of Assurance Rules that provide optional checks of models. Performance can be improved by setting the notification level of an assurance rule to Off, then Source will not check that rule when the model is run. Alternatively, it is possible to turn off all assurance rules by toggling off the Enabled checkbox (Figure 5).

Care should be taken when turning off any or all assurance rules, as they define and detect unacceptable states in the model, increasing the confidence that you can have in the model and the output data. Turning them off is not recommended during model building, but would be useful for calibrating or running replicates.

Figure 5. Scenario Options, Assurance Rules

 

Simultaneous Subcatchments

Source was originally designed to perform subcatchment calculations in sequence from the top of the catchment to the bottom. It is now possible to select a performance option that will allow Source to perform subcatchment calculations in parallel within a timestep, and then the node-link network is calculated in the normal sequence. Once again, this is only suitable for subcatchments where values are not called from other subcatchments within the same timestep. Currently, it is only possible to call subcatchment values either using a function or in catchment model plugins.

To enable this option, select Performance from the tree view in the Scenario Options dialog, and toggle on Run Catchments in Parallel (Figure 5).

Figure 5. Scenario Options, Performance

Water User Orders

Orders generated by water users were previously calculated sequentially from the bottom to the top of the system.  As of 3.8.18beta, Process Water User Orders in Parallel is enabled by default, which means that orders are generated simultaneously within a timestep and passed to the supply points. This will decrease model run times. 

In a small number of cases that use continuous accounting, the sequence of water user orders may change the results. If necessary, you can toggle off the option, but most users should be able to use the improved performance option without issue.

Rules Based Ordering

By default, Source calculates ordering, constraints and off-allocation for every component in the network, regardless of whether it is on a regulated path. You can choose which components will execute by selecting Rules Based Ordering from the tree view in Scenario Options (Figure 6). Configuring your scenario to only process ordering, constraints and off allocation for appropriate components will reduce model run time. In most cases, using the Auto Select button will automatically select the minimum configuration for your system. For more information, see here

Figure 7. Scenario Options, Rules Based Ordering.

Storage Dimensions

When configuring a storage, give consideration to the number of points used to define its dimensions, and use the minimum number of points necessary. minimise the number of points used to define its dimensions. The more points there are, the greater the processing time during a run.

Audit Log

The audit log keeps track of the changes made to a project over time. This is particularly useful for projects that are worked on by multiple people over a period of time, but can become a processing burden, especially in the case of large projects. It is now possible to disable and clear the audit log. Access this option through Edit » Project Options.

Computing Environment

To ensure optimal performance, use Source on a computer that meets the minimum System RequirementsStandard laptop drives are not recommended for optimum performance. Also, we suggest reducing what else is running on your computer. If you are using a server to run Source, ask system administrators to reduce the services that are running. For advice on optimising server performance, see these two microsoft articles: here and here.

 Microsoft .NET version 4.6.0 has a performance issue that affects Source performance, particularly when saving projects. If you upgrade to 4.6.1, it will resolve the performance issue.