Stream Processing Execution Engine Scheduling on Heterogeneous Hardware
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Developing stream processing applications for heterogeneous hardware devices is challenging due to the lack of automatic run-time parallelism and dynamic resource selection in existing software development tools and run-time environments, leading to poor portability and optimization of computational resources.
Innovation Solution
A stream processing execution engine evaluates performance characteristics of multiple computational resources and schedules execution of software components to satisfy defined performance criteria, using a run-time hardware scheduler to dynamically allocate resources and manage data parallelism, ensuring optimal execution on heterogeneous hardware devices.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If stream processing applications are designed for specific hardware with specialized software development tools, then execution performance on that hardware is optimized, but portability across heterogeneous hardware devices deteriorates
Solution Approach 1:
The patent creates a universal stream processing framework that can execute on multiple heterogeneous hardware platforms (CPU, GPU, DSP, FPGA) through a common intermediate representation and runtime system, allowing the same application to port across different devices while maintaining optimized performance through platform-specific code generation
2Productivity
If manual optimization is performed for each hardware platform, then execution efficiency is improved, but development complexity and time increase
Solution Approach 1:
The patent performs preliminary optimization at compile time by generating platform-specific code from an intermediate representation, pre-calculating optimal execution strategies for each target hardware platform, so that runtime execution requires no manual intervention and achieves high efficiency automatically
Solution Approach 2:
The patent introduces an intermediate representation layer between the source code and target hardware platforms, serving as a mediator that enables automatic translation and optimization for different architectures without requiring developers to manually optimize for each platform
3Ease of operation
If computational resources are statically allocated, then resource management is simplified, but resource utilization efficiency deteriorates
Solution Approach 1:
The patent implements dynamic resource allocation at runtime based on actual workload characteristics and available computational resources, allowing the system to adaptively adjust resource distribution to maximize utilization efficiency while maintaining simplified resource management through automated scheduling
Data Source
AI summary
A stream processing execution engine evaluates development-time performance characteristic estimates in combination with run-time parameters to schedule execution of stream processing software components in a stack of a stream processing application that satisfy a defined performance criterion in a heterogeneous hardware device. A stream processing application includes a stack of interdependent stream processing software components. A stream processing execution engine evaluates one or more performance characteristics of multiple computational resources in the heterogeneous hardware device. Each performance characteristic is associated with performance of a computational resource in executing a computational-resource-dependent instance of a stream processing software component. The stream processing execution engine schedules within the run-time environment a computational resource on which to execute a computational-resource-dependent instance of one of the stream processing software components. The computational-resource-dependent instance is targeted for execution on the computational resource that satisfies a performance policy attributed to the stream processing software component.


