RE: Are you cooling the air?
Hi smellalot,
Firstly, let me state that I have no hard data about the cooling of a rMBP, something that I'd love to have, by the way, but I don't have the equipment to accomplish such thermodynamic experiments.
Given that caveat, let me begin by asking, "Just what are you cooling with your water cooler?"
The reason I ask is because from my own crude experiments with attempting to cool the outside case of the rMBP led me to the following conclusions (equally suspect because of the crudity of my experiments):
(1) As a first approximation, the algorithm controlling the fan speeds, and consequently the rate of airflow through the rMBP, is roughly controlled by the temperature sensors inside the machine. The higher the internal temperatures, the faster the fans spin and the greater the air flow, and therefore the faster the rate of heat removal which tends to lower the internal temperatures. Conversely, at lower measured temperatures, the fans slow their spin rates in order to quiet their operation which necessarily decreases the rate of heat removal via the lower airflow which tends to increase the internal temperatures. In other words, there is a negative feedback system established that tends to keep the internal temperatures from varying too far even while the computation loads vary over a much greater range.
(2) Newton's Law of Cooling applies to the heat transport of a rMBP, that is, the rate of heat transfer across a boundary is directly proportional to the temperature difference across said boundary.
(3) The majority, and I'd even say vast majority, of the heat removed from a rMBP is accomplished by the outgoing airflow passing through the rMBP. This is supported by both (1) and (2). Item (1) increases the airflow through the rMBP as the heat load goes up, and item (2) means that as the temperatures rise then the rate of heat transferring from the heat pipe to the airflow also increases.
(4) Given (1), (2), and (3), what you really need to cool is the incoming air, not the bottom case.
So, what evidence do I have for my contentions? Well, in my own crude experiments, I found that even when I cooled the case by both metal-to-metal conduction and drastically increased airflow across the case when the rMBP was operating at medium loads at around 80-85C, this case cooling did not lower the operating temperatures at all, they stayed at 80-85C. To a first approximation, what this did accomplished, in my experiments, is for the fans to slightly reduce their speeds thereby reducing the rate of airflow through the rMBP thereby reducing the heat removed by the slower airflow. I found remarkably small declines of the fan speeds, supporting item (3) that cooling through the case is minor compared with cooling via the airflow. In other words, the algorithm controlling the fan speeds worked to keep the temperature at roughly 80-85C: if I increased the heat removal through the case by external adjunctive cooling, the rMBP compensated by decreasing the heat removal via the airflow through the case. And cooling via the case is a minor perturbation on cooling via the airflow.
Only when the amount of heat removed by the airflow passing through the case (i.e., when the fans are spinning at their maximum spin rates) is at its maximum, does heat removal through the case become important, and only under these conditions will it potentially lower the internal temperatures. (Once again, for any scenario where the rMBP's heat removal by airflow is not maxed out, then the algorithm for the fan speeds works against lowering the internal temperatures.) Why do I state only "potentially lower the internal temperatures"? Well, when the rMBP is at maximum load and its internal CPU temperatures approach 105C and the fans are at their maximum spin rates and thus the maximum amount of heat is being removed via the airflow, then the rMBP will throttle the CPUs's frequencies lowering the heat generated by the CPUs and keeping the temperature from going above 105C. Therefore, what heat removal by increasing heat conduction through the case accomplishes is that it allows the rMBP to run its CPUs for a longer time at their maximum frequency before it throttles them. In other words, to a first approximation, you won't get lower temperatures, rather you will get longer times at full CPU frequencies.
What occurs when the rMBP is at idle? In this scenario the CPUs do not produce enough heat to keep the temperatures from falling when the fans are running at their slowest speeds (a little less than 2000 RPM). In other words, the fans at their lowest speeds and thus lowest airflow rates are capable of removing heat faster than it can be generated by the CPUs at idle, thus the internal temperatures drop until the rate of heat removal declines because of Newton's Law of Cooling (lower temperature differences means lower rates of heat transfer) and a new equilibrium is established at lower temperatures, say 35-45C depending upon the ambient air temperature and humidity level, but necessarily still above the temperature of the incoming air, say at 25C.
Returning to (1) and (3), cooling the case actually has little effect on the rate of heat removal from the rMBP. For instance, cooling the bottom case is actually inefficient since the batteries are glued to the bottom of the case and they act to insulate the cooler case from the internal heat pipe of the rMBP thereby decreasing the rate of heat flow through the case bottom.
If my contentions (1) and (3) are approximately correct, then by (2) the best way of actually increasing the rate of heat removal from a rMBP is by lowering the temperature of the inflowing air! [Note that I am assuming also that we are not actually condensing moisture out of the air by cooling it. This is the case as long as the air is not at 100% humidity. If the incoming air is at 100% humidity, then cooling it will also condense water from it which lowers the air's heat capacity which lowers the efficiency of cooling since the air with less water vapor can hold less heat. So cooling incoming air will still be the best way of cooling the rMBP, but it will be less efficient if the incoming air is at 100% humidity.] And what you hope to accomplish by lowering the incoming air temperature is for the fans to spin slower than they normally would at medium work loads as well as to delay the time before CPU frequency throttling at maximum work loads: very little actual lowering of temperatures is possible because of the feedback algorithm for fan speeds at medium work loads and the CPU throttling at high work loads. So I'm back to my original query, "Are you cooling the incoming air with your water cooler?"
...just my two cents of crudely empirically-backed analysis of the heat removal from rMBPs...the value of which, of course, is exactly what you paid for it...
Regards,
Switon
P.S. I really am quite interested in more accurately controlled thermodynamic experiments, so if anyone has the equipment to carry out said experiments I would be grateful. (And if you want help in designing those experiments, I'd be more than happy to help.) Experiments that are capable of accurately measuring the all of the temperatures, humidity, and airflow rates would actually be able to prove or disprove my above contentions. Careful control of the CPU and GPU usages is also required for these experiments.
Edit: Of course, cooling the air also has other advantages. For instance, turning on the air conditioner in the room not only better cools the rMBP primarily lowering the stress on the fans (slower spin speeds = less fan wear-and-tear), but also makes your life more pleasant in some environments. Cooling the air also eliminates the need for intrusive manipulation of the rMBP internals. Not to say that if you don't mind modifying your rMBP, then by physically cooling the heat pipe through conduction using either a water cooler or peltier cooler attached directly to the heat pipe would provide the best possible cooling --- but in this case one would have to ask why one is using a rMBP for computations that perhaps would be better served on a full sized workstation or server?