Domain-specific simulators often have an edge on general-purpose simulators in terms of performance. Their intricate knowledge of the domain allows them to aggressively optimize and take shortcuts. In contrast, simulators for more general formalisms, such as Discrete Event System Specification (DEVS), need to support a wider set of models. Their inability to use domain information prevents DEVS simulators from achieving as high performance as their domain-specific variants. To solve this problem, we introduce a way to enhance the simulation performance of DEVS models through the use of computational resource usage models, often termed “activity” models. These models augment general-purpose DEVS models with domain-specific information, which can be used by the simulator. We apply this information in the context of data structure optimization, load balancing, and model allocation. Activity-awareness is a non-invasive extension to the DEVS formalism, meaning that activity-augmented models remain perfectly valid for use in activity-unaware simulators. Similarly, models without activity can still be simulated by an activity-aware simulator. Our approach is validated by making PythonPDEVS, a Parallel DEVS simulator, activity-aware and evaluating the performance impact on a set of benchmark models.
Read full abstract