Parallel Processing Runtime System with Intermediate Representation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current parallel-processing computer systems lack an efficient, stable, and user-friendly software development and execution platform that supports easy program interfaces, rich library resources, program debugging, and profiling, and enables execution on various types of parallel-processing computer systems.

Innovation Solution

A runtime system that dynamically arranges for the execution of compute kernels on multiple processing elements, using a programming language-independent intermediate representation, and employs caches to optimize compilation and execution, supporting multiple programming languages and processing architectures.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a parallel-processing computer system is designed to support multiple programming languages and processing architectures, then adaptability and versatility are improved, but device complexity increases

Engineering Contradiction:
ImprovecompatibilityVSAvoidsoftware platform complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent introduces a runtime system as an intermediary layer between the application and the parallel-processing computer system. This runtime system includes a language-specific interface that translates various programming languages into a common intermediate representation, and a front end that converts this intermediate representation into execution instructions for different processing architectures. This mediator approach enables the system to support multiple programming languages and architectures without requiring complex direct integration of each language and architecture combination, thus improving adaptability while managing device complexity.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If dynamic arrangement of compute kernels on processing elements is implemented, then productivity and execution efficiency are improved, but device complexity increases

Engineering Contradiction:
Improveexecution efficiencyVSAvoidruntime system complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent implements dynamic arrangement of compute kernels on processing elements through the runtime system's execution scheduler. The scheduler dynamically determines which compute kernels to execute on which processing elements based on current system state, workload characteristics, and resource availability. This dynamic allocation mechanism improves productivity by optimizing execution efficiency in real-time, while the modular design of the runtime system manages the associated complexity through standardized interfaces and algorithms.

Inventive Principle:
Principle #15Dynamics

3Loss of time

If caches are employed to optimize compilation and execution, then loss of time is reduced, but device complexity increases

Engineering Contradiction:
Improvecompilation timeVSAvoidcache system complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The patent employs caches to store pre-compiled compute kernels and intermediate representations. When the same computation is needed again, the system retrieves it from the cache instead of recompiling, significantly reducing compilation time. The front end of the runtime system includes compilation caches that store intermediate representations and execution caches that store optimized machine code. This preliminary action of caching compilation results eliminates redundant compilation work, reducing time loss while the structured cache management approach keeps the added complexity manageable.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS8381202B2Runtime system for executing an application in a parallel-processing computer system
Publication Date: 2013.02.19 GOOGLE LLC
  • US8381202B2 patent drawing
  • US8381202B2 patent drawing
  • US8381202B2 patent drawing

AI summary

A runtime system implemented in accordance with the present invention provides an application platform for parallel-processing computer systems. Such a runtime system enables users to leverage the computational power of parallel-processing computer systems to accelerate/optimize numeric and array-intensive computations in their application programs. This enables greatly increased performance of high-performance computing (HPC) applications.