Profiling an application for power consumption during execution on a compute node

Patent Number: 8539270, issued on 2013/09/17
Applied on 2012/04/16, 13/447,501
Inventor(s): Charles Archer, Michael Blocksome, Amanda Randles, Joseph Ratterman, Brian Smith
Assignee: International Business Machines Corporation

Abstract: Methods, apparatus, and products are disclosed for profiling an application for power consumption during execution on a compute node that include: receiving an application for execution on a compute node; identifying a hardware power consumption profile for the compute node, the hardware power consumption profile specifying power consumption for compute node hardware during performance of various processing operations; determining a power consumption profile for the application in dependence upon the application and the hardware power consumption profile for the compute node; and reporting the power consumption profile for the application.

Claims: 1. A method of profiling an application for power consumption during execution on a plurality of compute nodes, the plurality compute nodes connected together using a plurality of data communications networks, at least one data communications network optimized for collective operations, at least one data communications network optimized for point to point operations, the method comprising: identifying a hardware power consumption profile for a compute node, the hardware power consumption profile specifying power consumption for compute node hardware during performance of various processing operations; determining a power consumption profile for an application to be executed on the compute node in dependence upon the application and the hardware power consumption profile for the compute node. 2. The method of claim 1 further comprising altering the application in dependence upon the power consumption profile for the application. 3. The method of claim 2 further comprising executing the altered application on the compute node. 4. The method of claim 1 wherein determining a power consumption profile for the application in dependence upon the application and the hardware power consumption profile for the compute node further comprises: identifying one or more processing operations specified by the application; and looking up, for each processing operation specified by the application, a predefined power consumption value for that processing operation in the hardware power consumption profile. 5. The method of claim 1 wherein determining a power consumption profile for the application in dependence upon the application and the hardware power consumption profile for the compute node further comprises: identifying one or more processing operations specified by the application; monitoring, for each processing operation, execution performance during execution of that processing operation; and estimating, for each processing operation using the hardware power consumption profile, power consumption for that processing operation in dependence upon the execution performance for that processing operation. 6. An apparatus capable of profiling an application for power consumption during execution on a plurality of compute nodes, the plurality compute nodes connected together using a plurality of data communications networks, at least one data communications network optimized for collective operations, at least one data communications network optimized for point to point operations, the apparatus one or more computer processors and computer memory operatively coupled to the computer processors, the computer memory having disposed within it computer program instructions that, when executed by the computer processor cause the apparatus to carry out the steps of: identifying a hardware power consumption profile for a compute node, the hardware power consumption profile specifying power consumption for compute node hardware during performance of various processing operations; determining a power consumption profile for an application to be executed on the compute node in dependence upon the application and the hardware power consumption profile for the compute node. 7. The apparatus of claim 6 wherein the computer memory has disposed within it computer program instructions that, when executed by the computer processor, causes the apparatus to carry out the step of altering the application in dependence upon the power consumption profile for the application. 8. The apparatus of claim 7 wherein the computer memory has disposed within it computer program instructions that, when executed by the computer processor, causes the apparatus to carry out the step of executing the altered application on the compute node. 9. The apparatus of claim 6 wherein determining a power consumption profile for the application in dependence upon the application and the hardware power consumption profile for the compute node further comprises: identifying one or more processing operations specified by the application; and looking up, for each processing operation specified by the application, a predefined power consumption value for that processing operation in the hardware power consumption profile. 10. The apparatus of claim 6 wherein determining a power consumption profile for the application in dependence upon the application and the hardware power consumption profile for the compute node further comprises: identifying one or more processing operations specified by the application; monitoring, for each processing operation, execution performance during execution of that processing operation; and estimating, for each processing operation using the hardware power consumption profile, power consumption for that processing operation in dependence upon the execution performance for that processing operation. 11. A computer program product for profiling an application for power consumption during execution on a plurality of compute nodes, the plurality compute nodes connected together using a plurality of data communications networks, at least one data communications network optimized for collective operations, at least one data communications network optimized for point to point operations, the computer program product disposed upon a computer readable non-transmission medium, the computer program product comprising computer program instructions that, when executed by a computer, carry out the steps of: identifying a hardware power consumption profile for a compute node, the hardware power consumption profile specifying power consumption for compute node hardware during performance of various processing operations; determining a power consumption profile for an application to be executed on the compute node in dependence upon the application and the hardware power consumption profile for the compute node. 12. The computer program product of claim 11 further comprising computer program instructions that, when executed by the computer, carry out the step of altering the application in dependence upon the power consumption profile for the application. 13. The computer program product of claim 12 further comprising computer program instructions that, when executed by the computer, carry out the step of executing the altered application on the compute node. 14. The computer program product of claim 11 wherein determining a power consumption profile for the application in dependence upon the application and the hardware power consumption profile for the compute node further comprises: identifying one or more processing operations specified by the application; and looking up, for each processing operation specified by the application, a predefined power consumption value for that processing operation in the hardware power consumption profile. 15. The computer program product of claim 11 wherein determining a power consumption profile for the application in dependence upon the application and the hardware power consumption profile for the compute node further comprises: identifying one or more processing operations specified by the application; monitoring, for each processing operation, execution performance during execution of that processing operation; and estimating, for each processing operation using the hardware power consumption profile, power consumption for that processing operation in dependence upon the execution performance for that processing operation.