Cross-layer Power Optimization of Software Architecture

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing data processing systems face challenges in power optimization due to power-agnostic coding practices, lack of awareness about available power-saving hardware features, and uncertainty about design choices affecting power consumption, leading to inefficient power usage in production environments.

Innovation Solution

The solution involves capturing hardware power data in a production environment and using this data in a development environment to power-optimize program code and software architecture. This is achieved by receiving subsystem power profiles across various workload traffic intensities, and using this information to optimize source code and software architecture for improved power efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Use of energy by moving object

If hardware engineers implement power-saving features in hardware, then power consumption is reduced, but code developers cannot utilize these features due to power-agnostic coding practices

Engineering Contradiction:
Improvepower consumptionVSAvoidutilization of power-saving features
Core Design Contradiction:
Use of energy by moving objectVSAdaptability or versatility

Solution Approach 1:

The system collects power consumption data from hardware in the production environment and feeds this information back to the development environment. This feedback loop enables code developers to see actual power consumption metrics and adjust their coding practices accordingly, allowing them to utilize hardware power-saving features effectively.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

A power optimization system acts as an intermediary between hardware power-saving features and code developers. This intermediary collects hardware power data, analyzes it, and provides guidance to developers on how to leverage hardware features, bridging the gap between hardware capabilities and software implementation.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Use of energy by moving object

If code developers want to employ power-aware programming practices, then power optimization is improved, but developers lack awareness of available power-saving hardware features and best coding practices

Engineering Contradiction:
Improvepower optimizationVSAvoidawareness of power-saving features
Core Design Contradiction:
Use of energy by moving objectVSLoss of information

Solution Approach 1:

The system provides feedback to developers about available power-saving hardware features and their current usage status. By displaying power consumption data and optimization opportunities, the system informs developers about features they may not otherwise know exist or how to use them effectively.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The power optimization system automatically analyzes code and provides specific recommendations for leveraging hardware power-saving features. Rather than requiring developers to independently research and understand all power-saving features, the system serves them with targeted, actionable advice based on their specific code and hardware environment.

Inventive Principle:
Principle #25Self-service

3Adaptability or versatility

If software is optimized for different data processing environments, then adaptability is improved, but power optimization in production environment is lost due to development in different environments

Engineering Contradiction:
Improveenvironment adaptabilityVSAvoidpower efficiency in production
Core Design Contradiction:
Adaptability or versatilityVSUse of energy by moving object

Solution Approach 1:

The system collects power consumption data from the production environment and feeds it back to the development environment. This allows developers to see actual production power metrics and optimize code specifically for the production hardware configuration, ensuring power efficiency is maintained across different environments.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The system enables power optimization by changing the parameters available to developers during the development phase. By providing actual production power consumption data and hardware-specific information as development parameters, developers can tune their code to optimize power efficiency for the specific production environment while maintaining adaptability.

Inventive Principle:
Principle #35Parameter changes

4Productivity

If developers make various design choices in program architecture, then functionality is improved, but impact on power consumption is uncertain

Engineering Contradiction:
Improveprogram functionalityVSAvoidpower consumption impact information
Core Design Contradiction:
ProductivityVSLoss of information

Solution Approach 1:

The system provides feedback on the power consumption impact of various design choices by measuring and reporting power metrics for different architectural decisions. Developers can see how specific design choices affect power consumption and make informed decisions that balance functionality with power efficiency.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS12307224B2Cross-layer power optimization of program code and/or software architecture
Publication Date: 2025.05.20 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US12307224B2 patent drawing
  • US12307224B2 patent drawing
  • US12307224B2 patent drawing

AI summary

According to a technique of code development, a plurality of subsystem power profiles for a corresponding plurality of subsystems of a host platform in a production data processing environment are received. Each of the subsystem power profiles specifies power consumption of a corresponding one of the plurality of subsystems across a range of workload traffic intensities. Based on the plurality of power profiles, source code and/or software architecture of the source code is power-optimized in a development data processing environment such that, in the production data processing environment, power consumption per unit of performance of an executable program derived from the source code is improved.