IP Library Granted Patent US 12,307,224
Granted Patent B2
US 12,307,224 · App. 18/334,935 · Granted May 20, 2025

Cross-layer power optimization of program code and/or software architecture

Inventors: Dinesh Kumar (Poughkeepsie, NY); Colleen Ann Weller (Wappingers Falls, NY); Margaret Annabelle Allen (Jericho, VT); Addison Daniel Ferrari (New Paltz, NY); Gary A. Van Huben (Poughkeepsie, NY)
Assignee: International Business Machines Corporation
G06F8/4432
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,307,224
App. No.
18/334,935
Granted
May 20, 2025
Kind
B2
Abstract

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.

Claims (32)

1. A method of data processing, comprising:

capturing raw subsystem power data from a production data processing environment via an application programming interface;

based on the raw subsystem power data, developing a plurality of subsystem power profiles for a corresponding plurality of subsystems of a host platform in the production data processing environment, wherein 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; and

based on the plurality of power profiles, power-optimizing source code 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.

2. The method of claim 1 , further comprising generating the subsystem power profiles, wherein the generating includes:

filtering raw subsystem power data from the production data processing environment using a Kalman filter.

3. The method of claim 1 , wherein power-optimizing the source code includes power-optimizing the source code based on static code analysis in the development data processing environment.

4. The method of claim 1 , wherein power-optimizing the source code includes determining workload power consumption based on workload traffic intensity and traffic power cost.

5. The method of claim 1 , wherein power-optimizing the source code includes iteratively power-optimizing the source code based on updated subsystem power profiles.

6. The method of claim 1 , further comprising outputting a report predicting improvement in power consumption and utilization of the plurality of subsystems in the production data processing environment based on updates to the source code.

7. A computer program product, the computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions being executable by a processor, wherein, when executed, the program instructions cause the processor to perform:

capturing raw subsystem power data from a production data processing environment via an application programming interface;

based on the raw subsystem power data, developing a plurality of subsystem power profiles for a corresponding plurality of subsystems of a host platform in the production data processing environment, wherein 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; and

based on the plurality of power profiles, power-optimizing source code 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.

8. The program product of claim 7 , further comprising generating the subsystem power profiles, wherein the generating includes:

filtering raw subsystem power data from the production data processing environment using a Kalman filter.

9. The program product of claim 7 , wherein power-optimizing the source code includes power-optimizing the source code based on static code analysis in the development data processing environment.

10. The program product of claim 7 , wherein power-optimizing the source code includes determining workload power consumption based on workload traffic intensity and traffic power cost.

11. The program product of claim 7 , wherein power-optimizing the source code includes iteratively power-optimizing the source code based on updated subsystem power profiles.

12. The program product of claim 7 , further comprising outputting a report predicting improvement in power consumption and utilization of the plurality of subsystems in the production data processing environment based on updates to the source code.

13. A data processing system, comprising:

a processor core; and

data storage coupled to the processor core, wherein the data storage includes program code that, when executed by the processor core, causes the processor core to perform:

capturing raw subsystem power data from a production data processing environment via an application programming interface;

based on the raw subsystem power data, developing a plurality of subsystem power profiles for a corresponding plurality of subsystems of a host platform in the production data processing environment, wherein 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; and

based on the plurality of power profiles, power-optimizing source code 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.

14. The program product of claim 13 , further comprising generating the subsystem power profiles, wherein the generating includes:

filtering raw subsystem power data from the production data processing environment using a Kalman filter.

15. The program product of claim 13 , wherein power-optimizing the source code includes power-optimizing the source code based on static code analysis in the development data processing environment.

16. The program product of claim 13 , wherein power-optimizing the source code includes determining workload power consumption based on workload traffic intensity and traffic power cost.

17. The program product of claim 13 , wherein power-optimizing the source code includes iteratively power-optimizing the source code based on updated subsystem power profiles.

18. The program product of claim 13 , further comprising outputting a report predicting improvement in power consumption and utilization of the plurality of subsystems in the production data processing environment based on updates to the source code.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 14, 2023
From: KUMAR, DINESH; WELLER, COLLEEN ANN; ALLEN, MARGARET ANNABELLE; FERRARI, ADDISON DANIEL; VAN HUBEN, GARY A.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 063954/0382 →
Continuity (1)
Related Publication 20240419417A1 · Dec 19, 2024
References Cited (23)
US 6976178B1 · Kissell · 2005 [cited by examiner]
US 7222030B2 · Banginwar · 2007 [cited by applicant]
US 11009836B2 · Hoffmann · 2021 [cited by applicant]
US 11237894B1 · Baum · 2022 [cited by applicant]
US 11263077B1 · Seznayov · 2022 [cited by applicant]
US 20040268159A1 · Aasheim · 2004 [cited by applicant]
US 20050229149A1 · Munter · 2005 [cited by applicant]
US 20070198864A1 · Takase · 2007 [cited by applicant]
US 20070260894A1 · Aguilar · 2007 [cited by examiner]
US 20110154309A1 · Sazegari · 2011 [cited by applicant]
US 20130046967A1 · Fullerton · 2013 [cited by examiner]
US 20150370681A1 · Tonry · 2015 [cited by examiner]
US 20170045927A1 · Bahgsorkhi · 2017 [cited by examiner]
US 20230071775A1 · Kachare · 2023 [cited by examiner]
Barde, Kaushik, et al., SEPIA: A Framework for Optimizing Energy Consumption in Android Devices, 12th Annual IEEE Consumer Communications and Networking Conference (CCNC), Jan. 2015, 8 pages, [retrieved on Jan. 14, 2025… [cited by examiner]
“Kalman Filter Explained Simply,” 13 pages, accessed May 26, 2023 from https://thekalmanfilter.com/kalman-filter-explained-simply/. [cited by applicant]
“Numerical Method Allowing Multi-Layer Optical Model Evaluation in Production Environment,” Mar. 6, 2014, 9 pages, IPCOM000235532D, ip.com. [cited by applicant]
“Power Profiler,” Mar. 26, 2013, 6 pages, IPCOM000226277D, ip.com. [cited by applicant]
“Software Power Profiler,” Jun. 6, 2012, 4 pages, IPCOM000218651D, ip.com. [cited by applicant]
Fu et al., “A Cross-Layer Power and Timing Evaluation Method for Wide Voltage Scaling,” 2020 57th ACM/IEEE Design Automation Conference (DAC), San Francisco, CA, USA, 2020, pp. 1-6, doi: 10.1109/DAC18072.2020.9218682. [cited by applicant]
Rao et al., “Real-Time Application Energy Monitoring Tool,” Feb. 18, 2014, 12 pages, IPCOM000234947D, ip.com. [cited by applicant]
Rodero, et al., “Cross-Layer Application-Aware Power/Energy Management for Extreme Scale Science,” 4 pages, Apr. 1, 2013, ResearchGate. [cited by applicant]
Zaman et al., “Towards a Cross-Layer Framework for Accurate Power Modeling of Microprocessor Designs,” 2018 28th International Symposium on Power and Timing Modeling, Optimization and Simulation (PATMOS), Platja d'Aro, … [cited by applicant]