Workload placement among data centers based on thermal efficiency

A system for workload placement among data centers includes a plurality of grid resource allocation managers (GRAMs), wherein the GRAMs are configured to obtain information from the data centers. The system also includes an information service configured to receive information from the plurality of GRAMs and a broker configured to receive an application request and to determine resource requirements from the application request, wherein the broker is configured to determine which of the data centers contains adequate resources to perform the requested application. The system further includes a co-allocator configured to receive information pertaining to the data centers having the adequate resources, wherein the co-allocator is further configured to select one of the data centers to perform the requested application based upon energy efficiency characteristics of the data centers.

BACKGROUND OF THE INVENTION

A data center may be defined as a location, for instance, a room that houses computer systems arranged in a number of racks. A standard rack, for example, an electronics cabinet, is defined as an Electronics Industry Association (EIA) enclosure, 78 in. (2 meters) high, 24 in. (0.61 meter) wide and 30 in. (0.76 meter) deep. These racks are configured to house a number of computer systems, about forty (40) systems, with future configurations of racks being designed to accommodate 200 or more systems. The computer systems typically include a number of printed circuit boards (PCBs), mass storage devices, power supplies, processors, micro-controllers, and semi-conductor devices, that dissipate relatively significant amounts of heat during their operation. For example, a typical computer system comprising multiple microprocessors dissipates approximately 250 W of power. Thus, a rack containing forty (40) computer systems of this type dissipates approximately 10 KW of power.

The power required to transfer the heat dissipated by the components in the racks to the cool air contained in the data center is generally equal to about 10 percent of the power needed to operate the components. However, the power required to remove the heat dissipated by a plurality of racks in a data center is generally equal to about 50 percent of the power needed to operate the components in the racks. The disparity in the amount of power required to dissipate the various heat loads between racks and data centers stems from, for example, the additional thermodynamic work needed in the data center to cool the air. In one respect, racks are typically cooled with fans that operate to move cooling air across the heat dissipating components; whereas, data centers often implement reverse power cycles to cool heated return air. The additional work required to achieve the temperature reduction, in addition to the work associated with moving the cooling fluid in the data center and the condenser, often add up to the 50 percent power requirement. As such, the cooling of data centers presents problems in addition to those faced with the cooling of the racks.

Conventional data centers are typically cooled by operation of one or more air conditioning units. For example, compressors of air conditioning units typically consume a minimum of about thirty (30) percent of the required operating energy to sufficiently cool the data centers. The other components, for example, condensers and air movers (fans), typically consume an additional twenty (20) percent of the required total operating energy. As an example, a high density data center with 100 racks, each rack having a maximum power dissipation of 10 KW, generally requires 1 MW of cooling capacity. Air conditioning units with a capacity of 1 MW of heat removal generally requires a minimum of 300 KW input compressor power in addition to the power needed to drive the air moving devices, for instance, fans and blowers. Conventional data center air conditioning units do not vary their cooling fluid output based on the distributed needs of the data center. Instead, these air conditioning units generally operate at or near a maximum compressor power even when the heat load is reduced inside the data center.

The efficiencies at which the air conditioning units are able to cool the data centers are functions of the temperature of heat addition and the temperature of heat rejection (Carnot power cycle). The efficiency (η) of a classic Carnot power cycle is derived from the following equation:

As seen in the equation above, as the temperature of heat addition rises, the efficiency increases. The efficiency also increases as the temperature of heat rejection to the environment decreases.

A common type of heat extraction system employed in data centers includes reverse power cycle systems, which are also known as vapor-compression cycles. In reverse power cycle systems, heat addition occurs in the evaporator and heat rejection occurs in the condenser. A pressure (P)—enthalpy (h) diagram600depicting a typical vapor-compression cycle for heat rejection from data centers using R134a refrigerant is illustrated inFIG. 6A. In the diagram600, heat addition (Qevap) occurs in the evaporator (C-D), work input (Wc) occurs at the compressor (D-A), and heat rejection (Qcond) occurs at the condensor (A–B). The processes C–D and A–B occur at constant temperatures and are referred as evaporator temperature (Tevap) and condenser temperature (Tcond), respectively.

Heat extraction from data centers occurs at the evaporators (Qevap) of air conditioning units. Heat rejection occurs at the condensers (Qcond) of the air conditioning units and is the sum of the compressor work (Wc) and the evaporator heat addition (Qevap). The coefficient of performance (COP) of air conditioning units is the ratio of desired output (Qevap) over the work input (Wc), that is:

The COP of air conditioning units is improved by reducing the required compressor work (Wc) to provide the same amount of cooling (i.e., Qevap). This is graphically illustrated in the COP versus condenser temperature (Tcond) plot602depicted inFIG. 6B. The COP results depicted inFIG. 6Bare based on an evaporator temperature of 10° C. and a compressor isentropic efficiency of 60%. Because heat can only be rejected to the ambient surroundings over a negative temperature gradient, the ambient temperature gates the temperature of heat rejection to the external environment (i.e., condenser temperature). Accordingly, ambient temperatures place a theoretical limit on the maximum efficiency of data center air conditioning systems.

SUMMARY OF THE INVENTION

According to an embodiment, the present invention pertains to a system for workload placement among data centers. The system includes a plurality of grid resource allocation managers (GRAMs), wherein the GRAMs are configured to obtain information from the data centers. The system also includes an information service configured to receive information from the plurality of GRAMs and a broker configured to receive an application request and to determine resource requirements from the application request, wherein the broker is configured to determine which of the data centers contains adequate resources to perform the requested application. The system further includes a co-allocator configured to receive information pertaining to the data centers having the adequate resources, wherein the co-allocator is further configured to select one of the data centers to perform the requested application based upon energy efficiency characteristics of the data centers.

DETAILED DESCRIPTION OF THE INVENTION

Throughout the present disclosure, reference is made to “cooling fluid” and “heated cooling fluid”. For purposes of simplicity, “cooling fluid” may generally be defined as air that has been cooled by a cooling device, for instance, an air conditioning unit. In addition, “heated cooling fluid” may generally be defined as cooling fluid that has been heated. It should be readily apparent, however, that the terms “cooling fluid” are not intended to denote air that only contains cooled fluid and that “heated cooling fluid” only contains cooling fluid that has been heated. Instead, embodiments of the invention may operate with air that contains a mixture of heated cooling fluid and cooling fluid. In addition, cooling fluid and heated cooling fluid may denote gases other than air, for instance, refrigerant and other types of gases known to those of ordinary skill in the art that may be used to cool electronic components.

