Distributed Simulation Load Balancing via Partitioned Virtual Processes
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional simulation systems struggle to scale and handle large numbers of objects in real-time, leading to overloading, data loss, and difficulties in fault tolerance and stateful migration, especially when simulating complex scenarios like cities with numerous entities.
Innovation Solution
The system employs a distributed architecture with hierarchical aggregators and connection migrations, allowing nodes to dynamically adjust their streaming query subscriptions and aggregate data, and combines or adds layers of aggregators to manage workload distribution across multiple machines and virtual processes.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of operation
If a single simulation engine is used to simulate the entire simulated world, then the system is simple to operate, but the system cannot scale to support very large numbers of objects and may become overloaded
Solution Approach 1:
The simulated world is divided into multiple partitions, each handled by a separate simulation engine. This segmentation allows the system to scale by adding more engines to handle more objects while maintaining operational simplicity through automated partition management.
2Device complexity
If computing resources are statically assigned to a portion of the simulated world, then resource allocation is simple, but the system cannot handle dynamic object movement and congestion effectively
Solution Approach 1:
The system dynamically assigns objects to partitions based on their current positions and movements. Partitions can be reassigned to different simulation engines as objects move, allowing the system to handle dynamic object movement and congestion effectively while maintaining manageable complexity through automated reassignment.
3Device complexity
If state information is concentrated on a single computing resource, then data management is simple, but fault tolerance and recovery become difficult and time-consuming
Solution Approach 1:
State information is divided and distributed across multiple computing resources (partitions). Each partition maintains its own state information locally, enabling fault tolerance through data replication and redistribution if one resource fails, while keeping data management simple through automated partitioning.
4Device complexity
If a single simulation engine is used, then the system has low complexity, but it cannot provide real-time interaction for large-scale simulations with many objects
Solution Approach 1:
The simulation workload is segmented across multiple engines, each handling a specific partition of objects. This allows parallel processing that maintains real-time interaction performance for large-scale simulations while managing complexity through automated engine coordination and load balancing.
Data Source
AI summary
Methods, systems, computer-readable media, and apparatuses for determining partitions and virtual processes in a simulation are presented. A plurality of partitions of a simulated world may be determined, and each partition may correspond to a different metric for entities in the simulated world. A plurality of virtual processes for the simulated world may also be determined. The system may assign a different virtual process to each partition. An indication of the partitions may be sent to one or more partition enforcer services, and an indication of the virtual processes may be sent to a virtual process manager.


