This invention relates to enabling a power provider, such as an electric utility, to request a customer to re-allocate all or part of a computational workload. In particular, it relates to electric utilities and provides them with the capability of customer computational workload shifting based on probabilities of the occurrence of future events that might adversely affect the ability of the utilities to maintain a given level of service to their customers.
Both predictable and unpredictable events may cause power providers to reach maximum capacity and desire that customers redirect their workloads to other sources. For example, certain times of day are peak power usage times. Providers may want particular customers to move workloads to another location, another provider, or another time during these peak periods to mitigate the chances of overload-induced power slowdowns, brownouts or blackouts.
Highly populated areas, such as large cities, are prone to power shortages. Also, natural disasters, weather situations and other incidents may cause power shortages in any given area. Currently, efficient and automated methods do not exist for energy providers to communicate with customers about the need for power load relocation or reallocation. Additionally, methods do not exist for providers to automatically initiate the redistribution of computational workloads.
For purposes of the present invention, power is defined as the electric energy resource used by businesses and individual customers over a given period of time.
This invention relates to an infrastructure and methods for enabling power providers to request customers to relocate their computational workload. This invention may utilize the framework described in co-pending patent application Ser. No. ______, dated ______ entitled FRAMEWORK FOR DISTRIBUTION OF COMPUTER WORKLOADS BASED ON REAL TIME ENERGY COSTS, the methods described in co-pending patent Ser. No. ______, dated _______ entitled ANALYSIS OF ENERGY-RELATED FACTORS FOR SELECTING COMPUTATIONAL JOB LOCATIONS and the in-band power communication described in co-pending application Ser. No. ______, dated ______ entitled POWER METADATA TRANSFER OVER POWER LINES. Optionally, this invention may utilize other frameworks and distribution methods for negotiation of power rates.
A request, agreement, and initiation to relocate or re-allocate may be set up to occur automatically based on configurable thresholds. This enables efficient management of the use of power without requiring human intervention.
Relocation or re-allocation may involve moving a computational job to a different geographical location, different time, different service provider or a different power source. Additionally, providers may offer to relocate customer workloads to lower-cost providers to create goodwill and/or collect a brokering fee.
The present invention relates to a method and a system to enable a power provider to re-allocate a computational workload for performing a customer job. This invention is achieved by detecting a service situation having a potential impact on the future quality of service to be offered by the provider to the customer. A customer is notified of a quality of service situation, after which re-allocation of the workload is initiated with the approval of the customer. A workload request coordinator may be utilized or deployed through whom notification by the provider to the customer and approval by the customer are communicated. This coordinator serves as an intermediary between one or more provider and multiple customers. Arrangements are made to communicate between a provider and multiple customers. This may be done either in a broadcast mode to all customers or to targeted customers. The re-allocation can be based on factors such as job timing or lower costs.
The invention also relates to a computer-readable medium and a computer product containing sets of instructions, when implemented on a computer, for executing the steps of the invention, thereby enabling a power provider to re-allocate the power workload for a customer job. These steps include detecting a future service situation having a potential adverse impact on the quality of service to be offered by a power provider to the customer; notifying the customer of the future service situation; and based on said notification and a favorable response by the customer, initiating a re-allocation of a customer workload.
Finally, the invention relates to a method for deploying the implementation by a service provider such as the workload coordinator for re-allocating power workload for a customer job. Upon detecting a future service situation having a potential adverse impact on the quality of service offered by said power provider to a customer, the service provider notifies the customer of the service quality situation. Based on said notification and favorable response by the customer, the service provider initiates a re-allocation of a customer's workload on behalf of the power provider. The service provider would typically be selected by the power provider, but may instead be chosen by the customer.
These and other features of this invention will be more readily understood from the following detailed description of the various aspects of the invention taken in conjunction with the accompanying drawings in which:
The drawings are not intended to be drawn to scale. Instead, the drawings are merely schematic representations, not intended to portray specific parameters of the invention. The drawings are intended to depict only typical embodiments of the invention, and therefore should not be considered as limiting the scope of the invention.
As previously mentioned, a simplified definition of power is the electric energy resource used over a given unit of time.
Many options are disclosed for notification and response of workload redistribution. Overall steps include:
Power providers may use both currently known and short-term forecasted input data to determine workload relocation requirements. For example, a provider may see that a hurricane is approaching a particular coastal area. Although the event may be days away, the provider may proactively take action to ask customers to relocate or re-allocate the priority of their compute jobs. As another example, prediction of a heat wave may cause air conditioning costs in an area to increase, prompting a movement of work to a cooler geographical area.
Additionally, power providers may have pre-negotiated Quality of Service (QoS) contracts with customers. In this case, the customers will not want to have a power shortage that would disrupt service. It may be more profitable or desirable for the providers to sacrifice particular customer workloads to prevent an outage or to maintain a high quality of service for other customers.
Following are options for implementation of this invention:
Turning now to
Following are four scenarios to illustrate the invention: (a) broadcast request, (b) targeted request to subscriber customers, (c) provider redirects workload on behalf of customer, and (d) time-based relocation. These are discussed in greater detail as follows.
Steps for performing time-based relocation
A provider may initiate a relocation based on lower costs. Some insurance companies have built their business model around providing the customer with price quotes for the lowest provider, even if it is a competitor. The theory is that customers will appreciate their honesty and effort to save them money and select them as the insurance provider. This has not traditionally been the business model in the energy business. Although transferring all work to a competitor would not be a sound business decision, moving selected, contained workloads to a competitor may save money for the customer, create goodwill on behalf of the provider, and offer the opportunity for a commission for brokering the deal. This could involve the following steps:
In the case of a network environment, communication throughout the network can occur via any combination of various types of communication links. For example, the communication links can comprise addressable connections that may utilize any combination of wired and/or wireless transmission methods.
Where communications between a power provider and its customer occur via the Internet, connectivity could be provided by conventional TCP/IP socket-based protocol, and an Internet service provider could be used to establish connectivity to the Internet. Still yet, the computer infrastructure 108 is intended to demonstrate that some or all of the components of implementation could be deployed, managed, serviced, etc. by a service provider who offers to implement, deploy, and/or perform the functions of the present invention for others, such as the power provider or the customer.
As shown, the computer 104 includes a processing unit 112, a memory 116, a bus 120, and input/output (I/O) interfaces 124. Further, the computer 104 is shown in communication with external I/O devices/resources 128 and storage system 132. In general, the processing unit 112 executes computer program code, such as the code to implement various components of the computer 104, which are stored in memory 116 and/or storage system 132. It is to be appreciated that two or more, including all, of these components may be implemented as a single component.
While executing computer program code, the processing unit 112 can read and/or write data to/from the memory 116, the storage system 132, and/or the I/O interfaces 124. The bus 120 provides a communication link between each of the components in computer 104. The external devices 128 can comprise any devices (e.g., keyboard, pointing device, display, etc.) that enable a user to interact with computer 104 and/or any devices (e.g., network card, modem, etc.) that enable computer to communicate with one or more other computing devices.
The computer infrastructure 108 is only illustrative of various types of computer infrastructures for implementing the invention. For example, in one embodiment, the computer infrastructure 108 comprises two or more computing devices (e.g., a server cluster) that communicate over a network to perform the various process steps of the invention. Moreover, the computer 104 is only representative of various possible computer configurations that can include numerous combinations of hardware.
To this extent, in other embodiments, the computer 104 can comprise any specific purpose-computing article of manufacture comprising hardware and/or computer program code for performing specific functions, any computing article of manufacture that comprises a combination of specific purpose and general-purpose hardware/software, or the like. In each case, the program code and hardware can be created using standard programming and engineering techniques, respectively.
Moreover, the processing unit 112 may comprise a single processing unit, or be distributed across one or more processing units in one or more locations, e.g., on a client and server. Similarly, the memory 116 and/or the storage system 132 can comprise any combination of various types of data storage and/or transmission media that reside at one or more physical locations.
Further, the I/O interface 124 can comprise any system for exchanging information with one or more of the external device 128. Still further, it is understood that one or more additional components (e.g., system software, math co-processing unit, etc.) not shown in
The storage system 132 can be any type of system (e.g., a database) capable of providing storage for information under the present invention. To this extent, the storage system 132 could include one or more storage devices, such as a magnetic disk drive or an optical disk drive. In another embodiment, the storage system 132 includes data distributed across, for example, a local area network (LAN), wide area network (WAN) or a storage area network (SAN) (not shown). In addition, although not shown, additional components, such as cache memory, communication systems, system software, etc., may be incorporated into the computer 104.
As shown in
While shown and described herein as a method and a system, it is understood that the invention further provides various alternative embodiments. For example, in one embodiment, the invention provides a computer-readable/useable medium that includes computer program code to enable a computer infrastructure to perform the process steps of the invention. To this extent, the computer-readable/useable medium includes program code that implements each of the various process steps of the invention.
It is understood that the terms “computer-readable medium” or “computer useable medium” comprise one or more of any type of physical embodiment of the program code. In particular, the computer-readable/useable medium can comprise program code embodied on one or more portable storage articles of manufacture (e.g., a compact disc, a magnetic disk, a tape, etc.), on one or more data storage portions of a computing device, such as the memory 116 and/or the storage system 132 (e.g., a fixed disk, a read-only memory, a random access memory, a cache memory, etc.), and/or as a data signal (e.g., a propagated signal) traveling over a network (e.g., during a wired/wireless electronic distribution of the program code).
In another embodiment, the invention provides a business method that performs the process steps of the invention on a subscription, advertising, and/or fee basis. That is, a service provider could offer to manage the computer 104. In this case, the service provider can create, maintain, and support a computer infrastructure, such as the computer infrastructure 108 that performs the process steps of the invention for one or more customers. In return, the service provider can receive payment from the customer(s) under a subscription and/or fee agreement and/or the service provider can receive payment from the sale of advertising content to one or more third parties.
In still another embodiment, the invention provides a computer-implemented method for executing the computer 104. In this case, a computer infrastructure, such as computer infrastructure 108, can be provided and one or more systems for performing the process steps of the invention can be obtained (e.g., created, purchased, used, modified, etc.) and deployed to the computer infrastructure. To this extent, the deployment of a system can comprise one or more of: (1) installing program code on a computing device, such as computer 104 from a computer-readable medium; (2) adding one or more computing devices to the computer infrastructure; and (3) incorporating and/or modifying one or more existing systems of the computer infrastructure to enable the computer infrastructure to perform the process steps of the invention.
As used herein, it is understood that the terms “program code” and “computer program code” are synonymous and mean any expression, in any language, code or notation, of a set of instructions intended to cause a computing device having an information processing capability to perform a particular function either directly or after either or both of the following: (a) conversion to another language, code or notation, and/or (b) reproduction in a different material form. To this extent, program code can be embodied as one or more of: an application/software program, component software/a library of functions, an operating system, a basic I/O system/driver for a particular computing and/or I/O device, and the like.
The foregoing description of various aspects of the invention has been presented for purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise form disclosed, and obviously, many modifications and variations are possible. Such modifications and variations that may be apparent to a person skilled in the art are intended to be included within the scope of the invention as defined by the accompanying claims.