Simulated Clock Scheduling for Deterministic Distributed Tasks
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional distributed processing systems execute asynchronously, leading to non-deterministic behavior, which complicates simulation testing and problem identification due to variability in node execution sequences and inter-process communication latencies.
Innovation Solution
The system replaces complex multi-threaded nodes with smaller nodelets that can operate in single-threaded or multi-threaded modes, scheduling them to execute serially within defined timeframes and using a simulated clock for deterministic processing, ensuring consistent output across simulations.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If distributed processing systems execute asynchronously with multi-threaded nodes, then processing speed and concurrency are improved, but execution becomes non-deterministic leading to variability in node execution sequences and communication latencies
Solution Approach 1:
The system segments the distributed processing system into discrete simulation frames, where each frame represents a specific time interval with a defined execution sequence. Nodelets (subsystems) are organized into frames based on their execution timing requirements, allowing the system to maintain both concurrency capabilities and deterministic execution order within each frame context.
Solution Approach 2:
The system implements periodic simulation frames that execute in a predetermined sequence, creating regular time intervals for processing. Each frame contains specific nodelets scheduled to execute in a determined order, while the overall system maintains periodic frame-based execution that ensures determinism across multiple simulation cycles.
2Productivity
If conventional distributed systems allow concurrent multi-threaded execution, then system throughput is improved, but race conditions and latency-related issues arise complicating simulation testing
Solution Approach 1:
The simulation frame acts as an intermediary layer between the concurrent multi-threaded nodelets and the deterministic execution requirement. Each frame specifies which nodelets execute in which order, serving as a control mechanism that mediates between the inherent concurrency of multi-threaded execution and the need for deterministic behavior during simulation testing.
3Adaptability or versatility
If node execution sequences vary in distributed systems, then adaptability to different scenarios is improved, but problem identification and testing become difficult due to non-reproducible results
Solution Approach 1:
The system performs preliminary organization of nodelets into simulation frames before execution, pre-determining the execution sequence for each frame based on the specific simulation scenario. This preliminary structuring allows the same scenario to be reproduced consistently across multiple testing iterations, while different scenarios can still be configured with different frame structures to maintain adaptability.
Data Source
AI summary
Systems and methods are provided for the deterministic simulation of distributed systems, such as vehicle-based processing systems. A distributed system may be represented as a plurality of subsystems or “nodelets” executing with a single process of a computing device during a simulation. A simulated clock may be used during execution of the nodelets to mitigate the variability in timestamped data that may be caused by latency or jitter. In some embodiments, all timestamps generated during a given frame of work will be assigned the same time value, regardless of when within the frame the timestamps were generated. A task scheduler can update the value of the simulated clock as execution proceeds through different frames of work.


