Parallel Processing Runtime System Using 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 multiple programming languages and provides rich library resources for debugging, profiling, and execution across different architectures.

Innovation Solution

A runtime system that generates a programming language-independent, processor-independent intermediate representation of operation requests, dynamically selects processing elements, and prepares compute kernels for execution, enabling easy porting of applications and integration with standard libraries, while supporting multiple programming languages and optimizing performance across various processing elements.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a parallel-processing computer system uses multiple processing elements with different architectures, then computing power and versatility are improved, but system complexity and difficulty of software porting increase

Engineering Contradiction:
Improvesupport for multiple programming languages and architecturesVSAvoidsoftware development platform complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent introduces an intermediate representation (IR) as a mediator between high-level programming languages and low-level processing element instructions. The IR serves as a language-agnostic, architecture-independent intermediate form that enables code to be compiled from multiple programming languages and executed on different processing element architectures without requiring separate compilation paths for each language-architecture combination.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The runtime system and compilation pipeline are designed with universal components that handle multiple programming languages (C, C++, Fortran, MATLAB) and multiple processing element types through a single unified interface. The intermediate representation and runtime system provide multi-functionality by serving as a common platform for diverse language-to-processor compilations.

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

2Ease of operation

If the system provides extensive debugging and profiling capabilities across multiple languages, then ease of operation is improved, but device complexity increases

Engineering Contradiction:
Improvedebugging and profiling capabilityVSAvoidsoftware platform complexity
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The intermediate representation serves as a mediator that enables unified debugging and profiling tools to work across multiple programming languages. By translating diverse language constructs into a common IR format, the system allows single debugging and profiling interfaces to operate on code regardless of its original programming language, simplifying the user experience while managing complexity internally.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If the runtime system dynamically selects processing elements and generates compute kernels, then productivity and performance optimization are improved, but use of energy and computational overhead increase

Engineering Contradiction:
Improveapplication execution efficiencyVSAvoidruntime system computational overhead
Core Design Contradiction:
ProductivityVSUse of energy by moving object

Solution Approach 1:

The system performs preliminary analysis of the intermediate representation to determine optimal processing element selection and compute kernel generation before actual execution. By pre-computing execution plans and selecting appropriate processing elements in advance, the runtime system reduces the need for complex real-time decisions during execution, thereby lowering runtime overhead and energy consumption.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS8745603B2Application program interface of a parallel-processing computer system that supports multiple programming languages
Publication Date: 2014.06.03 GOOGLE LLC
  • US8745603B2 patent drawing
  • US8745603B2 patent drawing
  • US8745603B2 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.