A workload placement system bases resource allocation decisions among a plurality of data centers on various characteristics of the data centers. One of the characteristics includes the available resources (i.e., computer systems, processors, memories, servers, etc.) in the data centers. Another characteristic includes considerations based upon energy usage of the data centers. A further characteristic includes the efficiencies at which the data centers operate, for instance, in terms of energy usage for one or both of powering and cooling the resources.

In one example, the workload placement system may take advantage of the environmental conditions in which data centers are located in making resource allocation determinations. As discussed in the Background section, the ambient temperatures to which condensers reject heat affect the efficiencies at which heat is removed from data centers. In general, heat rejection from condensers increases with lower ambient temperatures, thereby increasing the efficiency of data center cooling systems. The workload placement system may select a data center to perform a requested application based upon the ambient conditions around the data center when the requested application is to be performed. Thus, for instance, because the ambient conditions may vary for various data center locations during various times of the year as well as during various times during each day, these factors may be considered by the workload placement system in selecting a data center to perform the requested application.

The data centers may contain resources for performing various applications and may be located at various geographic locations. For instance, the data centers may be located in various places, such as, different counties, states, or continents. The data centers may be associated with respective computer systems configured to operate as the resource allocation managers. More particularly, the computer systems may operate as one or both of local resource allocation managers and grid resource allocation managers. In terms of operating as local resource allocation managers, the computer systems may be configured to determine on which servers or other machines a requested application is performed. In operating as grid resource allocation managers, the computer systems may be configured to report their available resources to an information service designed to register the resources in the data centers.

The workload placement system includes a broker configured to make some of the workload placement decisions. More particularly, the broker is configured to query the information service to determine which data centers contain adequate resources to perform a computation or operation for a requested application. The adequate resources may include components capable of performing the requested application and sufficient resource instances to perform the requested application. If the broker determines that a single data center meets the criteria to perform the requested application, the broker may transmit an instruction to that data center to perform the requested application. However, if the broker determines that a number of data centers have adequate resources to perform the requested application, the identities of the qualifying data centers may be transmitted to an energy-aware co-allocator.

The energy-aware co-allocator may select a data center from the qualifying data centers to perform the requested application. The co-allocator may base this decision on the energy efficiencies of the data centers. More particularly, the co-allocator may select the data center having the highest energy efficiency. The energy efficiencies of the data centers may be classified as energy efficiency coefficients. The energy efficiency coefficients for the data centers may be determined in manners as described hereinbelow. In any respect, the co-allocator may select the data center having the highest energy efficiency coefficient to perform the workload or application.

Through implementation of various embodiments of the invention, a data center having a comparatively high energy efficiency may be selected to perform various applications. In one regard, therefore, the amount of energy required to perform various applications may be substantially optimized to thereby substantially minimize the costs associated with performing the various applications.

With reference first toFIG. 1, there is shown a simplified perspective view of an exemplary data center100. The terms “data center” are generally meant to denote a room or other space and are not meant to limit the invention to any specific type of room where data is communicated or processed, nor should it be construed that use of the terms “data center” limits the invention in any respect other than its definition hereinabove.

The data center100depicted inFIG. 1represents a generalized illustration and other components may be added or existing components may be removed or modified without departing from the scope of the invention. For example, the data center100may include any number of racks and various other apparatuses known to be housed in data centers. Thus, although the data center100is illustrated as containing four rows of racks102–108and a single CRAC unit114, it should be understood that the data center100may include any number of racks, for instance,100racks, and CRAC units114without departing from the scope of the invention. The depiction of four rows of racks102–108and one CRAC unit114is thus for illustrative and simplicity of description purposes only and is not intended to limit the invention in any respect.

The data center100is depicted as having a plurality of racks102–108, for instance, electronics cabinets, aligned in substantially parallel rows. The racks102–108are illustrated as having open front sides such that the components122housed therein are visible. It should, however, be understood that embodiments of the invention may be practiced with racks having panels that cover the front sides of the racks102–108without departing from a scope of the invention. The rows of racks102–108are shown as containing four racks (a–d) positioned on a raised floor110. A plurality of wires and communication lines (not shown) may be located in a space112beneath the raised floor110. The space112may also function as a plenum for delivery of cooling fluid from a computer room air conditioner (CRAC) unit114to the racks102–108. The cooling fluid may be delivered from the space112to the racks102–108through vent tiles116located between some or all of the racks102–108. The vent tiles116are shown inFIG. 1as being located between racks102and104and106and108.

The CRAC unit114is illustrated as being in communication with a rooftop condenser118through fluid lines120. Although the condenser118is illustrated as a rooftop condenser, any reasonably suitable device capable of transferring heat to the external environment may be implemented without departing from a scope of the invention. For instance, therefore, cooling towers, evaporative coolers, heat exchangers, etc., may be employed in place of the condenser118.

In one example, the CRAC unit114generally receives heated cooling fluid from the data center100and heat from the cooling fluid is absorbed by a refrigerant within the CRAC unit114through a conventional vapor compression cycle. In another example, the CRAC unit114includes a conventional chiller system configured to cool the heated cooling fluid. In any respect, the cooled cooling fluid is supplied into the space112and delivered to the racks102–108through the vent tiles116. In a further example, the CRAC unit114may include components capable of varying the temperature and/or the volume flow rate of the cooling fluid delivered into the space112to thereby vary these characteristics of cooling fluid delivery to the racks102–108. A more detailed description of the elements illustrated with respect toFIG. 1along with manners in which the elements may be operated, may be found, for instance, in commonly assigned U.S. Pat. No. 6,574,104, filed on Oct. 5, 2001, which is hereby incorporated by reference in its entirety.

The racks102–108are generally configured to house a plurality of components122, for instance, computers, servers, monitors, hard drives, disk drives, etc., designed to perform various operations, for instance, computing, switching, routing, displaying, etc. These components122may comprise subsystems (not shown), for example, processors, micro-controllers, high-speed video cards, memories, semi-conductor devices, and the like to perform these functions. In the performance of these electronic functions, the components122, and therefore the subsystems, generally dissipate relatively large amounts of heat. Because the racks102–108have generally been known to include upwards of forty (40) or more subsystems, they may transfer substantially large amounts of heat to the cooling fluid to maintain the subsystems and the components122generally within predetermined operating temperature ranges.

A relatively small number of components122are illustrated as being housed in the racks102–108for purposes of simplicity. It should, however, be understood that the racks102–108may include any number of components122, for instance, forty or more components122, or200or more blade systems, without departing from the scope of the invention. In addition, although the racks102–108are illustrated as containing components122throughout the heights of the racks102–108, it should be understood that some of the racks102–108may include slots or areas that do not include components122without departing from the scope of the invention.

