Intelligently deployed cooling fins

A method of customizing the cooling of a first heat-producing system comprises selecting a first set of cooling fins with a deployment level. The method also comprises analyzing environmental data for an environment associated with the first set of cooling fins. The method also comprises quantifying a cooling benefit of the deployment level. The method also comprises quantifying an airflow detriment of the deployment level. The method also comprises determining that the airflow detriment outweighs the cooling benefit. The method also comprises reducing the deployment level based on the determination.

BACKGROUND

The present disclosure relates to server cooling systems, and more specifically, to cooling fins for server racks and cabinets.

Server racks and cabinets typically contain a large amount of server modules that each produce heat while running. Some servers contain one or more central processing units (sometimes referred to herein as “CPUs”), graphics processor units (sometimes referred to herein as “GPUs”), memory modules, power supply modules, and other components, all of which may produce heat. Keeping these components below a certain temperature is often required for the servers to operate effectively.

Server modules often use cooling fins in order to keep the components within the module at an appropriate temperature. Cooling fins operate by spreading the heat from one or more components (or one or more server modules) over a large surface area (i.e., the surface area of the fins). When air flows over those fins, the heat from the module components passes from the fins to the air, allowing the module components to stay cool.

SUMMARY

Some embodiments of the present disclosure can be illustrated as a method of customizing the cooling of a first heat-producing system. The method comprises selecting a first set of cooling fins with a first deployment level. The first set of cooling fins may be configured to cool a first heat-producing element. The method also comprises analyzing environmental data for an environment associated with the first set of cooling fins. The method also comprises quantifying, based on the analysis, a cooling benefit of the first deployment level. The method also comprises quantifying, based on the analysis, an airflow detriment of the first deployment level. The method also comprises determining that the airflow detriment outweighs the cooling benefit. Finally, the method comprises reducing the deployment level based on the determination, resulting in a reduced deployment level.

Some embodiments of the present disclosure can also be illustrated as a computer program product that comprises a computer readable storage medium having program instructions embodied therewith, the program instructions executable by a computer to cause the computer to perform the above-described method.

Some embodiments of the present disclosure can also be illustrated as a heat-producing system. The heat-producing system comprises a first heat-producing element that is configured to be cooled by a first set of cooling fins. The first set of cooling fins has a first deployment level. The heat-producing system also comprises a second heat-producing element that is configured to be cooled by a second set of cooling fins. The heat-producing system also comprises a cooling management system that comprises a processor and a memory in communication with the processor, the memory containing program instructions that, when executed by the processor, are configured to cause the processor to perform a method. The method comprises quantifying a cooling benefit of the first set of cooling fins on the first heat-producing element. The method also comprises quantifying an airflow detriment of the first set of cooling fins on the second heat-producing element. The method also comprises determining that the cooling benefit outweighs the airflow detriment. The method also comprises determining that an increased deployment level is implicated. Finally, the method comprises increasing the deployment level, resulting in an increased deployment level.

DETAILED DESCRIPTION

Aspects of the present disclosure relate to server cooling systems, more particular aspects relate to cooling fins for server racks and cabinets. While the present disclosure is not necessarily limited to such applications, various aspects of the disclosure may be appreciated through a discussion of various examples using this context.

A typical server module may include one or more central processing units (sometimes referred to herein as “CPUs”), graphics processor units (sometimes referred to herein as “GPUs”), memory modules, power supply modules, and other components. Each of these components produces heat under normal operation. As that heat is produced, the environment around the component tends to heat up. If these components are allowed to operate without a system in place to manage the heat that they produce, the environment may become too hot for the components to function effectively.

Some use cases require many server modules running together for long periods of time. In some instances many server modules are combined together in a larger container called a server rack. In typical server racks, each server module are enclosed in their own housing, which is then inserted into the rack with the other server modules (each in their own housing) in the rack. At certain times several server modules may be operating simultaneously, which could cause a significant amount of heat produced in the rack.

Further, some use cases combine several server racks together groups that may be organized into rows or in server cabinets. Server cabinets often take the form of rows of server racks that are at least partially separated from the surrounding environment. For example, a typical server cabinet may take the form of two rows of servers with an isle between them. The isle between the rows may be separated from the surrounding environment by a ceiling above the isle, doors on either end of the isle, and the rows of servers on either side of the isle.

Because the above use cases often include many server modules running simultaneously, effectively removing the generated heat from the server modules and, subsequently, the surrounding environment, can be a challenge. Typical use cases utilize organized air flow to constantly move cool air into the environment, over the heat generating server modules in the racks, rows, and/or cabinets, and out of the environment once the heat from the server modules has transferred to the cool air. Once the cool air passes over (or through) a server module and is heated by the module, it may be referred to as “exhaust air” or “server exhaust.”

Rows of server racks typically are oriented such that the modules of the server racks in a row attempt to direct their exhaust into one “exhaust area.” In typical use cases, two server rows may utilize the isle between them as a common exhaust area. In server cabinets, this common exhaust area may therefore be separated from the surrounding environment, which may facilitate removing the hot air from the exhaust area before it is able to mix with the cooler air that is being directed to cool the server modules.

