Compiler-Inserted Instructions for Multi-Core Resource Contention
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Resource contention among processing cores in high-performance computing systems leads to performance degradation due to shared resource access, with existing solutions relying heavily on programmer intervention and run-time systems for mitigation.
Innovation Solution
A method and system that compile source code to identify and mitigate resource contention by inserting additional instructions, utilizing contention status registers and control means to manage access to shared resources, allowing for predefined strategies to be executed at runtime.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Power
If multiple processing cores share common hardware resources to improve computing power, then processing capability is enhanced, but resource contention causes performance degradation
Solution Approach 1:
The compiler performs preliminary analysis of the source code to identify potential resource contention points before execution. Additional instructions are inserted during compilation to mark these contention points, enabling proactive mitigation strategies to be prepared in advance rather than reacting to contention during runtime.
Solution Approach 2:
The system uses contention status registers to provide feedback about current resource contention states. The contention control means reads these registers and adjusts resource allocation or scheduling based on the feedback, creating a closed-loop control system that dynamically responds to contention conditions.
2Device complexity
If traditional scheduling methods are used to manage shared resources, then system simplicity is maintained, but bad scheduling leads to severe performance degradation
Solution Approach 1:
The compiler performs preliminary analysis of the source code to identify potential resource contention points before execution. Additional instructions are inserted during compilation to mark these contention points, enabling proactive mitigation strategies to be prepared in advance rather than reacting to contention during runtime.
Solution Approach 2:
The contention control means acts as an intermediary between the processing cores and the shared resources. It monitors contention status through status registers and mediates resource access by applying mitigation strategies, thereby improving scheduling without requiring complete redesign of the resource management architecture.
3Productivity
If existing resource contention mitigation approaches are used, then some performance improvement is achieved, but they rely heavily on programmer intervention and run-time measurement
Solution Approach 1:
The system performs automatic contention identification and mitigation without requiring programmer intervention. The compiler automatically analyzes the source code to identify contention points, and the runtime system automatically monitors and responds to contention conditions through status registers and control means, making the system self-managing.
Solution Approach 2:
The invention replaces manual programmer intervention (mechanical process of code modification) with automated compiler analysis and runtime system monitoring. The mechanical process of programmers manually identifying and fixing contention issues is substituted with automated software analysis tools that perform the same function.
Data Source
Figure 1~2
Figure 3
Figure 4
AI summary
A processing method of a software application on a computer system having a plurality of processing cores for independently executing instructions, some common hardware resources in the system being shared among the cores. Source code for the application is developed by a programmer (S10). The source code of the application is compiled (S14) to obtain a sequence of executable instructions for the cores by analysing the source code, identifying at least one resource contention among the cores predicted to result from execution of instructions by the cores, and inserting an additional instruction in the sequence for at least identifying the resource contention. Then the compiled application is run (S18) by executing the sequence of executable instructions by said cores to perform operations in said computer system, these operations including action to mitigate the resource contention in response to executing said additional instruction. Results of execution can be collected and fed back to the development process. The method allows possible resource contention to be indicated automatically as part of the compilation process and mitigated, if necessary, at run-time.