Multi-thread Runtime System for Parallel Processing

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 interface, rich library resources, program debugging, and profiling, and enables seamless execution across different types of parallel-processing systems.

Innovation Solution

A runtime system with multiple execution threads that dynamically manage compute kernels, schedule processing, and execute operations across various processing elements, featuring a Language-Specific Interface, Front End, compilation scheduler, trace cache, macro cache, and execution scheduler to optimize compute kernel generation and execution.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a parallel-processing computer system is used to provide tremendous computing capacity, then processing power and productivity are improved, but the complexity of software development and execution platform increases

Engineering Contradiction:
Improvecomputing capacityVSAvoidsoftware development platform complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The runtime system is designed to be architecture-agnostic and language-agnostic, providing a universal execution platform that can run compute kernels on different types of processing elements (CPUs, GPUs, FPGAs) and support multiple programming languages through language-specific interfaces. This universality allows the same application to execute on various parallel-processing systems without modification, reducing software development complexity while maintaining high computing capacity

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

Solution Approach 2:

The runtime system acts as an intermediary layer between the high-level application code and the underlying parallel-processing hardware. It includes components such as the compilation scheduler, execution scheduler, and kernel management system that translate user-friendly program interfaces into optimized executeable code for diverse hardware architectures. This intermediary abstraction shields developers from hardware complexity while enabling efficient utilization of parallel-processing capacity

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If a unified runtime system is designed to support execution on any type of parallel-processing computer system, then adaptability is improved, but device complexity increases

Engineering Contradiction:
Improveportability across systemsVSAvoidruntime system complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The runtime system implements a universal execution model that can adapt to different processing element architectures through standardized interfaces. The system includes architecture-specific backends that handle the complexities of different hardware platforms while presenting a unified interface to applications. This allows the same runtime system to manage execution on CPUs, GPUs, FPGAs, and other parallel-processing devices without requiring separate systems for each architecture

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

Solution Approach 2:

The runtime system is segmented into modular components including language-specific interfaces, front ends, compilation schedulers, execution schedulers, and kernel management systems. Each module handles specific aspects of the execution process and can be independently configured for different target architectures. This segmentation allows the system to maintain high adaptability across different platforms while managing complexity through modular design, where each segment can be optimized for its specific function

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS8418179B2Multi-thread runtime system
Publication Date: 2013.04.09 GOOGLE LLC
  • US8418179B2 patent drawing
  • US8418179B2 patent drawing
  • US8418179B2 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.