2.13.0 to 2.14.0
No special instructions are necessary to upgrade to v2.14.0
. The following sections describe newly available Aerie configurations, which are optional.
In-Memory Checkpoint Simulation
Aerie 2.14.0 includes an experimental In-Memory Checkpoint Simulation feature which is intended to improve the performance of the scheduler by setting "simulation checkpoints" from which the simulation engine can restart, rather than always re-running the entire simulation. This improved performance comes at the cost of memory usage, which may be quite significant for larger models/plans, so it is disabled by default. If you don't want to use this feature, no changes to your deployment or models are necessary.
To use this feature in your Aerie deployment, you must:
- Modify the
MAX_NB_CACHED_SIMULATION_ENGINES
environment variable for the Aerie Scheduler Worker to be larger than1
. The higher this value is, the more checkpoints may be set, resulting in increased performance at the cost of higher memory usage. If the number is too high, you may encounter out-of-memory errors on larger models and plans. - Implement a
duplicate()
method on any custom tasks that are used by your model. Theduplicate()
method is called when a checkpoint is created, and should return a duplicate/"deep copy" of the task, which can be stepped independently of the original task. This is required because the checkpoint creates a duplicate copy of the entire simulation engine, including its tasks. For more information, see the documentation for this method.
An example implementation of a duplicate()
method on a task can be found in Aerie's ReplayingTask
class, located here.
Configuring Sequence Expansion Workers
PR #1476 exposes a new environment variable in the sequencing server that can be used to limit the maximum number of workers the server uses for sequence expansion. This is set to a default value of 8
if not provided, but can be increased to improve performance of sequence expansion at the cost of additional memory usage.