However, even with the above organized air-cooling efforts, server modules sometimes produce enough heat that passing air over the bare module housings is sometimes insufficient to keep the components in that module (or other modules in the rack, row, or cabinet) from overheating. For this reason, server modules often attach cooling fins to their housings near heat-generating components to serve as a conduit for the heat between the components and the cool air passing over the module housing. Once the heat produced by the module components passes into the cooling fins, it can spread over a far greater surface area than the module housing alone, greatly increasing the ability of the heat to transfer from the module to the cool air passing over the module.

While there are sometimes diminishing returns, in a typical use case the cooling ability of a server module would theoretically increase as the total surface area of cooling fins attached to that module increases. However, there are practical limitations to this theoretical increase. To begin, cooling fins attached to a module housing are far less effective if the heat produced by a module component does not have an efficient route to transfer heat from the module, through the housing, and to the fins. Thus, cooling fins are most effective when they are placed on the module housing in very close proximity to the heat-producing component.

Further, because cooling fins rely on a transfer of heat to cool air surrounding the fins, cooling fins are most effective if they are surrounded by a continuous supply of cool air. For this reason, cooling fins require high amounts of airflow passing over the fins to be most effective.

Unfortunately, these two practical limitations can work together to create another challenge with cooling server modules (whether individually or grouped in racks, rows, or cabinets). While cooling fins are often necessary to transfer heat from module components to the cool air flowing over the module housing, those cooling fins also can disrupt that airflow. Because a flow of air must shift slightly to move through a set of cooling fins when the air encounters the fins, turbulence can be created and the direction of the airflow is not as “clean” after passing through the set of fins as it was before encountering the fins. In other words, whereas the air may largely be moving in the same direction and the same speed before encountering the cooling fins, the air may be moving in many different directions and different speeds (typically slower) after the leaving the set of fins. Combined with the fact that the air may be heated by the cooling fins (and thus further heat transfer to the air may be less efficient), this can make the airflow far less effective at cooling subsequent sets of fins that are associated with other components in the module, rack, or row/cabinet.

However, as discussed, cooling fins rely on an efficient heat-transfer route from the components they are cooling, and thus their position on the module housing is often restricted by the location of the heat-producing components in the module. In many situations, unfortunately, this results in components that are placed near each other to have cooling fins that are near each other. For this reason, the airflow that cools a particular set of cooling fins for one component (or module) may be required to pass through another set of cooling fins first. For the reasons discussed above, this can result in that airflow being disturbed before it gets to the particular set of cooling fins, which can in turn reduce the volume of air that passes over the cooling fins and cause the air to move over the cooling fins to move in inefficient directions.

This relationship often results in a complicated cooling tradeoff between the benefits derived by a particular component or module (or even set of modules) being sufficiently cooled by high-surface-area cooling fins and the airflow detriments that those high-surface-area cooling fins create for subsequent sets of cooling fins. In other words, while a component, module, rack, or row/cabinet benefits from having a high total surface area of cooling fins, it also can suffer airflow detriments from those cooling fins. In some instances, the cooling benefits outweigh the airflow detriments. However, in other instances, the airflow detriments may outweigh the cooling benefits, and a set of cooling fins may be doing more harm than good to the overall system as a result.

When a component, server module, or set of server modules is running at high capacity (and therefore producing a high amount of heat), the cooling benefit of high-surface-area fins often outweighs the airflow detriments that those fins cause. If, on the other hand, the component, server module, or set of server modules is running at low capacity (or is off), less heat is likely to be produced. In these circumstances, high-surface-area cooling fins may be unnecessary to cool the component, server module, or set of server modules, and therefore the cooling benefit of the high-surface-area cooling fins may be outweighed by the airflow detriments that those fins cause. In other words, the module as a whole or the overall system may end up running hotter because of the presence of cooling fins that are not resulting in a significant cooling benefit.

This cooling tradeoff can be made worse in situations in which an element that is being cooled by a set of cooling fins, sometimes referred to herein as a heat-producing element (e.g., a module component, module or set of modules) typically produces a small or moderate amount of heat, but also occasionally produces high amounts of heat in situations in which the performance of the heat-producing element (and thus the cooling of that element) is important. To effectively cool this heat-producing element in the high-heat situations, incorporating high-surface-area cooling fins in close proximity to the heat-producing element may be necessary. However, because that heat-producing element does not produce a high amount heat in typical operation, those high-surface-area cooling fins may typically net negative effect on overall system cooling because of the airflow disturbances caused by the fins.

For this reason, systems such as server cabinets with a large amount of servers that can have performance spikes above their normal operation may experience a significant amount of airflow disturbances without a corresponding cooling benefit during a large percentage of the operation of the system. In other words, those systems may, in typical operation, be cooled inefficiently due to the airflow impacts of cooling fins with surface areas that are higher than necessary for typical operational conditions.

