Processor Resource Utilization via Program Version Selection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Software applications often fail to optimize processor performance due to mismatch between available computational resources and resource utilization, leading to suboptimal execution on newer processors.

Innovation Solution

A system and method that analyze various program versions to determine which one best utilizes processor resources by comparing computational resources consumed with available resources, selecting the optimal version for execution, and adjusting performance metrics if necessary to ensure compatibility.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of manufacture

If software applications are developed for latest hardware platforms, then development efficiency is improved, but processor resource utilization deteriorates

Engineering Contradiction:
Improvedevelopment efficiencyVSAvoidprocessor resource utilization
Core Design Contradiction:
Ease of manufactureVSProductivity

Solution Approach 1:

The system performs preliminary analysis of processor capabilities and program requirements before execution. It pre-determines the optimal program version by comparing available computational resources with resource utilization patterns of different program variations, ensuring optimal processor utilization from the start of execution.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system changes execution parameters by selecting different program versions based on matched processor capabilities. Each program version is optimized for specific processor characteristics, and the system dynamically selects the appropriate version by comparing processor parameters (FLOPS, memory, architecture) with program requirements.

Inventive Principle:
Principle #35Parameter changes

2Productivity

If program versions are analyzed and selected at runtime, then processor resource utilization is improved, but execution time increases

Engineering Contradiction:
Improveprocessor resource utilizationVSAvoidexecution time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The system performs the resource analysis and program version selection during system initialization or program loading, before actual execution begins. This preliminary action ensures that when the program runs, the optimal version is already selected, avoiding runtime overhead during the critical execution phase.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system implements self-service by automatically analyzing processor capabilities and selecting the appropriate program version without requiring manual intervention or complex runtime decision-making. The selection process is autonomous and based on pre-established criteria matching processor resources with program requirements.

Inventive Principle:
Principle #25Self-service

3Adaptability or versatility

If multiple program variations are maintained, then adaptability to different processors is improved, but system complexity increases

Engineering Contradiction:
Improveadaptability to processorsVSAvoidsystem complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The system implements a universal program selection mechanism that can handle multiple program variations through a single unified interface. The selection process uses a common framework that compares processor capabilities with program requirements, making the system able to work with diverse program versions without requiring separate handling logic for each.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The system introduces an intermediary selection layer between the processor and program variations. This intermediary component analyzes processor capabilities and matches them with appropriate program versions, shielding the complexity of managing multiple variations from the user and the execution environment.

Inventive Principle:
Principle #24Intermediary (Mediator)

4Productivity

If performance metrics are strictly enforced, then program performance is improved, but compatibility with limited processors deteriorates

Engineering Contradiction:
Improveprogram performanceVSAvoidcompatibility with processors
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The system dynamically changes performance parameters by selecting program versions optimized for different processor capability levels. When a processor has limited resources, the system selects a version that adjusts performance metrics to match available resources, ensuring compatibility while maintaining the best possible performance for that specific hardware.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The system implements dynamic adaptation by adjusting program selection based on real-time assessment of processor capabilities. Rather than enforcing fixed performance metrics, the system dynamically matches program versions to processor resources, allowing performance levels to vary according to available computational power.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS20220261287A1Method and apparatus for improving processor resource utilization during program execution
Publication Date: 2022.08.18 NVIDIA CORP
  • US20220261287A1 patent drawing
  • US20220261287A1 patent drawing
  • US20220261287A1 patent drawing

AI summary

Systems and methods for improving the degree to which programs utilize processor resources during execution. A number of different versions of a program are received, as is a set of performance metrics describing desired performance of the program versions. The programs are then analyzed to determine the amount of processor resources used on a particular processor when the programs are executed to meet the performance metrics. At runtime, a program version that meets its performance metrics without exceeding the available processor resources is selected for execution by the processor. Program versions may be versions written to utilize processors in differing manner, such as by adjusting the numerical precision at which operations are performed or stored. If no program version meets its performance metrics without exceeding the available processor resources, the performance metrics may be reduced and program selection may be based on these reduced performance metrics.