Also illustrated inFIG. 1is a computer system124. The computer system124is generally configured to control various operations in the data center100. For instance, the computer system124may be configured to control workload placement amongst the various components122. As another example, the computer system124may be configured to control various operations of the CRAC unit114and the vent tiles116, collectively considered as the cooling system. The cooling system also includes a plurality of sensors (not shown) configured to detect at least one environmental condition, for instance, temperature, pressure, humidity, etc. These sensors may comprise any reasonably suitable conventional sensors configured to detect one or more of these environmental conditions. The sensors may be positioned at various locations of the data center100. The sensors may be positioned, for instance, to detect the temperature of the cooling fluid supplied by the CRAC unit114, the temperatures of the cooling fluid at the inlets of various racks102–108, the temperatures of the cooling fluid at the outlets of various racks102–108, etc. The sensors may comprise devices separate from the components122or they may comprise devices integrated with the components122.

As will be described in greater detail hereinbelow, the computer system124may also be configured to communicate with various devices through a network, for instance, the Internet. The various devices may be configured to receive information from the computer system124. In addition, the computer system124may also be configured to receive information from the various devices.

Although the computer system124is illustrated as being separate from and located away from the racks102–108, the computer system124may also comprise a server or other device housed in one of the racks102–108without deviating from a scope of the invention.

FIG. 2Ais an exemplary block diagram200of a workload placement system202. It should be understood that the following description of the block diagram200is but one manner of a variety of different manners in which such a workload placement system202may be configured. In addition, it should be understood that the block diagram200may include additional components and that some of the components described herein may be removed and/or modified without departing from the scope of the invention. For instance, the block diagram200may include any number of sensors, servers, vent tiles, CRAC units, etc., as well as other components, which may be implemented in the operations of the workload placement system202.

As shown, the workload placement system202includes a controller204, which may be configured to control various components in the data center100. In this regard, the controller204may comprise, for instance, the computer system124illustrated inFIG. 1. In addition, the controller204may comprise a microprocessor, a micro-controller, an application specific integrated circuit (ASIC), and the like. The controller204may operate as the local resource allocation manager for the data center100. In addition, as described in greater detail hereinbelow, the controller204may also operate as a grid resource allocation manager.

The controller204is depicted as including an input module206configured to receive information from sensors208–212. The input module206may include hardware and/or software configured to enable communications with the sensors208–212and may be configured based upon the manners of communication employed between the sensors208–212and the input module206. The sensors208–212may comprise any reasonably suitable sensor configured to detect one or more environmental conditions, for instance, temperature, pressure, humidity, etc. In addition, the sensors208–212may be positioned at reasonably suitable location in the data center100. Examples of suitable locations may include, for instance, the inlet and outlet of the CRAC unit114, the outlets of the vent tiles116, the inlets and outlets of the racks102–108, etc. The sensors208–212may also comprise sensors that may be added to existing components or the sensors may be bundled or integrated with the components, for instance, components122, CRAC unit114, vent tiles116, etc. In addition, although three sensors208–212are depicted inFIG. 2A, any number of sensors may be included in the system202without departing from a scope of the invention.

The controller204may receive information from the sensors208–212in any reasonably suitable wired or wireless manner. In this regard, for instance, information may be transmitted from the sensors208–212to the controller204, and more particularly to the input module206, via an Ethernet-type connection or through a wired protocol, such as IEEE 802.3, etc., or wireless protocols, such as IEEE 802.11b, 802.11g, wireless serial connection, Bluetooth, etc., or combinations thereof. The controller204may store the information received from the sensors208–212in a memory214. The memory214may comprise a traditional memory device, such as, volatile or non-volatile memory, such as DRAM, EEPROM, flash memory, combinations thereof, and the like.

In one regard, a cooling module216of the controller204may receive the information received by the input module206from the sensors208–212. Alternatively, the cooling module216may access the memory214to obtain the information. In any regard, the cooling module216may, for instance, be configured to determine how one or more of the CRAC unit114and the vent tiles116are to be manipulated in response to the received information. In addition, the cooling module216may be configured to operate the vent tiles116and/or the CRAC unit114, for instance, in manners as described in commonly assigned and co-pending U.S. patent application Ser. No. 10/446,867 filed on May 29, 2003, the disclosure of which is hereby incorporated by reference in its entirety. By way of example, the cooling module216may be configured to increase the volume flow rate of cooling fluid delivered into the space112if the information indicates that additional cooling is required in the data center100.

Control signals sent from the controller204to the vent tiles116and the CRAC unit114may be effectuated through use of interface electronics230. In one regard, the interface electronics230may act as an interface between the controller204and various actuators (not shown) of the CRAC unit114and the vent tiles116. By way of example, the interface electronics230may vary the voltage supplied to an actuator provided to actuate vanes in a vent tile116to thereby vary the opening in the vent tile116.

According to another example, the controller204may include a heat index calculator module218. The heat index calculator module218may be configured to receive information received by the input module206and calculate a heat index, which is a non-dimensional parameter that may be used to determine a scalable “index of performance”. In addition, the index of performance may quantify the amount of re-circulation occurring at various locations of the data center100. In this regard, the parameters are disclosed as a supply heat index (SHI) and a return heat index (RHI). The SHI and RHI may act as indicators of thermal management and energy efficiency of one or more components, a rack, a cluster of racks, or the data center100as a whole.

The SHI may be used to determine the level, if any, of heated cooling fluid re-circulation into the cooling fluid supplied to the racks102–108as disclosed and described in the Ser. No. 10/446,867 patent application. The disclosure of which is hereby incorporated by reference in its entirety. As discussed that in that application, the SHI may be calculated based upon temperatures measured at various locations throughout the data center100. For example, the temperature of the cooling fluid supplied by the CRAC unit114as well as temperatures of the cooling fluid supplied to various racks102–108and the temperatures of the cooling fluid exhausted from the various racks102–108may be implemented to determine SHI. As further described in the Ser. No. 10/446,867 patent application, the SHI for a given rack may thus be determined as follows:

The heat index calculator module218may further calculate a total SHI for the data center100. By way of example, the heat index calculator module218may receive temperature information from sensors208–212variously positioned in the data center100, in which some of the sensors208–212are configured to detect temperatures of cooling fluid supplied by different CRAC units114as well as at the inlets and outlets of racks102–108positioned in diverse locations of the data center100. The heat index calculator module218may aggregate the calculated SHI's and formulate a data center100SHI. The aggregation of the calculated SHI's may include, for instance, determining a minimum SHI level, a maximum SHI level, an average SHI level, a mean SHI level, etc., for the data center100. The heat index calculator module218may communicate one or more of the SHI levels to a communication module220of the controller204. As will be described in greater detail hereinbelow, the communication module220may be configured to communicate with, for instance an information service222and a co-allocator224. The communication may be effectuated through, for instance, the Internet226. In this regard, the communication module220may include any reasonably suitable known hardware and/or software configured to effectuate communications between the controller204and the Internet226.