To overcome some of the above cooling challenges, some embodiments of the present disclosure incorporate cooling fins that can be deployed (e.g., expanded) and retracted depending upon a comparison between the immediate cooling benefits of the fins and the downstream airflow detriment of the fins. For example, the cooling system for a server cabinet may incorporate several sets of fins that can be independently expanded and retracted. A cooling management system may determine, for a particular set of fins, whether to expand those fins or retract those fins based on a comparison between the amount that the fins benefit the heating elements to which the fins are connected and the amount that the airflow disturbances caused by the fins is negatively impacting other heating elements.

In some embodiments, the deployment level of a set of fins may be reduced by a cooling management system if the cooling benefit provided by the fins is outweighed by the airflow detriment caused by the fins. On the other hand, if the cooling benefit provided by the fins outweighs the airflow detriment caused by the fins, the cooling management system may maintain the current deployment level of the fins. In some embodiments, the cooling management system may also determine whether further cooling benefit would result from increasing the deployment level of the fins, and may increase (or not increase) the deployment level of the fins as a result.

In some embodiments, increasing the deployment level of a set of fins may involve expanding those fins in a direction that is perpendicular to the mounting surface (e.g., the housing of a server module). For example, the cooling fins may take the form of a telescoping fin mechanism in which a central fin member can be pushed out of a cavity by, for example, a piston, spring, or hydraulic pressure. When the central fin member is fully expanded, the cooling fin may have a large surface area. However, when the central fin member is fully inserted into the cavity (for example, by retracting the piston, relaxing the spring, or reducing the hydraulic pressure), the cooling fin may have a significantly smaller surface area.

In some embodiments, increasing the deployment level of a set of fins may involve pivoting those fins from an angle that is less perpendicular to a mounting surface to an angle that is more perpendicular to the mounting surface. For example, when a set of fins is not providing cooling benefit, the fins in the set may pivot out of the way, partially or completely clearing a bath between a cool air intake and the cooling fins that are placed after the pivoted fins. While this may not decrease the fin surface area, it may reduce the extent to which that surface area disrupts the airflow for other cooling fins in the system.

In some embodiments of the present disclosure, a cooling management system may collect environmental data to use when determining whether a deployment level for a set of cooling fins should be reduced or increased. For example, the cooling management system may have access to component-temperature data recorded by, such as, for example, a temperature probe on a central-processing-unit die or a memory module. The system may also have temperature probes attached to a module enclosure, placed throughout a rack or row/cabinet that record the temperature of the surrounding air or of the solid material (e.g., a rack chassis, a module housing) to which the probes are attached. The cooling management system may also have access to cameras that are able to sense the temperature of the air or objects at which those objects are facing (for example these cameras may incorporate a laser thermometer or infra-red imaging). Further, the cooling management system may also have access to sensors that are able to detect the air flow around a server module, within a rack, or within a row/cabinet. For example, particularly turbulent airflow near cooling fins may be identified as concerning.

In some embodiments, the cooling management system may also have access to information about current or upcoming workloads for the servers (or components therein) in a server module, rack, or row/cabinet. If the cooling management system has information that identifies the sets of fins that cool those servers (or components therein), the cooling management system may be able to respond accordingly. This response may include, for example, increasing the deployment level of the fins that cool the identified heat-producing elements, decrease the deployment level of fins that disrupt airflow near the identified heat-producing elements, or prepare to do one of these or other actions.

For example, the cooling management system may receive information from a server that identifies the percentage capacity at which its central processing unit (sometimes referred to herein as a “CPU”) is operating. From this information, the cooling management system may extrapolate the amount of heat the CPU (or the server module itself) is likely to generate in the near future, if it is not doing so already. If the cooling management system is aware of the set of fins that cools the server's CPU, the cooling management system may prepare to increase the deployment level of that set of fins. The cooling management system may also receive information from a server that informs the cooling management system that its memory is currently in the process of receiving a very large set of data from storage, and thus the cooling management system may infer that the memory of the server is likely to produce a lot of heat soon, if it is not doing so already. Further, the cooling management system may receive information from a server informing the cooling management system that the server will be starting a particular job in an amount of time (e.g., two hours). The server may further inform the cooling management system that this job will require very high performance from the server's memory and graphics processing unit, which may imply that the memory and graphics processing unit may be expected to produce a high amount of heat when the particular job starts.

As discussed, a cooling management system may receive multiple types of information from multiple sources, which that cooling management system may analyze to estimate, for a particular set of fins, whether the cooling benefit of the fins is greater than the airflow detriment. However, the process of performing this estimation may, in some embodiments, be a very complicated process. In order for the estimation to be accurate in some embodiments, the cooling management system may require access to the large amount of data discussed above, and may be required to analyze that data quickly. In these and some other embodiments, the amount of information may be high enough that some types of computer systems may not be sufficient for performing the estimation in real time.

