Cross-layer Power Optimization of Software Architecture
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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.
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
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.
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.
4Productivity
If developers make various design choices in program architecture, then functionality is improved, but impact on power consumption is uncertain
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.
Data Source
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.


