From STEM 7.5 onwards, multiple processor cores are used to run models and scenarios; if you are using template replication it uses multiple cores to generate the different replicated versions of the model. When you run a model containing scenarios or sensitivities, a separate model file is generated from the working model for each requested scenario or sensitivity. Although conceptually this is most efficiently done from a single image of the working model, in practice it is usually faster to partition the scenario generation across multiple cores (each loading a separate copy of the working model) so that the incremental generation can still be done in parallel.
So, for example, core 1 might generate scenarios 1, 3 and 5, and core 2 might generate scenarios 2, 4 and 6. (All sensitivities for a given scenario are generated on the same core.) Once each scenario is generated, then the scenario checking, replication, model run and results sorting are progressed across the available cores, starting each task per core as soon as the previous one finishes.
Figure 1: Diagram illustrating parallel processing of scenarios from STEM 7.5 onwards
The default is to use all available processor cores, but you have the option to specify how many you want to be used:
- Select Parallel Processing from the main Options menu in the Editor.
- Check the checkbox and select the appropriate value to limit the number of parallel processes.
Figure 2: The Parallel Processing dialog
The ability to limit the number of parallel processes might be useful, for example, if you are running an eSTEM server and you want to leave at least one core free to handle web requests while the other cores are running STEM models in the background. It is likely, however, that most users will never need to change the default setting.