For this reason, some embodiments of the present disclosure utilize a machine-learning system to ingest the information available to the cooling management system, analyze the information, and estimate whether the cooling benefit of a particular set of fins is greater than the airflow detriment. For example, a cooling management system may either include or have access to a neural network that is trained to accept, as an input, the temperature of server-module components (for example, as reported by the components), the temperature of various locations on a server-module housing (for example, as recorded by an infrared camera), the temperature of various locations on a server rack (for example, as recorded by a laser thermometer), the temperature of the air in various locations of a server cabinet or row of servers (for example, as reported by temperature probes), airflow in various locations of a row of servers or the surrounding environment (for example, as reported by a camera capable of detecting airflow direction), current and future workloads of a group of servers, a single server, or components of a server, and timestamps related to all of the above information. The neural network may then analyze some or all of this information and estimate, for example, the likelihood that the cooling benefit for a set of fins outweighs the airflow detriment caused by the fins.

For example, a machine-learning system may have access to historical data related to the current server, set of servers, or datacenter or other servers, sets of servers, or datacenters. The machine-learning system may have been trained to analyze patterns in that historical data and associate those patterns with a conclusion that a set of fins was deployed at an inefficient level. For example, the machine-learning system may have been presented with a dataset related to several situations in which the deployment level for a set of fins with particular similar characteristics (i.e., similar patterns in the historical data for those fins) was reduced, and the overall cooling efficiency of the associated server or sets of servers increased. This may train the machine-learning system to associate those particular similar characteristics with a likelihood that the set of fins is over deployed. When such a machine-learning system is utilized by a cooling management system in real time, the machine-learning system may attempt to identify those particular similar characteristics (among other data patterns) to identify sets of fins whose deployment levels should be decreased.

FIG.1illustrates a method100of adjusting the deployment level of a set of fins to optimize the relationship between the cooling benefit and incidental airflow detriment of the fins, in accordance with embodiments of the present disclosure. Method100may be performed by a cooling management system that is responsible for optimizing the cooling of a heat-producing system, such as a server module, a set of server modules, a server rack, a row of server racks, a server cabinet, or a group of rows or cabinets in a data center. In some embodiments the cooling management system may take the form of standard computer (e.g., a desktop or laptop computer), a server, a machine-learning system (e.g., a neural network or set of neural networks), or even the server module (or one of the server modules) of the heat-producing system that the cooling management system is managing.

In block102, the fins to be optimized are selected. In some embodiments, for example, the cooling management system may group the cooling fins of the heat-producing system based on the heat-producing elements that those cooling fins are designed to cool. For example, the cooling management system may select the cooling fins that are designed to cool a CPU of a server module, all the cooling fins that are designed to cool a server module, all the cooling fins that are designed to cool a set of server modules (for example, the heat from several server modules is redirected to shared set of fins using a water-cooling system), a subset of any of those groups (for example, half the fins that are designed to cool a CPU), or others. In some embodiments the fins of the heat-producing system may be placed into pre-determined groups, and block102may include selecting one of those groups. In other embodiments block102may include the cooling management system forming a group of fins for each iteration of block102.

After the fins to be optimized are selected in block102, the cooling management system analyzes the available environmental data in block104. This environmental data may include any combination of the environmental data discussed within this disclosure. For example, the cooling management system may analyze the component temperatures reported by the heat-producing elements (e.g., the reported temperature of one or more CPU dies), the temperatures of surfaces in the area surrounding the fins, the air temperatures in various locations within the heat-producing system, information regarding the present and future activity of heat-producing elements in the heat-producing system, airflow measurements, and others. In some embodiments this analysis may be performed by a machine-learning system (such as one or more classifier-type neural networks) that has access to historical data of the heat-producing system, other heat-producing systems, or both.

In some embodiments, the analysis performed in block104may include an estimation of the requires cooling-fin surface area necessary to effectively cool the heat-producing elements that fins selected in block102are designed to cool. In some embodiments, the analysis performed in block104may also include an estimation of the cooling requirements of other heat-producing elements that may be affected by the selected fins (or whose cooling fins may be affected by the selected fins). In some embodiments, the analysis performed in block104may also include an estimation of the downstream airflow effects of the selected fins.

In block106, the cooling management system may, based on the analysis in block104, quantify the cooling benefit of the current deployment level of the selected fins. In some embodiments, for example, this may take the form of estimating the surface area that would be necessary to cool the heat-producing elements that the selected fins are designed to cool under the current conditions. This estimation may take into account, for example, the activity level of the heat-producing elements, quality of airflow passing through the selected fins, and air temperature passing through the selected fins. This estimated surface area may then be compared with the currently deployed surface area. In some embodiments, this quantification may be weighted by several factors. For example, cooling a server module that is performing low-value tasks may not be determined to be as beneficial as cooling a server module that is performing a very valuable task. Further, cooling two processors may be determined to be more beneficial than cooling one processor. In some embodiments, the cooling management system may also consider the diminishing returns of the cooling benefit of the selected fins at their current deployment level. For example, in some instances a set of heat-producing elements may be experiencing a very high benefit from the current surface area of the selected cooling fins. However, because of diminishing returns of cooling benefit above a certain surface area, the benefit may not change significantly if the surface area of the selected fins were reduced. In this situation, the value applied to the cooling benefit may be reduced.

