LHCb Data Center Cooling Challenge

A reinforcement learning competition where I won a real piece of CERN hardware

#Python#Machine Learning

During the OpenLab Summer Student Programme at CERN, I took part in theLHCb Data Center Cooling Challenge, where we were tasked with optimizing the cooling of a digital twin of the LHCb Data Center. The goal was to reduce energy consumption while maintaining optimal operating conditions for the servers. We were provided with a simulator of the data center's cooling system, which allows us to train and test our control policies in a realistic environment.

The Setup

The simulator models five data-center modules. At each one-minute step, it provides per-module measurements including:

  • Rack inlet, return, and supply temperatures (°C).
  • IT load and cooling power (kW), plus PUE.
  • Cooling mode (dry or adiabatic) and aggregate CPU utilization.

It also provides shared weather measurements: outdoor temperature, outdoor humidity, and wet-bulb temperature.

For each module, we can control:

  • Outside-fan speed (%).
  • Inside/supply-fan speed (%).
  • Water-pump setting (%), which is forced off in dry mode.

The objective is to minimize total IT and cooling power while keeping rack-inlet temperatures at or below 27 °C; water use is penalized as well.

dispatch

My Approach

I developed a control policy using Model Predictive Control (MPC):

We forecast the next few minutes, use learned cooling-power models to compare feasible fan and water settings, and commit only the first actions before replanning as new observations arrive. The existing simulator supplies the system's realistic dynamics and constraints, so the controller can be developed and evaluated safely against the same conditions it will face at runtime.

Receding Horizon Control

MPC predicts the next 12 actions to take based on the current state of the system. The first 4 actions are applied to the system, and the process repeats. This is known as receding horizon control.

mpc-receding-horizon
Each color represents a MPC solve, where the first 4 actions are applied to the system (colored solid lines), and the next 8 actions are predictions (colored dashed lines).

Learning the System Dynamics

I also experimented with improving upon this by using reinforcement learning to learn a better model of the system dynamics and constraints, but I found that the existing simulator was already quite accurate and that the MPC approach was sufficient to achieve good performance and win the challenge.

The Prize

I won the challenge and received a CPU that was used in the third run of the LHCb experiment at CERN in the data center which we were optimizing the cooling for.

CPU
You can also find this project here:

Comments

Feel free to leave your opinion or questions in the comment section below.