Distributed Simulation Load Balancing via Partitioned Virtual Processes

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvesystem operation simplicityVSAvoidsimulation scalability
Core Design Contradiction:
Ease of operationVSProductivity

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.

Inventive Principle:
Principle #1Segmentation

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

Engineering Contradiction:
Improveresource allocation simplicityVSAvoidhandling dynamic object movement
Core Design Contradiction:
Device complexityVSReliability

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.

Inventive Principle:
Principle #15Dynamics

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

Engineering Contradiction:
Improvedata management simplicityVSAvoidfault tolerance
Core Design Contradiction:
Device complexityVSReliability

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.

Inventive Principle:
Principle #1Segmentation

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

Engineering Contradiction:
Improvesystem complexityVSAvoidreal-time interaction performance
Core Design Contradiction:
Device complexityVSSpeed

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.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS20230090130A1Distributable and Customizable Load-Balancing of Data-Associated Computation Via Partitions and Virtual Processes
Publication Date: 2023.03.23 IMPROBABLE WORLDS LTD
  • US20230090130A1 patent drawing
  • US20230090130A1 patent drawing
  • US20230090130A1 patent drawing

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.