In block108, the cooling management system may, based on the analysis in block104, quantify the airflow detriment of the current deployment level of the selected fins. In some embodiments, for example, this may be as simple as multiplying the deployment level by a pre-determined constant (e.g., 35% deployment multiplied by 200 equals an airflow-detriment value of 70). In some embodiments, this may also consider the incidental effects on downstream airflow of the selected fins (at the current deployment level) and estimate whether downstream cooling fins would require less surface area to keep their own heat-producing elements cool (or the extent to which they would require less surface area) if those incidental effects did not exist. In some embodiments, block108may also consider the performance of the heat-producing elements associated with downstream fins. For example, an extremely high disruption to downstream airflow may have no actual detriment to downstream heat-producing elements if all downstream heat-producing elements are were all shut down for maintenance. On the other hand, a moderate disruption to downstream airflow may have a significant detriment on downstream heat-producing elements that are operating at 100% capacity and therefore requiring very efficient cooling. In some embodiments, the determination may also take into account the number of downstream heat-producing elements that are affected by the selected fins. In some embodiments, blocks108and106could occur in an order opposite of the order shown, or simultaneously.

In block110, the cooling management system determines whether the airflow detriment quantified at block108outweighs the cooling benefit quantified at block106. In some embodiments this may take the form of subtracting an airflow-detriment value (or a cooling-benefit value) from a cooling-benefit value (or an airflow-detriment value). In some embodiments, this determination may be weighted based on the importance of the workloads being performed by the heat-producing elements being cooled by the selected fins and the workloads being performed by the heat-producing elements being cooled by the fins impacted by the airflow detriment. For example, a moderate cooling benefit for a server module performing very valuable workloads may outweigh a high airflow detriment of several downstream servers that are performing low-value tasks.

If the cooling management system determines, in block110, that the airflow detriment does outweigh the cooling benefit, the deployment level of the selected fins is reduced in block112. In some embodiments, for example, the cooling management system may completely minimize the fin deployment level (e.g., completely collapse the selected fins or completely pivot the selected fins out of the incoming airflow). In other embodiments, the cooling management system may only partially reduce the fin deployment level. In some embodiments, for example, the amount by which the cooling management system reduces the fin deployment level may depend on the extent to which the airflow detriment outweighed the cooling benefit in block110(for example, greater discrepancies between detriment and benefit may encourage greater reduction of fin deployment level). In some embodiments, the cooling management system may estimate the optimum fin deployment level that would maximize the efficiency of the heat-producing system and reduce to that level. After the deployment level of the selected fins is reduced, the cooling management system may return to block104and analyze the environment surrounding the fins with the newly reduced fin deployment level and repeat method100as necessary.

If, on the other hand, the cooling management system determines, in block110, that the airflow detriment does not outweigh the cooling benefit, the cooling management system may determine whether an increase of the deployment level of the selected fins is implicated. For example, in embodiments in which the cooling benefit significantly outweighs the airflow detriment, the cooling management system may determine whether the heat-producing elements associated with the selected fins may benefit from more fin surface area.

If the cooling management system determines, in block114, that further increase to the deployment level of the selected fins is unnecessary, the cooling management system may return to block104, at which point the cooling management system may repeat the remainder of method100. If, on the other hand, the cooling management system determines that further deployment level of the selected fins may increase the cooling benefit of the heat-producing elements (for example, if the performance of the heat-producing elements would be increased), the cooling management system may increase the fin deployment level in block116. Similar to block112, block116may, in some embodiments, cause an absolute increase (in other words, the fins may be fully deployed). In other embodiments, block116may cause a partial increase in deployment level. For example, the cooling management system may attempt to determine a deployment level for the selected fins that would optimize cooling efficiency of the heat-producing system and increase the deployment level accordingly. After the deployment level of the selected fins is increased, the cooling management system may return to block104and analyze the environment surrounding the fins with the newly increased fin deployment level and repeat method100as necessary.

In some embodiments, a cooling management system may continually perform loops of method100for each group of fins in a heat-producing system. In other embodiments, however, method100may only be performed when the cooling management system detects that airflow problems or temperature problems above a certain threshold are present in the heat producing system. For example, a cooling management system may monitor the environmental data of the heat-producing system and perform method100when the cooling management system detects a temperature on a set of cooling fins above a certain pre-determined threshold (e.g., 80 degrees Celsius) or when it detects airflow below a certain speed, above a certain level of turbulence, or an area of “dead air” (i.e., air that is not moving towards the exit of the heat-producing system). In these embodiments, the cooling management system may perform iterations of method100until the condition that originally triggered method100is remedied.

To ease in understanding,FIGS.2A through2Dillustrate a heat-producing system200with a set of cooling fins202that are retracted due to detrimental downstream airflow effects. As described, heat-producing system200takes the form of a server module with at least two heat-producing elements204and206. Heat producing elements204and206may take the form of components of heat-producing system200, such as CPUs, GPUs, memory modules, power supplies, and others. Heat-producing elements204and206are each located within server module housing208, and are therefore illustrated with a dotted line, indicating that they would not actually be visible in the views presented byFIGS.2A through2D.

