CharmDES
A highly scalable and adaptable PDES engine built on top of the Charm++ runtime system
What is CharmDES?
Whether you are simulating traffic on roads or bytes on networks, studying behavior of digital circuits, mobile networks, human-in-the-loop or logistical scenarios, you need discrete event simulation. This type of simulation is challenging to scale effectively due to lack of parallelism, shifting load patterns, and fine-grained messaging and execution. CharmDES (formerly known as Charades) is a parallel discrete event simulator (PDES) built on top of Charm++ and C++, which uses state-of-the-art algorithms and automatic load balancing to provide unprecedented performance and scalability.
Why CharmDES?
CharmDES provides a clean, object-oriented C++ API, which allows for model development in conjunction with modern C++ code. It uses cutting-edge synchronization algorithms to deal with model synchronization at any scale, enabling models to run effectively, with low synchronization overhead from the simulation engine. The adaptive nature of the Charm++ runtime system, and the adaptive algorithms present in the CharmDES simulation framework, allow the simulator to effectively and dynamically adapt to a wide range of model behaviors and execution environments to provide excellent performance.
Documentation
Papers
Towards PDES in a Message-Driven Paradigm: A Preliminary Case Study Using Charm++
Adaptive Methods for Irregular Parallel Discrete Event Simulation Workloads
Application Areas
Logic Simulation
Traffic Simulation
Signal Processing
Internet of Things
Explore More