Sign In to Follow Application
View All Documents & Correspondence

System And Method For Energy Management Of Software Programs As Loads Within A Network

Abstract: An energy management system monitors a network or computer system to switch software programs according to policies. A policy indicates which software program to execute for a process by taking into consideration energy expenditures, mission criticality. Software programs are rated and ranked according to the software load placed on the system by their execution. Thus, software functions are treated as a load on the system and arranged such that the load is shared or reduced throughout the system.

Get Free WhatsApp Updates!
Notices, Deadlines & Correspondence

Patent Information

Application #
Filing Date
06 December 2010
Publication Number
42/2012
Publication Type
INA
Invention Field
COMPUTER SCIENCE
Status
Email
Parent Application

Applicants

SARAANSH SOFTWARE SOLUTIONS PVT. LTD.
#3, 1ST MAIN, 60FT ROAD, 3RD BLOCK, 4TH STAGE, BASAVESHWARA NAGAR, BANGALORE - 560 079

Inventors

1. CHANDRASEKARAN, KRITHIKA
SARAANSH SOFTWARE SOLUTIONS PVT. LTD. #3, 1ST MAIN, 60FT ROAD, 3RD BLOCK, 4TH STAGE, BASAVESHWARA NAGAR, BANGALORE - 560 079
2. VASUDEVAN, RAJESH
SARAANSH SOFTWARE SOLUTIONS PVT. LTD. #3, 1ST MAIN, 60FT ROAD, 3RD BLOCK, 4TH STAGE, BASAVESHWARA NAGAR, BANGALORE - 560 079

Specification

FIELD OF THE INVENTION

[0001] The present invention relates to a system and method for energy management of software programs as loads within a network within a building or other structure having a plurality of computers, servers, and the like. More particularly, the present invention relates to an energy management system that establishes policies to monitor and switch software program execution to manage the load placed on the network or system by software programs.

DISCUSSION OF THE RELATED ART

[0002] Within a building of any size, several to dozens or even hundreds of computers, servers, and the like run software programs throughout a 24 hour period. These processes consume a large amount of energy as demand for services also increases. A large majority of software programs evolve over time so that even simple programs increase in complexity with fixes, revisions, demands from users, and the like.

[0003] US Patent Application number: 10/727,318, Eric Van Hensbergen, is for a method of managing energy in a processing system, comprising receiving an indication of a need to reduce a energy usage level in said processing system at a scheduler; determining whether or not a next process to be scheduled has an associated level of energy usage greater than a threshold; and selectively scheduling an execution slice for said next process in response to determining that said associated level of energy usage does not exceed said threshold.

[0004] US Patent Application number: 10/967,989, SaurabhChheda et al, is for a method comprising of analyzing and transforming a program executable at compile-time such that a processor design objective is optimized; and a method including analyzing an executable to estimate energy consumption of an application component in a processor.

[0005] These known systems use load balancing to evenly distribute programs across several processors or computers. Other known systems may identify thermodynamic characteristics associated with the process to be executed or monitor energy usage to track potential problems when applications and components exceed acceptable energy usage levels Other known processes include optimizing software processes to reduce load demands or implementing a policy to manage resources.

[0006] All of these systems and processes either address energy consumption at the hardware level or operating system level. In these instances, a software program is not considered at all as a drain on energy resources, except in cases where program execution will overload existing resources. No management occurs beforehand to reduce energy consumption caused by the different software programs.

[0007] In an environment like a data center or a large, connected network within a corporate headquarters, the number of possible software programs and their variants may number in the hundreds. Concurrent demand may exist as the same software programs are executed across different computers and networks. Thus, the software programs draw even more power as they execute an increasing amount of instructions and grow in complexity.

SUMMARY OF THE INVENTION

[0008] Main object of the present invention is to provide an energy management system and applicable methods for optimizing energy consumption of a computer system or network by manipulating energy loads caused by software programs executing on the system or network. Another object of the present invention is to reduce power consumption based on the premise that software loads have a significant impact on the total energy consumption of any computer system, especially those in data centers or in large buildings.

