Heterogeneous Multicore Task Assignment via Runtime Execution Measurement
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In heterogeneous multicore systems, accurately assigning tasks to cores with different instruction sets and clock rates is challenging due to the complexity of predicting execution times, leading to inaccuracies and inefficient machine code generation.
Innovation Solution
A method that determines execution times and efficiency factors for each core, allowing dynamic assignment of machine code based on actual performance and workload, enabling optimal core selection for tasks at runtime without prior estimation.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If static prediction models are used to estimate execution time during compilation, then task assignment can be performed, but large inaccuracies occur making it difficult to generate optimum machine code
Solution Approach 1:
The patent transitions from static execution time prediction models to dynamic measurement. Instead of relying on complex predictive models during compilation, the system actually measures execution times during runtime on the target hardware. This dynamic approach eliminates the inaccuracy of static predictions while avoiding the complexity of developing and maintaining sophisticated prediction models for each device type.
Solution Approach 2:
The system implements feedback by measuring actual execution times of code segments on different cores and using this measured data to inform subsequent task assignments. The measured performance data feeds back into the assignment decision process, allowing the system to continuously improve its task distribution based on real hardware performance characteristics rather than theoretical models.
2Productivity
If heterogeneous cores with different instruction sets are used, then computational efficiency for specific operations improves, but accurate task assignment becomes significantly more difficult
Solution Approach 1:
The patent changes the approach from predicting execution time based on device parameters (instruction sets, clock rates, architecture) to directly measuring execution time as a parameter. By measuring actual performance rather than calculating it from device specifications, the system handles the complexity of heterogeneous cores uniformly, regardless of their different instruction sets and architectures.
Solution Approach 2:
The heterogeneous multicore system performs self-characterization by automatically measuring its own execution times on different cores. Instead of requiring external complex models or manual characterization of each core's capabilities, the system generates its own performance data through runtime measurements, enabling automatic optimal task assignment across diverse core types.
3Measurement precision
If execution time measurement is performed on all available cores, then optimal core selection is enabled, but processing overhead increases
Solution Approach 1:
The patent applies partial action by measuring execution times on a representative subset of cores rather than exhaustively testing all possible core combinations. The system measures performance on one or more cores of each type and uses these measurements to infer performance characteristics, avoiding the excessive time cost of measuring every core individually while still achieving accurate task assignment.
Solution Approach 2:
The system performs preliminary measurement of execution times during an initialization phase or during idle periods before actual task assignment begins. By conducting these measurements in advance, the performance data is available when needed for task assignment without adding overhead to the critical task execution path, thus minimizing time loss during operational phases.
Data Source
AI summary
A multicore processor is provided. In order to select one of the multiple cores in such a multicore processor, an execution time of tasks which are performed multiple times is determined. Based on the determined execution time on the individual cores, an appropriate core for further executions of a task is selected. Additionally, the present disclosure further provides a code generator and code generating method for providing appropriate machine code for the multicore processor.


