Multi-core Stream Processor Scheduler with Bottleneck Detection
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In conventional multi-core stream processing systems, the varying workloads of stream processing units lead to suboptimal utilization rates, negatively impacting system performance.
Innovation Solution
A multi-core stream processing system with N stream processing units and N+1 stream fetching units, where a scheduler determines whether each unit encounters a bottleneck condition and dynamically assigns stream elements to non-bottleneck units for processing, ensuring efficient resource allocation.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If each stream processing unit processes streams independently, then the system can handle multiple streams simultaneously, but the utilization rate of each unit cannot be optimized due to varying workloads
Solution Approach 1:
The scheduler continuously monitors the status of each stream processing unit and uses this feedback information to dynamically adjust stream element distribution. When a unit encounters a bottleneck condition, the scheduler redirects streams to other units, creating a closed-loop control system that optimizes utilization based on real-time performance data
Solution Approach 2:
The system dynamically adjusts the assignment of stream elements to processing units based on changing workload conditions. The scheduler makes real-time decisions about which unit should process which stream element, allowing the system to adapt to varying workloads and optimize performance on-the-fly rather than using static assignments
2Speed
If stream elements are dispatched to the first available processing unit, then the system responds quickly, but bottleneck conditions cause reduced utilization of available units
Solution Approach 1:
The scheduler monitors bottleneck conditions in each processing unit and uses this feedback to make informed dispatch decisions. Instead of blindly sending streams to the first available unit, the system checks the actual operational state and redirects to units that can truly process streams without causing bottlenecks, thereby maintaining both speed and utilization
Solution Approach 2:
The scheduler acts as an intermediary between stream fetching units and stream processing units. It receives stream elements from fetchers, evaluates the status of processing units, and makes intelligent routing decisions. This intermediary role allows the system to balance quick response with optimal resource allocation by mediating between the fetchers and processors
Data Source
AI summary
In a multi-core stream processing system and scheduling method of the same, a scheduler is coupled to a number (N) of stream processing units and a number (N+1) of stream fetching units, where N≧2. When the scheduler receives a stream element from a Pth stream fetching unit, the scheduler assigns a Pth stream processing unit as a target stream processing unit when the Pth stream processing unit does not encounter a bottleneck condition, assigns a Qth stream processing unit, which does not encounter the bottleneck condition, as the target stream processing unit when the Pth stream processing unit encounters the bottleneck condition, where 1≦P≦N, 1≦Q≦N, and P≠Q, and dispatches the received stream element to the target stream processing unit such that the target stream processing unit processes the stream element dispatched from the scheduler.