[0009] According to the disclosed embodiments, the operations of energy-efficient or performance-efficient versions of applicable software programs are activated to execute at appropriate times. The disclosed embodiments optimize the energy consumption characteristics of computer systems by considering software programs as significant energy loads. This optimization is done by activating energy-optimized or "green" versions of software programs for use at various times based on cost, mission criticality or other policy considerations.

[0010] According to the embodiments of the present invention, a method for managing software programs within a network is disclosed. The method includes generating at least one policy for a group of software programs executable within the network. Each of the software programs are ranked according to a load placed on the network. The method also includes monitoring execution of a process within the network. The method also includes checking process against a policy of the at least one policy. The method also includes selecting a software program to execute for the process according to the at least one policy.

[0011] Further, according to the present invention, an energy management system for a network of computing systems is disclosed. The energy management system includes a plurality of software programs to execute within the network on the computing systems. The execution of a software program places a load on the network. The energy management system also includes at least one policy to rank the plurality of software programs based on the load or energy expenditure. The energy management system also includes a manager to select a software program to execute a process on the network according to the at least one policy.

[0012] Further according to the present invention, a method for managing software programs that execute on a network is disclosed. The method includes identifying software programs to execute on the network. The method also includes ranking each of the software programs according to a load placed on the network. The method also includes placing each of the software programs in a group relating to a process. The method also includes generating at least one policy pertaining to the process based on the rankings. The method also includes monitoring execution of a software program within the group according to the policy. The method also includes selecting another software program for execution based on the policy.

[0013] In one embodiment the present invention provides a method for management of energy for software programs as load within a network, said method comprising: generating at least one policy for a group of software programs executable within the network, wherein each of the software programs are ranked according to the load they place on the network; monitoring execution of a process within the network; checking process against a policy of said at least one policy; and selecting a software program to execute for the process according to the policy, thereby optimizing energy consumption of the network.

[0014] In another embodiment the method further comprises the step of rating each of the software programs for the policy. The rating step comprises the step of determining an energy rating for each of the software programs.

[0015] In another embodiment the invention further comprises the step of ranking each of the software programs within the same group. The ranking step comprises ranking each of the software programs as green, red or neutral based on energy usage. The method further comprises ranking each of the software programs within the group based on energy expenditure, performance or speed of execution within the policy.

[0016] In another embodiment the selecting step comprises switching one software program with another software program according to the policy.

[0017] In another embodiment the invention further comprises the step of implementing said at least one policy within a network.

[0018] In another preferred embodiment the present invention provides a system for management of energy for software programs within a network as loads, said system comprising: a plurality of software programs to execute within the network on the computing systems, wherein the execution of a software program places a load on the network; at least one policy to rank the plurality of software programs based on the load or energy expenditure; and a manager to select a software program to execute a process on the network according to the at least one policy. Said at least one policy includes at least one software program ranked as a lower load on the network than another software program. Said at least one software program is selected to execute over another software program in accordance with the at least one policy. The plurality of software programs includes a group of software program corresponding to the process.

[0019] The system can be further provided with an interface on a computing system to provide energy usage data pertaining to the software program.

[0020] In another embodiment the invention provides a method for management of energy for software programs within a network as loads, said method comprising: identifying software programs to execute on the network; ranking each of the software programs according to the load they place on the network; placing each of the software programs in a group relating to a process; generating a policy pertaining to the process based on the rankings; monitoring execution of a first software program within the group according to the policy; and selecting a second software program for execution based on the policy. The method may further comprise rating each of the software programs according to energy expenditure associated with executing the software program. The method may further comprise preparing a list of add-ons, a list of libraries or a list of dependencies to determine the energy expenditure. The method may also comprise ranking each of the software programs according to performance. The method may comprise storing the policy along with a plurality of policies to manage energy use within the network.

[0021] A still further step of the method may comprise determining whether to select the second software program based on a time value within the policy. In this method the second software program places a reduced load on the network.

BRIEF DESCRIPTION OF THE ACCOMPANYING DRAWINGS

[0022] The accompanying drawings are included to provide further understanding of the invention and constitute a part of the specification. The drawings listed below illustrate embodiments of the invention and, together with the description, serve to explain the principles of the invention, as disclosed by the claims and their equivalents.