Heat-producing element204transfers heat to set of cooling fins202(e.g., though a pedestal attached to a server die or a heatsink attached to a heat-spreader lid), whereas heat-producing element206transfers heat to set of cooling fins210. Cooling fins202and210are illustrated as telescoping cooling fins. The top, striped portion of cooling fins202and210may be capable of retracting into the lower, shaded portion of cooling fins202and210.

Airflow vectors212represent the direction of a flow of air as the air encounters set of cooling fins202. As illustrated inFIG.2A, airflow vectors212are relatively parallel to each other and to the main dimension of cooling fins202, which may cause the airflow associated with airflow vectors212to be efficient at cooling fins202. However, cooling fins202may disrupt the airflow as the airflow passes through the cooling fins. For this reason, airflow vectors214, which represent the airflow upon exiting cooling fins202, are illustrated as not parallel to each other or the main dimension of cooling fins210. For this reason, the disruptions that cooling fins202are causing to the airflow passing through heat-producing system200may have a negative effect on that airflow's ability to effectively cool cooling fins210.

Finally, sensors216may represent a set of sensors that are configured to monitor the environmental conditions of heat-producing system200and surrounding heat-producing system200. For example, sensors216may include an airflow sensor that is configured to monitor airflow vectors212and214and an infrared camera that is configured to monitor the surface temperatures of module housing208, cooling fins202, and cooling fins210.

FIG.2Billustrates a front view of the heat-producing system200. In other words, the view presented inFIG.2Bwould be from the perspective of the airflow before it entered cooling fins202. In other words, if a fan were causing in the airflow represented by airflow vectors212,FIG.2Bmay represent the view of that fan.

FIG.2Bdepicts cooling fins202, which, from the perspective illustrated inFIG.2B, are blocking cooling fins210. Cooling fins202are composed of several sections: retractable portion218, cavity220, and cavity walls222. Cavity220may contain a hydraulic fluid that, when pressurized, causes retractable portion218to expand (as illustrated inFIGS.2A and2B). Cavity220may also comprise a piston or a spring that is capable of forcing retractable portion218. In some embodiments, cavity220may be fluid filled to increase the ability of heat to flow from hate-producing element204through cavity220and into retractable portion218. In some embodiments, cavity walls222and retractable portion218may overlap, causing heat to flow from cavity walls222to retractable portion218.

FIG.2Cillustrates the side view of heat-producing system200after a cooling management system has reduced the deployment level of cooling fins202. In other words,FIG.2Cillustrates cooling fins202after retractable portion218has been retracted into cavity220(not visible inFIG.2C). The cooling system may have reduced the deployment level of cooling fins202, for example, because it determined that the cooling benefit that cooling fins202were providing to heat-producing element204was outweighed by detriment of the airflow disruption that cooling fins202were causing for cooling fins210. The effects of this deployment reduction are apparent in airflow vectors224, which illustrate that the airflow reaching cooling fins210is significantly more direct than the airflow reaching cooling fins210inFIG.2A. In some use cases, this may result in significantly more efficient cooling of cooling fins210, which may in turn result in higher performance of heat-producing element206.

FIG.2Dillustrates the front view of the heat-producing system200after the deployment level of cooling fins202is reduced. As depicted, retractable portions218of cooling fins202have largely retracted into cavity220. Behind cooling fins202and above retractable portions218, cooling fins210are now visible. In some instances, these visible portions of cooling fins210may not have airflow that is completely unobstructed by cooling fins202. This may significantly decrease the airflow detriment of cooling fins202, and in turn increase the cooling efficiency of cooling fins210, and the overall cooling efficiency of heat-producing system200. Further, in some instances heat-producing element206(not depicted inFIG.2D) may be capable of operating at a higher capacity than before the deployment level of cooling fins202was reduced.

It is noteworthy thatFIGS.2A through2Dare intended to be an abstract representation of a heat-producing system and cooling fins. The elements ofFIGS.2A through2Dare presented for the sake of reader understanding, rather than technical precision or accuracy. For example, the dimensions of the elements ofFIGS.2A through2Dare not necessarily meant to be to scale. Further, the number or size of elements inFIGS.2A through2Dmay differ from that shown. For example, while cooling fins202and210are illustrated as containing seven cooling fins, in some use cases cooling fins202and210may each contain many more cooling fins. Further, while heat-producing system200is illustrated as containing only two heat-producing elements204and206, in some embodiments heat-producing system200may contain several more. For example, in some embodiments heat-producing system may be a section of a server rack, and each heat-producing element may be a server module. Each server module may transfer heat from the module to a liquid-cooling system that shares a common loop among all the server modules in the section. The liquid cooling system may then direct that heat to the cooling fins in the heat-producing system, including cooling fins202and210.

