Virtualizer for Task Allocation in Heterogeneous Computing

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improveprogramming compatibilityVSAvoidprogrammer burden
Core Design Contradiction:
Adaptability or versatilityVSEase of operation

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

Inventive Principle:
Principle #25Self-service

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

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If automated task allocation is implemented, then task distribution efficiency is improved, but system complexity increases

Engineering Contradiction:
Improvetask distribution efficiencyVSAvoidsystem complexity
Core Design Contradiction:
ProductivityVSDevice complexity

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

Inventive Principle:
Principle #1Segmentation

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

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10628223B2Optimized allocation of tasks in heterogeneous computing systems
Publication Date: 2020.04.21 AMRITA VISHWA VIDYAPEETHAM
  • US10628223B2 patent drawing
  • US10628223B2 patent drawing
  • US10628223B2 patent drawing

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.