[0023] Figure 1 illustrates a block diagram of a data center and an energy management system according to the disclosed embodiments.

[0024] Figure 2 illustrates a flowchart for managing software loads using energy management system according to the disclosed embodiments.

[0025] Figure 3 illustrates a flowchart for rating software programs according to the disclosed embodiments.

[0026] Figure 4 illustrates a flowchart for ranking software programs within a group according to the disclosed embodiments.

[0027] Figure 5 illustrates a flowchart for defining a policy within the energy policies according to the disclosed embodiments.

[0028] Figure 6 illustrates a flowchart for switching a software program based on a policy according to the disclosed embodiments.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0029] Aspects of the invention are disclosed in the accompanying description. Alternate embodiments of the present invention and their equivalents are devised without parting from the spirit or scope of the present invention. It should be noted that like elements disclosed below are indicated by like reference numbers in the drawings.

[0030] Figure 1 depicts an energy management system 100 according to the disclosed embodiments. Energy management system 100 may be located in a building having a number of computers, servers or other platforms that run software programs on a network or series of networks. For example, energy management system 100 may serve a data center that includes racks of servers and computers running programs. Alternatively, a building that houses a corporate network of computers, printers, copiers, servers, storage devices, and the like may implement energy management system 100 to better allocate resources and energy in executing the programs.

[0031] Energy management system 100 may be a platform that is linked to the network or networks in the building. For example, referring to Figure 1, a user 101 accesses energy management system 100 via a manager 102. Manager 102 may be a computer connected to the network or networks monitored by energy management system 100. Manager 102 further executes the functions and processes to manage energy management system 100. Manager 102 also may be housed on a computer within the network.

[0032] Manager 102 is coupled to computers 104, 106, 108, 110 and 112. Manager 102 may interact with these computers according to any known means, such as a wireless network, local area network, wide area network, and the like. Essentially, manager 102 sends instructions 116 to the computers. Computers 104-112 also may be servers, platforms or other components within a network, and are not limited to the number shown in Figure 1. Energy management system 100 may control one, dozens, hundreds or thousands or more of computing systems.

[0033] Each computer includes software programs A, B, C or D. Preferably, computers 104-112 may include any number of software programs and files, but programs A, B, C and D are shown for illustrative purposes. For example, computer 104 may run software programs A, B and C, while computer 106 runs two versions of software program A and one version of software program B. Computer 108 runs two versions of software program B and one of software program C. Computer 110 may run multiple versions of software programs A and C, and the only version within energy management system 100 of software program D.

[0034] Figure 1 also shows heat, ventilation, and air conditioning unit or units 122 that provide heat or cooling for the building or data center. Large numbers of computers generate a lot of heat which requires constant cooling during peak hours. External temperatures or temperatures within a building may reach critical levels, which then requires an energy-conscious alternative to lower temperatures and reduce energy consumption. Power unit 124 supplies power to computers 104-112, energy management system 100 and other features within the building or data center, such as lights, tools, and the like. Resources 126 includes other items needed to keep computers 104-112 running in good order, such as replacement parts, toner for printers, memory devices, and the like. HVAC units 122, power unit 124 and resources 126 consume energy along with computers 104-112.

[0035] Computer 112 is shown in greater detail than the other computers for illustrative purposes. The operation of computer 112 is disclosed in relation to manager 102 to show how computers, platforms, servers, and the like interact with energy management system 100. Computer 112 runs two versions of software program A, one version of software program B and two versions of software program C.

[0036] Computer 112 also includes features regularly found on computers, such as processor 128 and memory 130. Instructions and programs may be stored in memory 130 and executed by processor 128. Display 132 may show results and interact with a user to input and output data and information. Computer 112 also includes operating system 134 that manages the architecture of computer 112 and any add-ons and peripherals for the software programs.

[0037] Interface 118 is coupled to computer 112 to interact with manager 102. Interface 118 may detect and report energy consumption data to manager 102 about computer 112. As computer 112 executes programs, the energy consumed may be monitored and documented. Preferably, interface 118 is located "southside" on computer 112.

