Runtime Library Dispatch for Heterogeneous Multiprocessor Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Heterogeneous multi-core processing systems face challenges in efficiently distributing computations across diverse processing elements due to limited compiler support for specialized accelerators and reconfigurable logic elements, leading to inefficiencies in performance and resource utilization.

Innovation Solution

A library-based compilation and runtime dispatch system that uses variants of functions, each optimized for specific hardware elements, allowing dynamic allocation of tasks across multiple cores without requiring comprehensive compiler support for each type of processing unit, utilizing a compiler and runtime library to map parallel programming keywords to appropriate hardware-specific implementations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If comprehensive compiler support is provided for each type of processing unit, then hardware support and reliability are improved, but device complexity and manufacturing difficulty increase

Engineering Contradiction:
Improvehardware supportVSAvoidcompiler support complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent introduces a runtime library as an intermediary between the high-level parallel programming language and the heterogeneous hardware architecture. The runtime library provides hardware-specific implementations of parallel constructs, allowing the compiler to generate portable code that is then specialized at runtime without requiring comprehensive compiler support for each hardware type.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent segments the execution model into two phases: compile-time code generation for portable parallel constructs and runtime-time specialization for hardware-specific implementations. This segmentation allows the compiler to focus on high-level portability while hardware-specific optimizations are applied at runtime through the runtime library.

Inventive Principle:
Principle #1Segmentation

2Adaptability or versatility

If manual modifications are made to support new hardware variants, then adaptability is improved, but ease of manufacture and development time are worsened

Engineering Contradiction:
Improvehardware variant supportVSAvoiddevelopment time
Core Design Contradiction:
Adaptability or versatilityVSEase of manufacture

Solution Approach 1:

The runtime library provides a universal interface that can support multiple hardware architectures through a single codebase. New hardware variants are supported by adding new implementations to the runtime library rather than modifying existing code, allowing one library to serve multiple hardware platforms.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The system enables dynamic adaptation to new hardware variants at runtime without requiring manual modifications to the runtime library or existing code. The runtime library can be extended with new hardware-specific implementations as needed, allowing the system to adapt dynamically to emerging hardware architectures.

Inventive Principle:
Principle #15Dynamics

3Productivity

If specialized compiler support is provided for each processing element, then productivity and performance are improved, but device complexity increases

Engineering Contradiction:
Improvecomputation distribution efficiencyVSAvoidcompiler architecture
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The runtime library acts as an intermediary that handles the complexity of mapping parallel programming constructs to hardware-specific implementations. This allows the compiler to generate simple, portable code while the runtime library handles the complex task of optimizing for specific hardware architectures, separating compiler complexity from hardware complexity.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS8296743B2Compiler and runtime for heterogeneous multiprocessor systems
Publication Date: 2012.10.23 INTEL CORP
  • US8296743B2 patent drawing
  • US8296743B2 patent drawing
  • US8296743B2 patent drawing

AI summary

Presented are embodiments of methods and systems for library-based compilation and dispatch to automatically spread computations of a program across heterogeneous cores in a processing system. The source program contains a parallel-programming keyword, such as mapreduce, from a high-level, library-oriented parallel programming language. The compiler inserts one or more calls for a generic function, associated with the parallel-programming keyword, into the compiled code. A runtime library provides a predicate-based library system that includes multiple hardware specific implementations (“variants”) of the generic function. A runtime dispatch engine dynamically selects the best-available (e.g., most specific) variant, from a bundle of hardware-specific variants, for a given input and machine configuration. That is, the dispatch engine may take into account run-time availability of processing elements, choose one of them, and then select for dispatch an appropriate variant to be executed on the selected processing element. Other embodiments are also described and claimed.