Parallel Processing Runtime System Using Intermediate Representation
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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
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.
Data Source
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.