[0038] Computer 112 may run different versions of software programs. For example, version 136 of software program A may be a "red" version while version 138 may be a "green" version of software program A. Green version 138 may consume less energy while executing than red version 136. These concepts are disclosed in greater detail below.

[0039] Energy management system 100 is controlled by energy policies 114. Energy policies 114 include at least one policy on how to control components of the network based on time and software versions. Energy management system 100 may implement one policy to monitor and manage computer usage, or, alternatively, may implement several policies for different components within the network. These processes are disclosed in greater detail below.

[0040] Energy policies 114 provide an outline for an optimized schedule and plan for running programs in a more energy-conscious manner. For example, energy policies 114 may instruct computer 112 to run green version 138 of software program A instead of red version 136 to conserve energy during peak hours of processing if mission criticality allows for it. This action reduces the software load on the network.

[0041] Energy management system 100 optimizes energy consumption by computers 104-112 by manipulating energy loads caused due to software programs A, B, C and D that are in use. Energy management system 100 reduces power consumption based on the premise that software programs executed by multiple computers, servers and the like may be treated as software "loads" on a system or network.

[0042] Software loads have significant impact on the total energy consumption of any computer system or network. Depending on certain pre-defined input parameters within energy policies 114, energy management system 100 activates the operation of energy-efficient or performance efficient versions of the software programs, such as green version 138, to be run on a computer or a plurality of computers within the system.

[0043] As shown in Figure 1, different versions of the same software program may execute throughout a network. These different versions also exhibit different energy consumption patterns that may be measurable by interface 118. These differences depend on the design of the software version, its user interface, applicable libraries, additional features, type of computer or platform, operating system, peripherals, and the like. Further, different software programs perform the same function on a network, such as web browsers, data storage programs, and the like. The disclosed embodiments arrange similar software programs into a hierarchy with respect to energy consumption rating.

[0044] Energy policies 114 contain policies that manage one, two or more versions of a software program and the different software programs themselves. One version, such as red version 136 of software program A, may run with all the peripherals, interfaces, and the like, which consumes quite a bit of power. The other version, such as green version 138 of software program A, may run with minimum user and system interfaces and no peripherals and hence conserves power. The disclosed embodiments arrange similar software programs into a hierarchy with respect to their performance and efficiency.

[0045] Priorities are defined based on whether a given computer process requires a greater speed of operation or savings in energy consumption. These priorities may be specified as inputs to energy management system 100 in the form of policies. User 101 may create and update policies in energy policies 114 on a periodic basis. The inputs, or policies, are based on which software associated with a process is executed according to a performance-efficient or energy-efficient mode for a given time window.

[0046] Any network of computers, servers, and the like within a building or organization show different levels of usage during different times in a 24-hour period. For example, the number of software programs performing tasks may increase significantly during a 10 am to 12 pm window, and again from a 2 pm to 6 pm window for a network. Energy consumption spikes to high levels during these times. During these peak times, more energy-efficient versions of software programs, such as green version 138, may be executed to reduce energy consumption across the network.

[0047] The disclosed embodiments consider software programs and the processes they execute as "loads" on a system or network. Certain software operations at the assembly language level consume more energy than other operations. Complex processes consume more energy than simple ones. At the instruction level, these energy differences may be minimal. When these differences are scaled up to the application level, however, the energy differences get multiplied across the execution of several thousand or million client and server applications. Within a data center or other large-scale computer operation, the increased amounts of energy usage can be very substantial. Thus, the different software "loads" imposed on a system or network by different software programs, versions and processes can impact energy consumption.

[0048] The disclosed embodiments optimize energy use pertaining to the software loads. User 101 can rate a software program with respect to its energy efficiency and performance, and may even group similar software programs or packages into a hierarchy. User 101 then may define a policy in terms of energy usage, criticality of mission, time of day/night, resource allocation requirements, available platforms, and the like. This policy is included in energy policies 114 that are given to energy management system 100. Another policy may manage HVAC by controlling external temperatures and other parameters to keep the environment of energy management system 100 at an acceptable level.

[0049] Energy management system 100 then uses energy policies 114 to manage versions of the different software programs to reduce energy consumption and to better plan the use of network resources. The software hierarchy along with energy policies 114 and energy and performance ratings are used to switch between the different versions of the software programs to minimize energy usage while maintaining performance capabilities and criticality requirements.