As also illustrated inFIG. 2A, the controller204includes a workload placement module228. The workload placement module228is generally configured to receive workload requests from, for instance, a user, a customer, another computer system, broker256, co-allocator224, etc., and to determine which of the components122are capable of performing the workload requests. In addition, the workload placement module228is configured to submit the workload request to the appropriate component(s)122. In performing these functions, the workload placement module228may access information pertaining to the components122, which may be stored in the memory214. This information may include, for example, the various subsystems (for instance, processors, drivers, software, etc.) contained in the components122, the current and scheduled workloads of the components122, various performance characteristics of the components122, energy consumption characteristics of the components122, etc. In this regard, the controller204may operate as the local resource allocation manager for the data center100.

The workload placement module228may also be in communication with the communication module220. In one regard, the workload placement module228may be configured to transmit information pertaining to the components122to the communication module220. The communication module220may also be configured to transmit this information to the information service222as will be described in greater detail hereinbelow. In general, the communication module220may function as a means for enabling communications between the controller204and, for instance, the information service222.

The input module206may also receive information from an external sensor232and a clock234. The external sensor232may be configured to detect one or more ambient conditions around the data center100. The clock234may be configured to provide a current time to the input module206. As described in greater detail hereinbelow, the ambient conditions and the time detected by the external sensor232and the clock234, respectively, may be communicated to the information service222through the communication module220.

The controller204may thus operate as a grid resource allocation manager, in that, the controller204may be configured to communicate data to the information service222. In addition, the controller204may also receive instructions from the energy aware co-allocator224and form part of a large-scale workload placement system, as described hereinbelow with respect toFIG. 2B.

FIG. 2Bis an exemplary block diagram of a workload placement system250having a plurality of data centers252a–252c. It should be understood that the following description of the WPS250is but one manner of a variety of different manners in which such a WPS250may be configured. In addition, it should be understood that the WPS250may include additional components and that some of the components described herein may be removed. and/or modified without departing from the scope of the invention. For instance, the WPS250may include any number of data centers, brokers, co-allocators, etc., as well other components, which may be implemented in the operations of the WPS250.

As shown inFIG. 2B, the WPS250includes a plurality of data centers A-C252a–252c, each of which may be configured as the data center100depicted inFIG. 1. In one regard, therefore, the data centers252a–252cmay include some or all of the elements described and illustrated hereinabove with respect toFIG. 1. In addition, the data centers252a–252cmay be located in relatively diverse geographic locations with respect to each other. The diverse geographic locations may include, for instance, locations in various counties of a particular State, different States, different countries, different continents, different time zones, etc. As another example, the geographic locations may be substantially based upon locations having different ambient conditions at different times. Thus, a data center, for instance, data center252amay be located in the U.S. and another data center, for instance, data center252b, may be located in India.

In addition, a grid resource allocation manager (GRAM)254a–254cis illustrated as being associated with a respective data center252a–252c. The GRAMs254a–254cmay comprise the computer system124and thus the controller204of the workload placement system202. In this regard, the GRAMs254a–254cmay be configured to operate in manners as described hereinabove with respect to the computer system124and the controller204. Alternatively, the GRAMs254a–254cmay comprise separate computing devices that may be configured to receive information from and communicate information to respective workload placement systems202.

The GRAMs254a–254cmay be configured to perform various other functions in the WPS250. One function includes compiling information regarding the capabilities of the components122contained in the data centers252a–252c. The GRAMs254a–254cmay be configured to gather information regarding the components122as described hereinabove with respect to the workload placement module228. As also described hereinabove, the workload placement module228may also be configured to determine the anticipated or scheduled workloads on the components122. The GRAMs254a–254cmay also include the communication module220, and may be configured to transmit information pertaining to the components122in the data centers252a–252cto the information service222. In this regard, the GRAMs254a–524cmay comprise the workload placement module228described hereinabove with respect toFIG. 2A.

The information service222may comprise a computer system or other computing device capable of communicating with the GRAMS254a–254cthrough a network, such as, the Internet226. The information service222generally operates as hardware and/or software where information from the GRAMs254a–254cmay be registered and stored. In addition, the information service222may be physically located at any reasonably suitable location. For instance, the information service222may form part of a component in the WPS250, for instance, a GRAM254a–254c, energy aware co-allocator224, etc. Alternatively, the information service222may form a separate device and may be located in a distinct geographic location from the other components of the WPS250.

The GRAMs254a–254cmay also function to collect SHI information. The GRAMS254a–254cmay thus include the heat index calculator module218. The GRAMs254a–254cmay communicate the SHI information to the information service222through the communication module220. For instance, the communication module220may be connected to the information service222through the Internet226.

The GRAMs254a–254cmay be programmed with geographic location information. For instance, the GRAMs254a–254cmay be programmed with information pertaining to the State, country, continent, time zone, etc., at which the associated rooms252a–252care respectively located. The GRAMs254a–254cmay also include respective temperature sensors configured to detect the ambient temperatures of associated data centers252a–252c. This information may also be provided to the information service222through the communication module220.

The energy-aware co-allocator224is configured to query the information service222to obtain information regarding various characteristics of the data centers252a–252c. The co-allocator224may also comprise a computing device, for instance, a computer system, server, hardware, software, etc., operable to perform various functions as described below. In one regard, the co-allocator224may operate to select a data center252a–252cto perform a requested application. The selection of the data center252a–252cmay substantially be based upon energy efficiency coefficients of the data centers252a–252c. More particularly, the co-allocator224may select the data center252a–252chaving the highest energy efficiency coefficient (χ). The energy efficiency coefficient (χi) of the ith data center252a–252cmay be determined through the following equation:

Equation⁢⁢5⁢:⁢⁢ξi=1/SHI,
of the ith data center,

Equation⁢⁢6⁢:⁢⁢COPi=QevapWc,
where Qevapis the desired heat output of the data center and Wcis the work input, for instance, by a compressor,

τ is a duration in which the application is to be scheduled, and

t is the time of day in which the application is to be scheduled for performance.

The co-allocator224may select the data center252a–252chaving the highest energy efficiency coefficient (χ) at the time of the application placement. The highest or maximum energy efficiency coefficient (χ) may be identified as a workload placement indicator (WPI), given by:
WPI=max(χi)∀iEquation 7

