Compiler-Inserted Instructions for Multi-Core Resource Contention

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improveprocessing capabilityVSAvoidperformance
Core Design Contradiction:
PowerVSProductivity

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.

Inventive Principle:
Principle #10Preliminary action

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.

Inventive Principle:
Principle #23Feedback

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

Engineering Contradiction:
Improvescheduling system complexityVSAvoidperformance
Core Design Contradiction:
Device complexityVSProductivity

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.

Inventive Principle:
Principle #10Preliminary action

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

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

Engineering Contradiction:
ImproveperformanceVSAvoidprogrammer intervention requirement
Core Design Contradiction:
ProductivityVSEase of operation

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.

Inventive Principle:
Principle #25Self-service

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.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Data Source

PatentEP2731008B1Resource contention in multiple cores
Publication Date: 2020.03.18 FUJITSU LTD
  • EP2731008B1 patent drawingFigure 1~2
  • EP2731008B1 patent drawingFigure 3
  • EP2731008B1 patent drawingFigure 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.