Simulation Engine Configuration
Engine Configuration
The default Alchemist execution requires no special configuration, however different engine implementations are available.
In order to configure a different engine, simply add an EngineConfiguration object into the simulation configuration file as per the alchemist Arbitrary class loading system.
Parallel Batch Engines
Parallel batch engine is an implementaion of Alchemist’s base engine that speeds up the computations by processing event batches in parallel at the price of determinism.
All batch engine implementations require the following parameters:
- outputReplayStrategy - determines how the output monitors get notified after the
batch has been processed. Available values:
- aggregate - only the state after the batch processing is sent to the monitors
- replay - all the state changes get sent to the monitors ordered by scheduled time.
Fixed Size Batch Engine
Fixed size batch engine processes events in parallel in batches of fixed size.
Sample configuration:
engine-configuration:
type: FixedBatchEngineConfiguration
parameters:
outputReplayStrategy: aggregate
batchSize: 4
Epsilon Batch Engine
Epsilon dynamic size batch engine processes events in parallel in batches constructed using the epsilon sensitivity value. Events get added to the batch as long as the difference in scheduled time is lesser than the given epsilon value.
Sample configuration:
engine-configuration:
type: EpsilonBatchEngineConfiguration
parameters:
outputReplayStrategy: aggregate
epsilonValue: 0.01
0.01 is a reasonable baseline, experiment to find the best value for your case.