[0050] Energy management system 100 activates energy-optimized, or "green" versions of software programs at various times based on cost considerations, or based on the desire to be energy-conscious. The green versions of software programs contrast with the red versions that emphasize performance-optimization with less consideration for energy consumption. As disclosed above, software program A may include red version 136 and green version 138. When executed, red version 136 places a higher load on the network than does green version 138.

[0051] Companies, organizations and the like may use energy management system 100 to implement energy optimization policies in an enterprise environment. The policies can execute green versions of software programs during busy periods and red versions during off-times or the end of a quarter/critical periods when jobs need to be done. Energy policies 114 may be generated with internal and external customers depending on their carbon tolerance and cost sensitivity. In other words, customers of the network or computer system outline their requirements to user 101, which then is placed in the policies.

[0052] Figure 2 depicts a flowchart 200 for managing software loads using energy management system 100 according to the disclosed embodiments. The description of flowchart 200 may refer back to elements in Figure 1 for illustrative purposes. Step 202 executes by identifying all software resources to be managed by energy management system 100. Using the data center example, the software resources may be the different software programs and versions, operating systems, add-ons and peripherals, libraries, and the like used by computers, servers and the like within the data center. User 101 may perform this task.

[0053] Step 204 executes by rating and ranking each software program as "green" or "red." A green rating implies energy savings while red implies performance. Software programs may be rated as green or red, and then grouped according to the functions performed by the programs. Additional rankings may occur such that user 101 compiles a listing of all the programs and applicable resources identified in step 202.

[0054] Step 204 is disclosed in greater detail by Figures 3 and 4. Step 204, however, is not limited to the steps disclosed in these figures. Figure 3 depicts a flowchart 300 for rating software programs according to the disclosed embodiments. According to the disclosed embodiments, user 101 classifies, rates or ranks the different software used for similar applications, such as internet browsers (for example, Explorer™, Firefox™, Chrome™), and their different versions into software groups. The group receives a label that denotes that the software programs can perform the same task. Within the groups, user 101 may rank each software program with a number. Preferably, a lower rank number implies better energy-saving performance.

[0055] Thus, step 302 executes by receiving and identifying software programs and their corresponding versions. Preferably, the type of program and its function are determined by user 101 or, alternatively, by the customer/distributor of the software program. Step 304 executes by placing the software programs into software groups, as disclosed above. For example, web browsers may be placed within the same group. In addition, user 101 may group the software programs according to any criteria. Some software programs may stand alone in rare circumstances, such as a very specialized program used by a single customer.

[0056] Step 306 executes by determining the energy rating characteristics of each software program within a group. A uniform energy rating test may be applied to all the versions of the software programs in a group to determine the "load" placed on the computer system when the software program is executed. User 101 can execute programs or just a portion of the programs to determine these parameters.

[0057] Step 308 executes by rating or labeling the software programs within the groups as "green" or "red" depending on their ranking within the group. A higher ranking goes to the software programs that place the smallest loads on the network. Within energy management system 100, the rankings may specify ratings for the different versions. For example, the top 10% of the rankings may be considered "green" versions of the software program or group. These versions consume the least amount of energy as they are not heavy loads on the network. Those versions in the bottom 25% may be considered "red." The software programs in the middle may be considered neutral. The neutral software programs are those that are preferred at those times energy management system 100 does not enforce energy policies 114. In other words, neutral software programs may run when energy policies 114 does not specify a green or red software program for execution.

[0058] Using this process, user 101 may organize multiple green programs for a software group and multiple red programs for the same software group, with rankings for each program or version within those groups.

[0059] Figure 4 depicts a flowchart 400 for ranking software programs within a group according to the disclosed embodiments. User 101 prepares a list of possible combinations for the same software programs and versions with add-ons, peripherals, libraries, user interfaces and ranks these in order of energy usage within the groups. This process may be performed on software programs within the same group or having the same ratings within a group. For example, all the green software programs may be ranked separately within that grouping, while the red ones are done on their own. Alternatively, a group of web browsers may be ranked according to the disclosed process apart from memory access programs without regard to whether the browsers are green or red.