FIGS.3A and3Billustrate a heat-producing system300whose cooling fins may be pivoted in order to reduce or increase the deployment level of the cooling fins.FIG.3Aillustrates a front view of heat-producing system300. To ease in comprehension, this side view may depict a similar perspective to that illustrated inFIGS.2B and2D. InFIG.3A, cooling fins302are illustrated in a fully deployed configuration. Cooling fins302are attached to base304, which is depicted in a vertical orientation. Base304may, in some embodiments, take the form of a heatsink (e.g., a metal block with high thermal conductivity), a liquid-cooling reservoir (e.g., a portion of a liquid-cooling loop that delivers heated liquid from a heat-producing element to cooling fins302), a housing of a vertically oriented server module, or others.

FIG.3Billustrates a view of heat-producing system300after the deployment level of cooling fins302has been reduced by pivoting cooling fins302down. This deployment reduction has revealed cooling fins306, which were previously obstructed from view by cooling fins302. Cooling fins306may also be attached to base304, or may be attached to an analogous base behind base304.

As is evident by comparingFIG.3BtoFIG.3A, cooling fins306may have access to a significantly higher amount of unobstructed airflow after the deployment level of cooling fins302was reduced. InFIG.3A, 100% of the surface area of cooling fins306may have been receiving airflow that was disrupted by cooling fins302, which may have negatively impacted the ability of that airflow to cool cooling fins306. This may occur for reasons similar to those discussed with respect to cooling fins210inFIG.2A. However, once cooling fins302are pivoted down, a significant amount of airflow may be capable of flowing past cooling fins302without being disrupted. This may, in turn, cause the airflow that reaches much of the surface area of cooling fins306to be more efficient at cooling fins306.

The mechanism by which cooling fins302are able to pivot may not be of vital importance to the present disclosure. For example, cooling fins302may attach to base304with a hinge mechanism that allows movement of cooling fins302, but also maintains a high degree of physical contact between cooling fins302and base304, enabling heat transfer from base304to cooling fins302. In other embodiments the hinge mechanism may be part of a liquid cooling loop that may cause heat to flow from a heat-producing element to cooling fins302through base304.

As has been discussed previously, a machine-learning system, such as a neural network, may process and analyze input data related to a heat-producing system (here, a combination of temperature data, airflow data, current module activity data, and future module activity data) by recognizing patterns in the input data and comparing those patterns to patterns related to historical heat-producing systems (e.g., data centers) on which the neural network has been trained. For example, a neural network may recognize several patterns in the data expressed by an input vector for a particular set of cooling fins. The neural network may then associate some of those patterns with the patterns associated with historical sets of cooling fins that the neural network has been trained (e.g., by human-supervised training or automatic training) to quantify, for example, the cooling benefit provided by a set of cooling fins at a particular deployment level in a particular set of environmental circumstances. The neural network may also be trained, for example, to quantify the airflow detriment cause by the set of cooling fins at a particular deployment level in a particular set of environmental circumstances. In some embodiments, the neural network may also be trained to estimate an optimal deployment level for a set of fins given the cooling needs of one or more heat-producing elements being cooled by those cooling fins and the airflow needs of other cooling fins in the heat-producing system. These decisions may be passed on the environmental data for the heat-producing system that is available to the neural network.

Finally, a neural network may analyze environmental data for a heat-producing system and compare it to historical data to determine whether the heat-producing system may be cooled more effectively or efficiently if cooling fins with customizable deployment levels were added to the heat-producing system. For example, a neural network may analyze the plans for a particular data center, cabinet, or rack (or may analyze the environmental data of an already-existing particular data center, cabinet, or rack) and associate patterns in the particular data center, cabinet, or rack with patterns in historical data for historical data centers, cabinets, and racks. The neural network may identify similarities between the design of a set of particular cooling fins (and the surrounding environment) from the particular data center, cabinet, or rack and the design of a historical set of cooling fins in a historical data center, cabinet, or rack. If the particular cooling fins do not feature an adjustable deployment level, the historical cooling fins do feature an adjustable deployment level, and the historical system near the historical cooling fins is cooled more effectively, the neural network may predict that replacing the particular cooling fins with cooling fins that feature an adjustable deployment level may result in a more efficiently cooled heat-producing system.

In other instances, the neural network could compare patterns in a planned cabinet or data center to historical cabinets and data centers to determine whether cooling fins with adjustable deployment levels should be included in the cabinet or data center, and in which locations.

In some embodiments, data input into a neural network may take the form of a vector. A vector may be a one-dimension matrix (e.g., a matrix with one row and many columns) of numbers, each of which expresses data related to, for example, temperature, component usage statistics, and airflow. A vector may also be referred to herein as an “input vector,” a “feature vector,” or a “multi-dimension vector.” For example, as previously discussed, this vector may include the component temperatures reported by heat-producing elements (e.g., the reported temperature of one or more CPU dies), the temperatures of surfaces in the area surrounding cooling fins, the air temperatures in various locations within a heat-producing system, information regarding the present and future activity of heat-producing elements in the heat-producing system, airflow measurements, and others.