As shown in equation (4), the energy efficiency coefficient (χi) of the ith data center is based upon a plurality of factors. These factors include, the SHI of the data center, the duration (τ) in which the application is to be scheduled, the time of day (t) in which the application is to be scheduled, and the coefficient of performance (COP) of the data center. As discussed in the Background section, the COP varies depending upon the ambient conditions around the data centers252a–252c. In addition, the COP of the data centers252a–252cmay also vary depending upon the type of cooling technology employed as well as the operating loads in the data centers252a–252c. Thus, the energy efficiency coefficient (χi) for a data center252a–252cmay vary depending upon the time of day in a particular region where the data center252a–252cis located, as well as various other factors related to their COPs.

As an example, the data center252amay be considered as being located in Phoenix, Ariz., and the data center252bmay be considered as being located in New Delhi, India. A diagram300of the ambient temperatures in Phoenix and New Delhi at various Greenwich Mean Times (GMTs) on a typical day in May2002is illustrated inFIG. 3A. As shown in the diagram300, the ambient temperatures in Phoenix and New Delhi vary depending upon the GMT at which the temperatures are taken. In this regard, the COPs of the data centers252aand252bmay also vary depending upon their respective GMTs. In addition, therefore, the energy efficiency coefficients (χi) for the data centers252aand252bmay also vary at different GMTs.

To further elaborate, as shown inFIG. 3A, afternoon temperatures in New Delhi reach a maximum of 40 C when the night temperatures in Phoenix drops to below 20 C. Assuming that the condenser temperature is 10 C higher than the ambient temperature at this time of operation, data centers in New Delhi and Phoenix would have condenser temperatures of 50 C and 30 C, respectively. From the COP curve602inFIG. 6B, the COPs for these operating conditions may be taken to be 3.32 and 7.61, respectively. This result clearly indicates that the workload placement in New Delhi would be 56% more energy intensive than that in Phoenix at that time of day. Therefore, placing the workload in the data center located in Phoenix at that time of day would be more beneficial in terms of energy usage.

Another factor that may be considered in determining where to place workloads is the ambient humidity around each of the data centers252a–252c. More particularly, depending upon the relative humidity (RH) of the air surrounding a data center, cooling of data center supply air may also involve, inadvertently, condensing moisture from the air. For instance, cooling air at 30 C, and at 50% RH to 15 C and 98% RH involves condensation of 3 grams of moisture for every kilogram of air. Therefore, about 30% of the actual cooling capacity is wasted in extraction of latent heat during condensation. The condensation process leads to latent heat load on the cooling system, not accounted for by the sensible cooling capacity provided by the system. Such an extraneous load generally reduces the effective sensible cooling obtainable from the cooling system. Typically, outside air makes up 10% of the total re-circulation volume flow rate of air in a data center. Therefore, the effect of relatively humidity of ambient air on data center cooling performance is an order of magnitude lower than that of condenser temperature. However, higher ambient RH is a potential disadvantage because it negates the use of less energy-intensive methods like evaporative cooling for data center cooling systems.

As illustrated inFIG. 3B, a diagram350shows the RH levels in Phoenix and New Delhi at various GMTs during a day. In the diagram350, the RH levels vary between Phoenix and New Delhi at particular times during the day, but are similar during, for instance, the afternoon time period in New Delhi. Thus, for instance, if the time in which workload is to be placed is around the afternoon period in New Delhi, the RH levels may not provide a significant factor in determining the workload placement. However, if the workload is to be placed around the evening time period in New Delhi, the RH levels may be factored in determining the data center to which the workload is to be placed. More particularly, because there is a nearly 40% difference in RH between Phoenix and New Delhi, although the ambient temperature in Phoenix may be relatively higher than in New Delhi at that time, the workload may still be placed in the data center located in Phoenix due to the difference in RH levels.

As described hereinabove, the COPs of the data centers252a–252cmay vary according to the RH levels around the data centers252a–252c. In addition, the co-allocator224may be configured to consider the RH levels in selecting a data center252a–252cto perform the application258.

According to an example, the co-allocator224may use modified COP values for the data centers252a–252c. The modified COP values may be based upon a ratio of the power consumed by the components122and the power consumed by the CRAC unit114in cooling the components122. The power consumed by the CRAC unit114includes the power required in dehumidifying the cooling fluid delivered to the components122. In this regard, the data centers252a–252chaving RH levels higher than a predetermined set point will require greater levels of dehumidification, which translates to greater power required by the CRAC unit114in cooling the components122. Based upon this relationship between the power consumed by the components122and the power consumed by the CRAC unit114, the modified COP values would decrease for data centers252a–252chaving RH levels higher than the predetermined set

As a further example, the RH levels of the data centers252a–252cmay be compared to predetermined set point values. The predetermined RH set point levels may be based upon a plurality of factors. For instance, these levels may be based upon component122or CRAC unit114manufacturer specifications, testing of CRAC unit114power consumption levels for various RH levels, etc. Under this example, if the measured RH level for a given data center252a–252cis within a predetermined error level from a predetermined RH set point level, for instance, within about 8% of the RH set point level, the co-allocator224may consider that data center252a–252cas a candidate for performing the requested application. However, if the measured RH level for the given data center252a–252cfalls outside of the error level, the co-allocator224may remove that data center252a–252cfrom consideration. In any respect, the co-allocator224may select the data center252a–252cto perform the application258from the remaining candidate data centers252a–252c.

In addition, the co-allocator224may be configured to select the data center252a–252cbased upon the forecasted energy efficiency coefficient (χ) values of the data centers252a–252cif the application258is performed by those data centers252a–252c. Thus, for instance, the GRAMS254a–254cmay be configured to forecast or otherwise model the SHI levels of their respective data centers252a–252cwith the additional workload placed on them. The GRAMs254a–254cmay calculate the energy efficiency coefficients (χ) of the data centers252a–252cbased upon the forecasted SHI levels. In this regard, the energy efficiency coefficients (χ) of the data centers252a–252cmay vary with the additional workload. The co-allocators224may be configured to account for the possibility that the energy efficiency coefficients (χ) may vary and thus may select the data center252a–252chaving the highest WPI with the projected workload.

The changes to the SHI based upon the anticipated additional workload may be determined through, for instance, testing of the data centers252a–252cwith various workloads to determine their effects on the SHI. Alternatively, the changes to the SHI may be calculated based upon manufacturer specified heat dissipation characteristics of the components122contained in the data centers252a–252c. As a further alternative, a combination of manufacturer specified heat dissipation characteristics and testing may be implemented to determine the affects of the increased workloads on the SHI levels of the data centers252a–252c.