[0060] Step 402 executes by preparing a list of add-ons and peripherals for each software program, and computing the energy requirements for use of the add-ons and peripherals. Energy requirements may be defined as the load placed on the network that causes a computer, server and the like to use power to execute the program. Step 404 executes by preparing a list of libraries for each software program, and computing the energy requirements. Step 406 executes by preparing a list of dependencies for each software program, and computing the energy requirements. Step 408 executes by checking applicable user interfaces for each software program and computing energy requirements. Step 410 executes by checking concurrency energy data for each software program and computing energy requirements.

[0061] Step 412 executes by ranking each software program and applicable versions according to the energy usage requirements determined in steps 402-410.

[0062] Table 1 below shows an example of a list of software programs ranked according to the disclosed embodiments.

Table 1

[0063] Software program A without any add-ons and without any concurrency gets the best ranking as both green and red, but with a concurrency, software program A gets the worst ranking as both green and red. With one add-on and no concurrency, software program A stays green but goes two steps down in ranking.

[0064] Step 206 executes by generating energy policies 114 by user 101. User 101 prepares energy policies 114 based on customer's requirements pertaining to mission critical requirements for processing data. User 101 receives the list of software program rankings generated in step 204 and defines the policies making up energy policies 114. User 101 may define a policy according to the importance of the project/function and energy consumption. For example, user 101 defines that if a program is in a mission critical requirement stage, energy management system 100 allows the network to run the lowest ranked red version of the software program. User 101 also looks to the time of day and length of execution of the program to better plan the conservation of resources without sacrificing performance.

[0065] A preferred embodiment for executing step 206 is disclosed in greater detail by Figure 5. Figure 5 depicts a flowchart 500 for defining a policy within energy policies 114 according to the disclosed embodiments. Step 502 executes by identifying the criticality of the process to be executed by the software programs or grouped software programs. For example, web browsers perform a function that may be handled by different software programs, each grouped and ranked. Web browsers may be critical in a corporate setting where workers must access the internet from their desks. Web browsers may not be so critical in a data center where servers execute functions or store data.

[0066] Step 504 executes by identifying the criticality of the energy expense in performing the process. Using the above example, user 101 may determine that it is critical to reduce energy consumption in the computer system when using web browsers. Step 506 executes by identifying the criticality of the speed of execution of the process. Certain programs or functions may need to be executed quickly because the function is critical to the corporation or data center. Thus, a high critical speed execution may trump reduced energy consumption if determined by user 101.

[0067] Step 508 executes by assigning a factor or factors to each process or function defined by the different software groups. Factors may include the red/green designation, rank and software group label that are assigned to the process along with its time for execution. The middle or neutral group of software programs also may be indicated as preferable by a policy over red or green programs. Step 510 executes by storing the assignments along with the process and time to a policy. Step 512 executes by compiling the different policies for the various functions. Step 514 executes by generating energy policies 114 once all policies are generated.

[0068] Returning to Figure 2, step 208 executes by implementing energy policies 114 and other applicable variables within energy management system 100. User 101 may feed energy policies 114, software lists, labels for software groups and ranks, and the like into system 100. Alternatively, manager 102 may do this automatically upon receipt of a policy such that energy management system 100 updates itself once a policy regarding execution of software functions is generated.

[0069] Step 210 executes by monitoring the placed loads, energy expenditure and other variables within the network or computer system. Energy management system 100 may monitor energy expenditure by the loads placed on the network by software programs. Energy management system 100 also may monitor time, process, criticality and applicable policy to switch between different versions and programs of software as needed. During monitoring, instructions or requests to execute programs continue to be received within the network or computer system to execute software programs.

[0070] Step 212 executes by checking a process or function to execute with a software program against a policy within energy policies 114 and switching to an optimal software program, if applicable. A preferred embodiment of step 212 is shown by Figure 6. Figure 6 depicts a flowchart 600 for switching a software program based on a policy according to the disclosed embodiments. Step 602 executes by checking the current process to be executed and the time. For example, a web browser is being opened at some time during the day or evening and energy management system 100 may check the rating of the browser prior to running the program. Step 604 executes by reading energy policies 114 to find a policy pertaining to the process and time. Energy management system 100 checks to see if the process being executed at that time of day has a policy that governs it.

