Eran Friedman - Boosting simulation performance with Python

Boost simulation performance with Python by leveraging a custom-built simulator powered by the CMPI library, enabling real-time testing, distributed simulation, and parallel processing for complex systems.

Key takeaways
  • The time command shows the time it took for the robot to run, but doesn’t display any messages in the screen, which is the problem.
  • SymPy has support for event-driven processes but runs all processes in a single thread, so it’s not suitable for the situation.
  • To solve the problem, all components should be tied to the clock.
  • The simulator maintains its own clock and immediately moves from one event to the next, allowing faster simulation.
  • The simulator was used to run the system in real-time and test the code before running it on the real robots.
  • The simulation helped to identify bugs that were hard to see in the real system, and allowed for easier testing.
  • The simulator was also used to evaluate the new warehouse layout before it was built.
  • The simulation improved the performance of the system and allowed for easier debugging.
  • The simulator supports distributed simulation, which allows for testing of complex systems.
  • The system uses a message queue to communicate between different parts of the system.
  • The simulator runs the system in a multi-process simulation, which allows for more realistic simulations.
  • The simulator uses a shared time tick to synchronize the different processes, and prevents one process from running too fast.
  • The simulator was implemented using the CMPI library, which provides a framework for discrete event simulation.
  • The system uses a Delia service to manage the time and prevent one process from running too fast.
  • The simulator is able to run the system in a distributed way, which allows for more realistic simulations of complex systems.
  • The simulator has several benefits, including improved performance and easier debugging.
  • The simulator can also be used to evaluate the system under different scenarios, such as different layouts or traffic patterns.
  • The simulator can run the system in a multi-threaded way, which allows for more realistic simulations of complex systems.
  • The simulator supports real-time simulation, which allows for real-time testing of the system.
  • The simulator can be used to evaluate the system in real-time, which allows for more accurate testing.
  • The simulator has been used to evaluate the system in real-world scenarios, such as in a warehouse with real robots.