Executable Code Version Selection for Runtime Optimization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current optimization techniques for executable code often degrade performance when executed on different processor types or under varying runtime conditions such as core utilization and temperature, leading to suboptimal application performance.

Innovation Solution

A system that selectively executes different versions of executable code optimized for specific conditions by evaluating test conditions such as core utilization, processor temperature, and processor type, using a new conditional branch instruction to redirect control flow and choose the appropriate code version at runtime.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If executable code is optimized for a specific processor type, then performance on that processor type is improved, but performance on other processor types degrades

Engineering Contradiction:
Improveapplication performanceVSAvoidprocessor type compatibility
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The executable code is segmented into multiple versions, each optimized for specific processor types or runtime conditions. The system divides the codebase into alternative implementations that can be selectively executed based on the detected environment, resolving the contradiction between optimization for specific processors and compatibility across different processors.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system dynamically selects which version of the executable code to run based on runtime conditions such as processor type, core utilization, and temperature. This dynamic adaptation allows the application to maintain optimal performance across varying hardware configurations without requiring separate compiled binaries for each processor type.

Inventive Principle:
Principle #15Dynamics

2Productivity

If aggressive speculation optimization is employed, then performance on lightly utilized cores is improved, but performance degrades when cores are heavily utilized due to excessive resource consumption

Engineering Contradiction:
Improveapplication performanceVSAvoidperformance stability under varying load
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system dynamically adjusts the speculation optimization level based on detected core utilization. When cores are lightly utilized, aggressive speculation is enabled to maximize performance. When cores are heavily utilized, the system switches to a more conservative optimization version that consumes fewer processor resources, thereby maintaining stable performance across varying load conditions.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes optimization parameters (such as speculation aggressiveness) based on runtime conditions. By detecting core utilization levels and switching between different code versions with different optimization parameters, the system resolves the contradiction between achieving high performance under light load and maintaining stable performance under heavy load.

Inventive Principle:
Principle #35Parameter changes

3Temperature

If clock-frequency is reduced or cores are disabled to manage processor temperature, then thermal issues are mitigated, but application performance degrades

Engineering Contradiction:
Improveprocessor/core temperatureVSAvoidapplication performance
Core Design Contradiction:
TemperatureVSProductivity

Solution Approach 1:

The system prepares multiple versions of executable code in advance, with different optimization characteristics. When thermal issues are detected, the system can immediately switch to a version optimized for thermal efficiency without needing to reduce clock-frequency or disable cores, thus mitigating thermal issues while maintaining acceptable performance.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system changes execution parameters by switching between different code versions optimized for different thermal conditions. This allows the system to manage processor temperature through software optimization rather than hardware throttling, thereby avoiding performance degradation from frequency reduction or core disabling.

Inventive Principle:
Principle #35Parameter changes

4Productivity

If multiple differently optimized code versions are maintained, then optimal performance under different conditions is achieved, but system complexity increases

Engineering Contradiction:
Improveoptimized performance across conditionsVSAvoidexecutable code structure
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system creates a universal executable code module that can execute multiple differently optimized versions of the same source code. This multi-functional design allows a single binary to adapt to various processor types and runtime conditions, achieving optimal performance across conditions while presenting a simple unified interface to the user.

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

Data Source

PatentUS7543282B2Method and apparatus for selectively executing different executable code versions which are optimized in different ways
Publication Date: 2009.06.02 ORACLE AMERICAN INC
  • US7543282B2 patent drawing
  • US7543282B2 patent drawing
  • US7543282B2 patent drawing

AI summary

One embodiment of the present invention provides a system that selectively executes different versions of executable code for the same source code. During operation, the system first receives an executable code module which includes two or more versions of executable code for the same source code, wherein the two or more versions of the executable code are optimized in different ways. Next, the system executes the executable code module by first evaluating a test condition, and subsequently executing a specific version of the executable code based on the outcome of the evaluation, so that the execution is optimized for the test condition.