In any regard, the anticipated SHI levels and/or energy efficiency coefficients (χ) may be stored in the memories of the GRAMs254a–254cin form of look-up tables, charts, etc. In addition, this information may be transmitted to the information service222and retrieved by the co-allocator224.

Also illustrated inFIG. 2Bis a broker256configured to select one or more data centers252a–252cto perform a requested application based upon criteria not related to energy usage or energy conservation. Instead, the broker256is configured to query the information service222to determine which data centers252a–252care capable of performing the requested application. In one regard, the broker256may comprise a computing device or software operating on a computing device, configured to select one or more qualifying data centers252a–252c.

In making this determination, the broker256is configured to obtain information regarding the resources available in the data centers252a–252c. More particularly, the broker256may determine whether one or more of the data centers252a–252ccontain appropriate resources (i.e., machines, software, operating systems, resource instances, etc.) to perform the requested application. The broker256may also receive information from the information service222pertaining to the number of resources available to perform the requested application as well as whether the resources have sufficient amounts of resource instances to perform the requested application. In addition, the broker256may determine whether there are any constraints which would prevent a data center252a–252cfrom performing the requested application. The constraints may include, for instance, restrictions or security issues, which may prevent the allocation of a workload to a particular data center. The constraints may thus include licensing agreements requiring that certain applications be performed within the U.S., for example.

In operation, the broker256may receive an application258request in the form of a resource specification language (RSL). The RSL may include a description of the services required by a particular application258. The broker256may be configured to determine which specific resources and their quantities are needed to perform the required services of the particular application258, which may be considered as a ground RSL. In one regard, the broker256may operate to translate the RSL into the ground RSL. By way of example, an application258may include a request, in RSL, for a portal application with BEA and Oracle that is point. However, if the RH levels are below the predetermined set point, the CRAC unit114may attempt to humidify the cooling fluid delivered to the components122. In this situation, because the humidification process also requires additional power consumption by the CRAC unit114, the modified COP will, therefore, be affected by the humidification process as well. The modified COP may thus be used in place of the COP described hereinabove with respect to the determination of the energy efficiency coefficient (χ). In addition, the co-allocator224may select the data center252a–252chaving the highest energy efficiency coefficient (χ) based upon the modified COP to perform the requested application258.

According to another example, a penalty factor may be included in the determination of the energy efficiency coefficients (χ) of the data centers252a–252c. The penalty factor may substantially be based upon the RH levels around the data centers252a–252c. Thus, for instance, if the RH level is higher than a predetermined setpoint, a dehumidifier of a CRAC unit114may be in operation. If the dehumidifier is in operation, a penalty factor may be included in the determination of the COP for that data center252a–252c. By way of example, the co-allocator224may decide to withdraw any data centers252a–252cfrom consideration in determining whether to allocate the application in that data center252a–252c, if the penalty factor is detected.

Alternatively, the penalty factor may be assigned according to the level of dehumidifier (or humidifier) operation in the data center252a–252c. Thus, for instance, values may be assigned to various levels of dehumidifier (or humidifier) activity, which may correlate to the penalty factors of the data centers252a–252chaving dehumidifiers that are operating. In this example, a larger penalty factor may be assigned to those data centers252a–252chaving higher levels of dehumidifier or humidifier activity. The penalty factors may, for instance, be subtracted from or otherwise reduce the COP of the data centers252a–252cfor which the dehumidifiers are operating. In addition, the levels to which the COPs are reduced may be based upon the dehumidification (or humidification) levels. In this regard, the energy efficiency coefficients (χ) of the data centers252a–252chaving the reduced levels of COP will be lower than for those data centers252a–252chaving COPs which are not reduced due to dehumidification (or humidification) operations. configured to serve 100 users per hour. The broker256may translate this request into ground RSL, which may include an indication that, for instance, 5 rp2450 servers with greater than 1 GB of memory, 12 1 p2000r servers, and 8 DL360's are required to perform that requested application258.

In general, the ground RSL may specify that a certain number of computing devices having predefined architectures operable to run for a predefined period of time are required to perform a particular application258. The broker256may query the information service222for information relating to the available resources in the data centers252a–252c. The broker256may compare the available resources in the data centers252a–252cwith the resource requirements set forth in the ground RSL to determine which of the data centers252a–252chave sufficient resources to perform the requested application258. The comparison maybe performed in a number of different manners. For instance, the ground RSL information of the application258requirements and the data center252a–252cinformation from the information service222may be compiled into charts or tables, which the broker256may directly compare.

If the broker256determines that none of the data centers252a–252chave sufficient resources to perform the requested application, the broker256may determine that the application258may not be performed. If the broker256determines that a single data-center252a–252chas sufficient resources to perform the requested application, the broker256may submit the requested application258to that data center252a–252c, such that, the application258may be performed by that data center252a–252c. If the broker256determines that more than one data center252a–252cqualifies to perform the requested application258, the broker256may transmit the identities of the qualifying data centers252a–252cto the co-allocator224.

Alternatively, the broker256may transmit the ground RSL requirements to the co-allocator224. In this instance, the co-allocator224may query the information service222to obtain the information relating to the available resources in the data centers252a–252c. The co-allocator224may compare the ground RSL requirements with the available resources in the data centers252a–252cto determine which of the data centers252a–252care capable of performing the requested application258. The co-allocator224may select one of the qualifying datacenters252a–252cbased upon the energy efficiency coefficients of the qualifying data centers252a–252c. Thus, for instance, the co-allocator224may select the data center252a–252chaving the highest energy efficiency coefficient, as described hereinabove.

According to another example, the co-allocator224may receive the application258request directly, without receiving information from the broker256. In this example, the application258request may be submitted directly to the co-allocator224in the form of the ground RSL. As described hereinabove, the co-allocator224may compare the ground RSL requirements with the resources available in the data centers252a–252cto determine which of the data centers252a–252ccontain appropriate resources to perform the requested application258. In addition, the co-allocator224may select one of the data centers252a–252cto perform the requested application258as also described hereinabove.

FIG. 4Aillustrates an exemplary flow diagram of an operational mode400of a method for workload placement. It is to be understood that the following description of the operational mode400is but one manner of a variety of different manners in which an embodiment of the invention may be practiced. It should also be apparent to those of ordinary skill in the art that the operational mode400represents a generalized illustration and that other steps may be added or existing steps may be removed, modified or rearranged without departing from the scope of the invention.

The description of the operational mode400is made with reference to the block diagram200illustrated inFIG. 2A, and thus makes reference to the elements cited therein. It should, however, be understood that the operational mode400is not limited to the elements set forth in the block diagram200. Instead, it should be understood that the operational mode400may be practiced by a workload placement system having a different configuration than that set forth in the block diagram200.

