Application Thread Prioritization for OS Noise Mitigation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Operating system noise (OS noise) negatively impacts the performance of parallel applications, particularly those using static scheduling, by causing interruptions that delay the execution of entire parallel regions.

Innovation Solution

A method and apparatus for application thread prioritization, where an interrupt condition is detected, and the priority of the interrupted thread is changed relative to other threads, with a thread priority register set to a higher value to resume execution efficiently, utilizing quality-of-service prioritization and techniques like cache partitioning, dynamic voltage and frequency scaling, and logic reconfiguration.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If OS noise interruptions occur during parallel application execution, then system responsiveness is improved, but application execution speed deteriorates

Engineering Contradiction:
Improvesystem responsivenessVSAvoidapplication execution speed
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The patent dynamically adjusts thread priorities based on interrupt conditions. When an application thread is interrupted by OS noise, its priority is increased to ensure it can resume execution quickly. This dynamic priority adjustment resolves the contradiction by allowing the system to respond to interrupts while minimizing the impact on application execution speed through targeted priority boosting of affected threads.

Inventive Principle:
Principle #15Dynamics

2Productivity

If thread priority is increased to resume execution quickly, then application execution speed is improved, but system scheduling fairness deteriorates

Engineering Contradiction:
Improveapplication execution speedVSAvoidscheduling fairness
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent applies preliminary action by pre-establishing priority boosting mechanisms for application threads before interruptions occur. When an interrupt is detected, the system has already prepared the priority adjustment logic, allowing for rapid priority elevation without ad-hoc scheduling decisions that could compromise fairness. This prepares the system in advance to handle interruptions minimally invasively.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent changes the priority parameter of interrupted application threads temporarily to accelerate their resumption. By modifying only the priority parameter of specific affected threads rather than globally adjusting scheduling parameters, the system maintains scheduling fairness for other threads while improving execution speed for the interrupted application threads.

Inventive Principle:
Principle #35Parameter changes

3Device complexity

If static scheduling is used in parallel regions, then application structure is simplified, but execution efficiency deteriorates due to interrupt delays

Engineering Contradiction:
Improveapplication structureVSAvoidexecution efficiency
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent applies local quality by implementing priority adjustments specifically for interrupted application threads within parallel regions, rather than changing the overall static scheduling structure. This allows the simple static scheduling framework to be maintained while locally optimizing the execution of affected threads through targeted priority boosting, thus improving execution efficiency without complicating the application structure.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS11144318B2Method and apparatus for application thread prioritization
Publication Date: 2021.10.12 ARM LTD
  • US11144318B2 patent drawing
  • US11144318B2 patent drawing
  • US11144318B2 patent drawing

AI summary

A method and apparatus for application thread prioritization to mitigate the effects of operating system noise is disclosed. The method generally includes executing in parallel a plurality of application threads of a parallel application. An interrupt condition of an application thread of the plurality of application threads is detected. A priority of the interrupted application thread is changed relative to priorities of one or more other application threads of the plurality of application threads, and control is returned to the interrupted application thread after the interrupt condition. The interrupted application thread then resumes execution in accordance with the changed priority.