[0071] Step 606 executes by determining whether the process under consideration belongs to a policy within energy policies 114. If yes, then step 608 executes by applying the policy to the process. The policy outlines which software program to execute to complete the process at that time of day. For example, energy policies 114 may include a policy governing a function applicable to software program A. The policy may direct that red version 136 be run at the time of day that the program is being executed due to mission critical performance issues. If software program A is be executed four hours later, then energy policies 114 may direct energy management system 100 to run green version 138.

[0072] If step 606 is no, then step 610 executes by identifying the applicable software group to execute the process. Step 612 executes by prompting user 101 for confirmation. User 101 may indicate agreement with the software group identified by energy management system 100. Step 614 executes by selecting a variable to consider in picking which software program and version is applicable for the executing process. The variables may include green/red rating, ranking, or group. Step 616 executes by prompting user 101 for confirmation. Step 618 executes by applying the selected software program to execute the process. Thus, a software program violating a policy may be identified and switched out according to the disclosed embodiments.

[0073] Returning to Figure 2, step 214 executes by continued monitoring of the network or computer by energy management system 100. Essentially, flowchart 200 may return to step 210 until another process seeks to be executed.

[0074] Within a data center or network, thousands of processes may execute daily. Thus, energy management system 100 will automatically check to see if a policy governs the selection of which program is to be executed based on the rankings and ratings for the programs. If the policy switches out the programs, then energy management system 100 does so. In those cases where a policy does not govern the execution of the process, user 101 may intervene.

Alternatively, manager 102 may include a process to account for those processes not governed by a policy within energy policies 114.

[0075] Table 2 below shows an example policy according to the disclosed embodiments.

Table 2

[0076] User 101 defines the label/rating and rank recommendation. A low rank indicates best in this group. When criticality and energy value are low, the policy shown in Table 2 selects the best possible green software program to reduce costs. When criticality is high but energy is low, the policy selects the best performing software program. When criticality is high and energy is also high, the policy selects either a high-performance version or a medium rank to save some energy. This action saves some energy. The policy, alternatively, may select a green version of a medium rank in order to gain some performance. When criticality is low and energy usage is high, then the best possible green version is selected.

[0077] Thus, the disclosed embodiments include an energy management system 100 that monitors, tracks and selects software programs that act as a load on a network. By treating the software programs as loads, energy management system 100 may analyze and determine better software programs that do not place a big load on the network that are run at specified times. Thus, the load placed on a network may be reduced.

[0078] Alternatively, energy management system 100 may be used to provide information to user 101 that shows when requests for load-intensive programs are made during the day. User 101 may plan to have computing resources available at those times or perform other actions to reduce energy consumption within a network.

[0079] It will be apparent to those skilled in the art that various modifications and variations can be made in the disclosed embodiments of the privacy card cover without departing from the spirit or scope of the invention. Thus, it is intended that the present invention covers the modifications and variations of the embodiments disclosed above provided that the modifications and variations come within the scope of any claims and their equivalents.

WE CLAIM

1. A method for management of energy for software programs as loads
within a network, said method comprising:

generating at least one policy for a group of software programs executable within the network, wherein each of the software programs are ranked according to the load they place on the network;

monitoring execution of a process within the network;

checking process against a policy of said at least one policy; and

selecting a software program to execute for the process according to the policy, thereby optimizing energy consumption of the network.

2. The method as claimed in claim 1, further comprising rating each of the software programs for the policy.

3. The method as claimed in claim 2, wherein said rating step comprises determining an energy rating for each of the software programs.

4. The method as claimed in claim 1, further comprising ranking each of the software programs within the same group.

5. The method as claimed in claim 1, wherein the ranking step comprises ranking each of the software programs green, red or neutral based on energy usage.

6. The method as claimed in claim 1, wherein said selecting step comprises switching one software program with another software program according to the policy.

7. The method as claimed in claim 1, further comprising implementing said at least one policy within a network.