The operational mode400may be initiated or started as indicated at step402. The initiation of the operational mode400may include activation of the components122and the cooling system (for instance, the CRAC unit114and vent tiles116) in the data center100. Once activated, the sensors208–212may detect conditions at one or more locations of the data center100, as indicated at step404. For instance, the sensors208–212may be positioned to detect the temperature of cooling fluid supplied by the CRAC unit114, the temperatures of the cooling fluid at the inlets of various racks, the temperatures of the cooling fluid at the outlets of various racks, etc. Based upon the detected conditions, the heat index calculator module218may calculate a supply heat index (SHI) of the data center100at step406.

The heat index calculator module218may also be configured to determine SHI levels for various loading conditions. The heat index calculator module218may determine the SHI levels either through testing or based upon manufacturers' specified thermal outputs of the components122. In this regard, the SHI levels may be based upon anticipated loading levels of the data center100. The information obtained by the heat index calculator module218may be stored in the memory214and may also be communicated to the information service222.

At step408, the workload placement module228may determine the resources, for instance, components122, computer systems, servers, displays, other hardware and software, etc., in the data center100. The determination of resources may be similar to performing an inventory of the resources in the data center100and may be stored as a table or in any other suitable form, for instance, in the memory214. The workload placement module228may also determine the current workload on the resources as well as their scheduled workloads at step410.

The controller204may also receive information pertaining to the ambient conditions around the data center100from the external sensor232at step412. In addition, the controller204may receive information pertaining to the time of day from the clock234at step414. The time of day received from the clock234may be associated with the time in which various input information is received by the controller204. The time received from the clock234may pertain to the local time or it may be based upon the GMT. In any regard, the controller204may store the information received through the input module206in the memory214. This information may include, for instance, the SHI information, the resource information, the ambient condition temperature, and the time information.

At step416, communication between the controller204and the information service222may be established. The establishing of the communication may comprise forming a link to the information service222with the communication module220. The communication module220may form a communication link with the information service222through any reasonably suitable known manner, for instance, through the Internet226.

The controller204may transmit the information described hereinabove to the information service222at step418. The transmission of the information to the information service222may include transmission of the identities of the data centers252a–252cto which the GRAMs254a–154care associated. The data centers252a–252cmay be identified through assigned serial numbers, HP addresses, or other known identification means.

Following step418, the controller204may determine whether the operational mode400is to be repeated at step420. The controller420may determine that the operational mode400is to be repeated, for instance, in response to a request by the information service222, after a predetermined number of iterations, after a predetermined amount of time has elapsed, at predefined times during a day, manually repeated by a user, etc. If it is determined that the operational mode400is to be repeated at step420, steps404–420may be repeated until an end condition is met at step420.

An end condition, as indicated at step422, may be reached when the controller204determines that the operational mode400is to be discontinued. For instance, the controller204may determine that the operational mode400is to be discontinued if none of the conditions for repeating the operational mode400exists. In addition, the controller204may be manually instructed by a user to stop performance of the operational mode400. As a further example, the operational mode400may be discontinued when power supply to the components and/or cooling system are turned off. In any regard, the end condition422may be similar to an idle mode for the operational mode400since the operational mode400may be re-initiated.

FIG. 4Billustrates an exemplary flow diagram of an operational mode450of a method for workload placement. It is to be understood that the following description of the operational mode450is but one manner of a variety of different manners in which an embodiment of the invention may be practiced. It should also be apparent to those of ordinary skill in the art that the operational mode450represents a generalized illustration and that other steps may be added or existing steps may be removed, modified or rearranged without departing from the scope of the invention.

The description of the operational mode450is made with reference to the block diagram250illustrated inFIG. 2B, and thus makes reference to the elements cited therein. It should, however, be understood that the operational mode450is not limited to the elements set forth in the block diagram250. Instead, it should be understood that the operational mode450may be practiced by a workload placement system having a different configuration than that set forth in the block diagram250.

The operational mode450may be initiated or started as indicated at step452. The operational mode450may be initiated by establishing communications between the GRAMs254a–254cand the information service222. In addition, the GRAMs254a–254cmay transmit information to the information service222, as indicated at step454. Thus, steps452and454may be similar to steps416and418, respectively, as described inFIG. 4A. As described hereinabove, the GRAMs254a–254cmay comprise the controller204and may also operate in manners similar to those described hereinabove with respect toFIG. 4A. In this regard, the GRAMs254a–254cof respective data centers252a–252cmay transmit information pertaining to SHI information, resource information, ambient condition temperatures, time information, etc. The information service222may store this information in an associated memory.

In addition, or alternatively, the operational mode450may be initiated through receipt of an application258request, as indicated at step456. Depending upon, for instance, the scope of the RSL corresponding to the application258, the application258request may be received by either or both of the broker256and the energy-aware co-allocator224. More particularly, if the request is submitted in the form of the RSL, the broker258may receive the application258. However, if the request is submitted in the form of ground RSL, the co-allocator224may receive the application258request.

In the event that the application258request is submitted to the broker256in the form of the RSL, the broker256may determine the conditions for performing the application258, at step458, which may include translating the RSL into ground RSL. The conditions for performing the application258may include, for instance, information pertaining to the resources required to perform the requested application258, the time required to perform the requested application258, whether any constraints exists on where and/or when the application258is performed, etc. As described hereinabove, these conditions may be transmitted with the application258request in the form of the RSL.

The broker256may query the information service222to obtain some or all of the information received by the information'service222from the GRAMs254a–254c. The broker256may compare the ground RSL information with the information received from the GRAMs254a–254cto determine which of the data centers252a–252ccomprise the necessary resources to perform the requested application258. The broker256may compile a list of data centers252a–252cor otherwise identify the data centers252a–252cthat have the requisite resources to perform the requested application258at step460. If the broker256determines that none of the data centers (DCs)252a–252ccomprise the requisite resources at step462, the broker256may determine whether to vary resource specifications at step464. The broker256may decide to vary the resource specifications at step464if the broker determines256that some of the resource requirements may be varied to enable the application258to be performed by one or more of the data centers252a–252c. For instance, the broker256may determine that one or more of the data centers252a–252cmay be able to perform the application258if a fewer number of processors were implemented for a longer period of time. In this instance, the broker256may vary the resource specifications at step466by changing some aspect of the specifications required by the application258, for instance, the broker256may vary the types of components for performing the requested application258.

