Virtualizer for Task Allocation in Heterogeneous Computing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Heterogeneous computing systems face challenges in optimizing task allocation across diverse processing devices with different micro-architectures and programming platforms, lacking an automated tool for dynamic task distribution.
Innovation Solution
A system and method that utilize a virtualizer to extract application kernel parameters, predict execution times across various processing elements, and allocate tasks based on least execution time rankings, providing an optimized and automated task allocation.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If a unified programming framework like OpenCL is used, then programming compatibility is improved, but the programmer burden of specifying workload assignment increases
Solution Approach 1:
The system performs self-service by automatically analyzing application kernels and assigning them to appropriate processing devices without requiring programmer intervention. The workload assignment is determined by the system itself based on kernel parameters and device characteristics, eliminating the burden of manual specification while maintaining unified framework compatibility
Solution Approach 2:
An intermediary component is introduced between the programmer and the heterogeneous computing devices. This intermediary automatically analyzes kernel parameters, evaluates device suitability, and performs workload assignment, thereby shielding the programmer from the complexity of manual assignment while maintaining the benefits of the unified programming framework
2Productivity
If automated task allocation is implemented, then task distribution efficiency is improved, but system complexity increases
Solution Approach 1:
The automated task allocation system is segmented into distinct functional modules: kernel parameter extraction, device characteristic analysis, suitability evaluation, and workload assignment. This modular segmentation manages system complexity by organizing the automation process into manageable, independent components that can be developed and maintained separately
Solution Approach 2:
The system performs preliminary actions by pre-analyzing kernel parameters and device characteristics before actual task execution. This preliminary analysis enables the system to make informed allocation decisions in advance, improving task distribution efficiency while containing complexity within the preparation phase rather than during runtime
Data Source
AI summary
A method and system for automatically optimizing task allocation in heterogeneous computing systems is disclosed. The system comprises a plurality of target processing elements and a host processor. The host processor is configured to receive one or more requests from one or more applications for task allocation. During compilation, a virtualizer extracts parameters of kernels of the one or more applications and receives the architectures of the plurality of target processing elements. The virtualizer comprises a device conformability module and a mapping module. The device conformability module provides a prediction on execution time of the kernels for each of the architectures based on the parameters. The mapping module compares the predictions and indicates a ranking of the plurality of target processing elements based on least execution time for each of the kernels and determines a combination of the plurality of target processing elements based on the mapping prediction to optimize the task allocation.