8. The method as claimed in claim 1, further comprising ranking each of the software programs within the group based on energy expenditure, performance or speed of execution within the policy.

9. A system for management of energy for software programs within a network as loads, said system comprising:

a plurality of software programs to execute within the network on the computing systems, wherein the execution of a software program places a load on the network;

at least one policy to rank the plurality of software programs based on the load or energy expenditure; and

a manager to select a software program to execute a process on the network according to the at least one policy.

10. The system as claimed in claim 9, further comprising an interface on a computing system to provide energy usage data pertaining to the software program.

11. The system as claimed in claim 9, wherein at least one policy includes at least one software program ranked as a lower load on the network than another software program.

12. The system as claimed in claim 11, wherein said at least one software program is selected to execute over another software program in accordance with the at least one policy.

13. The system as claimed in claim 9, wherein the plurality of software programs includes a group of software program corresponding to the process.

14. A method for management of energy for software programs within a network as loads, said method comprising:

identifying software programs to execute on the network;

ranking each of the software programs according to the load they place on the network;

placing each of the software programs in a group relating to a process;

generating a policy pertaining to the process based on the rankings;

monitoring execution of a first software program within the group according to the policy; and

selecting a second software program for execution based on the policy.

15. The method as claimed in claim 14, further comprising rating each of the software programs according to energy expenditure associated with executing the software program.

16. The method as claimed in claim 15, further comprising preparing a list of add-ons, a list of libraries or a list of dependencies to determine the energy expenditure.

17. The method as claimed in claim 15, further comprising also ranking each of the software programs according to performance.

18. The method as claimed in claim 14, further comprising storing the policy along with a plurality of policies to manage energy use within the network.

19. The method as claimed in claim 14, further comprising determining whether to select the second software program based a time value within the policy.

20. The method as claimed in claim 14, wherein the second software program places a reduced load on the network.

21. A method for management of energy for software programs as loads within a network, substantially as herein described and illustrated in the figures of the accompanying drawings.

Documents

Application Documents

# Name Date
1 3671-che-2010 power of attorney 06-12-2010.pdf 2010-12-06
1 3671-CHE-2010-AbandonedLetter.pdf 2019-10-04
2 3671-CHE-2010-FER.pdf 2019-03-29
2 3671-che-2010 form-3 06-12-2010.pdf 2010-12-06
3 3671-che-2010 form-2 06-12-2010.pdf 2010-12-06
3 3671-CHE-2010 CORRESPONDENCE OTHERS 03-05-2013.pdf 2013-05-03
4 3671-che-2010 form-1 06-12-2010.pdf 2010-12-06
4 3671-CHE-2010 FORM-18 03-05-2013.pdf 2013-05-03
5 3671-che-2010 drawings 06-12-2010.pdf 2010-12-06
5 3671-che-2010 abstract 06-12-2010.pdf 2010-12-06
6 3671-che-2010 description(complete) 06-12-2010.pdf 2010-12-06
6 3671-che-2010 claims 06-12-2010.pdf 2010-12-06
7 3671-che-2010 correspondence others 06-12-2010.pdf 2010-12-06
8 3671-che-2010 description(complete) 06-12-2010.pdf 2010-12-06
8 3671-che-2010 claims 06-12-2010.pdf 2010-12-06
9 3671-che-2010 drawings 06-12-2010.pdf 2010-12-06
9 3671-che-2010 abstract 06-12-2010.pdf 2010-12-06
10 3671-che-2010 form-1 06-12-2010.pdf 2010-12-06
10 3671-CHE-2010 FORM-18 03-05-2013.pdf 2013-05-03
11 3671-CHE-2010 CORRESPONDENCE OTHERS 03-05-2013.pdf 2013-05-03
11 3671-che-2010 form-2 06-12-2010.pdf 2010-12-06
12 3671-CHE-2010-FER.pdf 2019-03-29
12 3671-che-2010 form-3 06-12-2010.pdf 2010-12-06
13 3671-CHE-2010-AbandonedLetter.pdf 2019-10-04
13 3671-che-2010 power of attorney 06-12-2010.pdf 2010-12-06

Search Strategy

1 3671che2010_28-03-2019.pdf