Parallel Processing Runtime System with 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 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
Engineering 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
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.
2Productivity
If dynamic arrangement of compute kernels on processing elements is implemented, then productivity and execution efficiency are improved, but device complexity increases
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.
3Loss of time
If caches are employed to optimize compilation and execution, then loss of time is reduced, but device complexity increases
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.
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.


