top of page


A highly scalable and adaptable PDES engine built on top of the Charm++ runtime system

*Available from the University of Illinois for research and evaluation use only. For commercial use of Charm++, explore our licensing options or contact us for more info.

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.






Towards PDES in a Message-Driven Paradigm: A Preliminary Case Study Using Charm++


Adaptive Methods for Irregular Parallel Discrete Event Simulation Workloads

Application Areas

Wheels of Motion

Logic Simulation

Urban Traffic

Traffic Simulation

Sound Waves

Signal Processing

Social network concept

Internet of Things

Cham++ Learn More
bottom of page