If, however, the broker256decides not to vary the resource specifications at step464, the operational mode450may end as indicated at step468. The broker256may decide to not vary the resource specifications, for instance, if the broker256determines that none of the data centers252a–252chave sufficient resources to perform the requested application258even if the resource specifications were changed. As another example, the broker256may be unauthorized to change the resource specifications and thus may be unable to change the resource specifications. Step468may be equivalent to an idle mode for the operational mode450since the operational mode450may be re-initiated in response to receipt of another application258request, manually initiated, etc.

If there is at least one data center252a–252chaving the requisite resources to perform the requested application258, the broker256may determine which of the data centers252a–252cmay perform the requested application. The broker256may determine whether there is more than one data center (D.C.)252a–252ccapable of performing the requested application258at step470. If there is only one data center252a–252ccapable of performing the requested application258, the broker256may instruct that data center252a–252cto perform the requested application258at step472. If the broker256determines, however, that there are more than one qualifying data centers252a–252c, the broker256may transmit the identities of the qualifying data centers252a–252cto the energy aware co-allocator224at step474. Alternatively, and as described in greater detail hereinabove, the broker256may transmit the ground RSL to the co-allocator224.

The co-allocator224may query the information service222to obtain the energy efficiency coefficients (χ) of the qualifying data centers252a–252cfrom the information service222or the information, such as SHI and COP from the information service222, such that the co-allocator224may calculate the energy efficiency coefficients (χ) of the data centers252a–252c, at step476. In determining the energy efficiency coefficients (χ) of the data centers252a–252c, the COPs of the data centers252a–252cat the time the application258is to be performed may be used. Thus, if the application258is to be performed at the time the request is made, the COPs of the data centers252a–252cat the time the application258is requested may be used to determine the energy efficiency coefficients (χ) of the data centers252a–252c. Alternatively, if the application258is to be performed at a later time, the forecasted COPs of the data centers252a–252cmay be employed to determine the energy efficiency coefficients (χ). In addition, the COPs of the data centers252a–252cmay be averaged over the period of time in which the application258is configured to be performed. In one example, the energy efficiency coefficients (χ) may be based upon an average of the COPs over a period of time for each data center252a–252c.

As another example, the co-allocator224may determine the energy efficiency coefficients (χ) of the data centers252a–252cwith the anticipated workload or application258performed by those data centers252a–252c. As described hereinabove, the GRAMs254a–254cmay determine how the SHI levels would be affected with the increased workload applied to the data centers252a–252c. As the SHI levels change, so too does the energy efficiency coefficients (χ) of the data centers252a–252c. In this regard, the energy efficiency coefficients (χ) may differ between current conditions and under anticipated loading conditions. Depending upon the manner in which the co-allocator224is configured to operate, the co-allocator224may base its selection of a data center252a–252cupon either condition.

As a further example, the energy efficiency coefficients (χ) of the data centers252a–252cmay be determined with the modified COP as described hereinabove. Alternatively, the energy efficiency coefficients (χ), and more particularly, the COPs of the data centers252a–252cmay be reduced based upon RH levels around the data centers252a–252cas also described hereinabove. In addition, one or more of the data centers252a–252cmay be withdrawn from consideration for performing the requested application258if their RH levels are outside of a predetermined error range from a predetermined RH set point level, as further described hereinabove.

The co-allocator224may compare the energy efficiency coefficients (χ) of the data centers252a–252cand select the data center252a–252chaving the highest energy efficiency coefficent (χ) at step478. The highest energy efficiency coefficient (χ) may be considered as the workload placement indicator (WPI) since WPL=max(χi)∀i.

The co-allocator224may submit the workload or application258to the selected data center252a–252cas indicated at step472. The submission of the workload or application258to the selected data center252a–252cmay be performed through communications through the communication module220of the GRAM254a–254cassociated with the selected data center252a–252c.

In an alternate example, if the application258is directly submitted to the co-allocator224through the ground RSL, steps458–470may be omitted. In addition, at step474, the identities of the qualifying data centers252a–252cor the ground RSL may be directly submitted to the co-allocator224. The co-allocator224may also obtain the energy efficiency coefficients for the qualifying data centers252a–252cat step476, and steps478and472may be performed.

The operations set forth in the operational modes400and450may be contained as a utility, program, or subprogram, in any desired computer accessible medium. In addition, the operational modes400and450may be embodied by a computer program, which can exist in a variety of forms both active and inactive. For example, it can exist as software program(s) comprised of program instructions in source code, object code, executable code or other formats. Any of the above can be embodied on a computer readable medium, which include storage devices and signals, in compressed or uncompressed form.

Exemplary computer readable storage devices include conventional computer system RAM, ROM, EPROM, EEPROM, and magnetic or optical disks or tapes. Exemplary computer readable signals, whether modulated using a carrier or not, are signals that a computer system hosting or running the computer program can be configured to access, including signals downloaded through the Internet or other networks. Concrete examples of the foregoing include distribution of the programs on a CD ROM or via Internet download. In a sense, the Internet itself, as an abstract entity, is a computer readable medium. The same is true of computer networks in general. It is therefore to be understood that any electronic device capable of executing the above-described functions may perform those functions enumerated above.

FIG. 5illustrates an exemplary computer system500, according to an embodiment. The computer system500may include, for example, the controller204, the information service222, the co-allocator224, the GRAMs254a–254c, and/or the broker258. In this respect, the computer system500may be used as a platform for executing one or more of the functions described hereinabove with respect to the various components of the workload placement systems202and252.

The computer system500includes one or more controllers, such as a processor502. The processor502may be used to execute some or all of the steps described in the operational modes400and450. Commands and data from the processor502are communicated over a communication bus504. The computer system500also includes a main memory506, such as a random access memory (RAM), where the program code for, for instance, the device controller238and/or the controller of the computer system244, may be executed during runtime, and a secondary memory508. The secondary memory508includes, for example, one or more hard disk drives510and/or a removable storage drive512, representing a floppy diskette drive, a magnetic tape drive, a compact disk drive, etc., where a copy of the program code for the provisioning system may be stored.

The removable storage drive510reads from and/or writes to a removable storage unit514in a well-known manner. User input and output devices may include a keyboard516, a mouse518, and a display520. A display adaptor522may interface with the communication bus504and the display520and may receive display data from the processor502and convert the display data into display commands for the display520. In addition, the processor502may communicate over a network, e.g., the Internet, LAN, etc., through a network adaptor524.

It will be apparent to one of ordinary skill in the art that other known electronic components may be added or substituted in the computer system500. In addition, the computer system500may include a system board or blade used in a rack in a data center, a conventional “white box” server or computing device, etc. Also, one or more of the components inFIG. 5may be optional (e.g., user input devices, secondary memory, etc.).