CPU Throttling Options

When a model calculation process starts, the model uses whatever CPU cores are available, in order to complete its calculation; so if more than one model is open on the same application server, they can be competing for resources. A typical problem that can arise is that the calculations of a very large model may use so many CPU cores that it severely restricts the performance of other smaller models.

In Model Builder, you can set CPU throttling options to control the allocation of CPU cores to each model. There are three model calculation options that you can use:
  • Background calculation
  • Maximum CPU Usage
  • First CPU Usage
By restricting the number of CPU cores available to specific models, you can ensure that all models on the server get the opportunity to use sufficient processors.

You can restrict the total number of CPU cores that are ever used by a model, by setting the required number in the option Maximum CPU Usage. This restriction applies regardless of whether the model is carrying out background calculations or interactive foreground calculations. A similar restriction is available for restricting background calculations only, by using the option Background calculation. (Note: the Background calculation option is overridden if a lower number is set in the Maximum CPU Usage option.)

The option First CPU Usage is designed to dedicate specific CPU cores to a particular model. It specifies the number of the first CPU core and additonal CPU cores are allocated consecutively. For example, if First CPU Usage is set to 8 and Maximum CPU Usage is set to 4, the model will be restricted to using the CPU cores numbered 8 to 11. This allows you to determine what impact a model calculation will make, by allocating resources in advance and giving priority to specific models. This also may improve efficiency for the model, as the operating system does not need to flush the memory cache on the processor, because it is constantly dedicated to one model.

However in general, it is recommended to leave the operating system to manage the first physical CPU core (by keeping the default setting Automatic on First CPU Usage) as this is often more efficient. In this case the selection of CPU cores is based on the existing running models. So the first model will be allocated the first available CPU, together with the number of CPUs in its Maximum CPU Usage, while the next model will be allocated the next available CPU in the range together with the number of CPUs in its Maximum CPU Usage, and so on.

If a model is moved to an application server with a smaller number of physical CPU cores than is set in the First CPU Usage option, then the First CPU Usage higher value is ignored, and the model reverts to using the automatic setting. If a model is moved to an application server with a smaller number of CPU cores than the value of Maximum CPU Usage, then the number of processors allocated is reduced according to the number available. For example:
Available Physical CPUs First CPU Usage Maximum CPU Usage Actual Amount of Physical CPUs Used
10 Not configured 12 10
10 5 12 6 (starting at CPU 5)

Users may need to experiment with the settings to achieve an optimal outcome across a range of models that are calculating concurrently. The main purpose in applying throttling control is to restrict those models with the potential for taking over all available resources from doing so. In most cases, models can be left with the default settings and continue to access CPU cores as allocated by the operating system, which includes use of processors specifically allocated to other models if they become available.