Such a neural network is illustrated inFIG.4. InFIG.4, neural network400may be trained to quantify cooling benefit of a set of cooling fins and airflow detriment of the set of cooling fins. The inputs of neural network400are represented by feature vectors402-1through402-k. These feature vectors may contain all available information that is regarding the environment surrounding the cooling fins, and that is otherwise consistent with the present disclosure. In some embodiments, feature vectors402-1through402-kmay be identical copies of each other. In some embodiments, more of instances of feature vectors402may be utilized. The number of feature vectors402-1through402-kmay correspond to the number of neurons in feature layer404. In other words, in some embodiments, the number of inputs402-1through402-k(i.e., the number represented by m) may equal (and thus be determined by) the number of first-layer neurons in the network. In other embodiments, neural network400may incorporate 1 or more bias neurons in the first layer, in which case the number of inputs402-1through402-kmay equal the number of first-layer neurons in the network minus the number of first-layer bias neurons.

Feature layer404contains neurons401-1through401-m. Neurons404-1through404-maccept as inputs feature vectors402-1through402-kand process the information therein. Once vectors402-1through402-kare processed, neurons404-1through404-mprovide the resulting values to the neurons in hidden layer406. These neurons,406-1through406-n, further process the information, and pass the resulting values to the neurons in hidden layer408. Similarly, neurons408-1through408-ofurther process the information and pass it to neurons410-1through410-p. Neurons410-1thorough410-pprocess the data and deliver it to the output layer of the neural network, which, as illustrated, contains neuron412. Neuron412may be trained to calculate two values—value414and value416. Value414may represent a percentage indication of a cooling benefit to a heat-producing element at a set of cooling fins' deployment level. Value416, on the other hand, may represent the opposite of that percentage.

In some embodiments, neural network400may have more than 5 layers of neurons (as presented) or fewer than 5 layers. These 5 layers may each comprise the same amount of neurons as any other layer, more neurons than any other layer, fewer neurons than any other layer, or more neurons than some layers and fewer neurons than other layers. Finally, in some embodiments, the output of output layer412may be used to determine whether to increase the deployment level of a set of cooling fins, whether to reduce the deployment level of a set of cooling fins, or whether to install more cooling fins with a customizable deployment level.

FIG.5depicts the representative major components of an example Computer System501that may be used in accordance with embodiments of the present disclosure. The particular components depicted are presented for the purpose of example only and are not necessarily the only such variations. The Computer System501may include a Processor510, Memory520, an Input/Output Interface (also referred to herein as I/O or I/O Interface)530, and a Main Bus540. The Main Bus540may provide communication pathways for the other components of the Computer System501. In some embodiments, the Main Bus540may connect to other components such as a specialized digital signal processor (not depicted).

The Processor510of the Computer System501may include one or more CPUs512. The Processor510may additionally include one or more memory buffers or caches (not depicted) that provide temporary storage of instructions and data for the CPU512. The CPU512may perform instructions on input provided from the caches or from the Memory520and output the result to caches or the Memory520. The CPU512may include one or more circuits configured to perform one or methods consistent with embodiments of the present disclosure. In some embodiments, the Computer System501may contain multiple Processors510typical of a relatively large system. In other embodiments, however, the Computer System501may be a single processor with a singular CPU512.

The Memory520of the Computer System501may include a Memory Controller522and one or more memory modules for temporarily or permanently storing data (not depicted). In some embodiments, the Memory520may include a random-access semiconductor memory, storage device, or storage medium (either volatile or non-volatile) for storing data and programs. The Memory Controller522may communicate with the Processor510, facilitating storage and retrieval of information in the memory modules. The Memory Controller522may communicate with the I/O Interface530, facilitating storage and retrieval of input or output in the memory modules. In some embodiments, the memory modules may be dual in-line memory modules.

The I/O Interface530may include an I/O Bus550, a Terminal Interface552, a Storage Interface554, an I/O Device Interface556, and a Network Interface558. The I/O Interface530may connect the Main Bus540to the I/O Bus550. The I/O Interface530may direct instructions and data from the Processor510and Memory520to the various interfaces of the I/O Bus550. The I/O Interface530may also direct instructions and data from the various interfaces of the I/O Bus550to the Processor510and Memory520. The various interfaces may include the Terminal Interface552, the Storage Interface554, the I/O Device Interface556, and the Network Interface558. In some embodiments, the various interfaces may include a subset of the aforementioned interfaces (e.g., an embedded computer system in an industrial application may not include the Terminal Interface552and the Storage Interface554).

Logic modules throughout the Computer System501—including but not limited to the Memory520, the Processor510, and the I/O Interface530—may communicate failures and changes to one or more components to a hypervisor or operating system (not depicted). The hypervisor or the operating system may allocate the various resources available in the Computer System501and track the location of data in Memory520and of processes assigned to various CPUs512. In embodiments that combine or rearrange elements, aspects of the logic modules' capabilities may be combined or redistributed. These variations would be apparent to one skilled in the art.