USE CASE · DATA CENTER · AI

Cooling an AI hall. Ten scenarios, verified.

Sixteen GPU racks give 2 MW to cold plates. What happens when a pump stops at the hottest hour, when the grid goes down, when a rack leaks, when the next GPUs need 200 kW a rack? Each question is a test case of the model, simulated in OpenModelica, with a verdict and its margin.

01 / THE ARCLANG MODEL

The system, written as an Arcadia model.

Before any physics, the hall is a systems model in ArcLang: who needs what (operational analysis), the requirements, the functions and their chains, a logical architecture with its variants, a physical architecture with typed ports, the cooling modes and a failure scenario. The compiler checks it: units, port physics, traces, the 10 s budget of the leak isolation chain (8.5 s used).

TEXT · GIT · COMPILER

One file holds the requirement, the architecture and the test that verifies it.

A requirement, a CDU variant, the physical node with its thermal and signal ports, the leak isolation chain with its budget, and the test case that simulates a pump failure. The verdict comes back to the requirement; the production gate blocks a release while it fails.

// examples/datacenter/ai-liquid-cooling/ai_liquid_cooling.arc (abridged)
requirement "Pump redundancy" {
    id: "REQ-N1"
    description: "A CDU pump failing at full load leaves every GPU
                  cold plate at or below 85 °C, without throttling"
}
component "CDU, three pumps (N+1)" { id: "LC-CDU-N1" variant: true
    pump_count: 3 pump_flow: 22 kg/s hx_conductance: 450 kW/K }
node "Coolant distribution unit" {
    id: "PN-CDU"
    coolant_capacity: 8 MJ/K
    port "secondary" { physics: thermal flange: b }
    port out "coolant_flow" { is: "Signal" }
}
functional_chain "Leak isolation" {
    involves: ["SF-LEAK-DETECT", "SF-LEAK-DECIDE", "SF-LEAK-CLOSE"]
    latency_budget: 10 s
}
test_case "Pump failure at full load, two pumps" {
    verifies: ["REQ-N1"]
    simulate: { model: "CoolingPhysics.PumpFailureTwoPumps"
                configuration: "CFG-N" stop_time: 24 h }
    expects: ["max(\"PN-RACKS\".gpu_temperature) <= 85 °C",
              "min(\"PN-RACKS\".cap) >= 0.99"]
}
$ arclang verify ai_liquid_cooling.arc --test TC-PUMP-N
✗ TC-PUMP-N "Pump failure at full load, two pumps": FAIL
    FAIL min(gpuRacks.cap) = 0.6869   (short by 0.3031)
The ArcLang diagram viewer on the physical architecture of the AI hall: the GPU racks, the coolant distribution unit, the facility water loop, the dry coolers and chiller, the outdoor air and the cooling controller, each deploying its logical component, joined by physical links and physical exchanges, with the model explorer on the left

The physical architecture (PAB) in the ArcLang viewer, as arclang diagram -f html draws it: nodes, the components they deploy, physical links (red) and exchanges (blue).

Logical architecture of the AI hall with its variation points: GPU racks of the current and the next generation, three coolant distribution units, two sizes of heat rejection

The logical architecture (LAB): a product line, three variation points and their variants.

System functions of the AI hall: the supply temperature loop (measure, control, reject heat) and the leak isolation chain (detect, decide, close the valves), joined by functional exchanges

The system functions (SAB): the supply loop and the leak isolation chain, each with its latency budget.

State machine of the cooling modes: free cooling, chiller assist, degraded, power capping, with the transitions triggered by the system functions and their guards

The cooling modes (MSM): free cooling, chiller assist, degraded, power capping.

Sequence diagram of a pump failure during a training run: with a spare pump the controller starts it; without one, the flow halves, the controller asks for colder facility water and caps the GPUs

A pump failure during a training run (ES): with and without a spare pump.

02 / THE PHYSICS

The physics, from the chip to the outside air.

The physical architecture becomes Modelica: arclang export -f modelica writes its structure, drawn, and the engineers write the physics of each node with the Modelica Standard Library.

  1. GPU racks.

    Sixteen racks of 120 kW; 85 % of the heat goes to the cold plates. The hottest GPU sits at the return end of the coolant, and a cold plate conducts less when the flow falls.

  2. Coolant distribution unit (CDU).

    The racks' coolant, its pumps (two, or three for N+1) and a plate exchanger to the facility water, whose conductance follows the flow.

  3. Facility water, dry coolers, chiller.

    The dry coolers give the heat to the outside air; a chiller trims what they cannot on hot afternoons. Its efficiency is a share of Carnot: 4.7 at 35 °C, as a real air-cooled chiller.

  4. Control.

    A PI holds the coolant supply at 32 °C, fans first, then chiller. A second PI asks the scheduler to cap the GPUs' power when one passes 83 °C: a throttled training run is the failure to avoid.

  5. A product line.

    Two generations of racks (120 and 200 kW), three CDUs, two sizes of heat rejection: four configurations, each verified on its own.

OMEdit showing the whole cooling system as ArcLang exports it: GPU racks, coolant distribution unit, facility water loop, dry coolers and chiller, outdoor air, and the cooling controller, with their thermal and signal connections

The system in OMEdit (OpenModelica 1.27.1), as arclang export -f modelica draws it from the physical architecture.

OMEdit showing the inside of the coolant distribution unit: the coolant's thermal mass, the heat flows of the plate exchanger to the facility water, the flow and supply temperature outputs, all Modelica Standard Library components

Inside the CDU: the coolant's thermal mass and the plate exchanger, Modelica Standard Library components wired to the generated connectors.

OMEdit showing the GPU racks: the heat given to the cold plates, and the hottest GPU's temperature read by a sensor with a two second lag

The racks: the heat to the cold plates, and the hottest GPU read by its sensor.

03 / THE SCENARIOS

Ten questions, ten verdicts.

Each line is a test case of the model; arclang verify runs it in OpenModelica on a 35 °C design day, a training job starting at 1 h. A failure is a finding, not a bug: it says what the design must change.

ScenarioVerdictWhat it shows
Design summer day, three pumps (N+1)PASSGPUs at 76 °C at most, coolant supply at most 36.4 °C, partial PUE 1.077.
A pump stops at 14 h, two pumpsFAILThe flow halves; the GPUs are capped to 69 % of their power to hold 83 °C.
The same failure, three pumpsPASSThe spare pump takes over.
Grid outage at 14 hPASSPumps on the UPS, fans on the generator after 30 s, chiller back after 10 min: the dry coolers alone hold the GPUs at 79 °C.
The generator 1, 3 or 5 min late, with or without a buffer tank5 OF 6The loop's water rides through 3 min with no cooling at all; 5 min needs a buffer tank of about 30 m³.
A rack leaks at 14 h, powered off 10 to 60 s after the alarm2 OF 4Its valves close in 8.5 s; off within 20 s its GPUs stay under 95 °C, at 30 s they reach 102 °C. The other racks train on.
Racks of 200 kW on the current plantFAILThe GPUs are throttled all day: 82 % at night (the pumps' flow is short), 73 % in the afternoon.
Racks of 200 kW with a high flow CDU, larger coolers, a 1.6 MW chillerPASSNo throttling, GPUs at 77 °C, partial PUE 1.075.
30 to 45 °C outside × 100 to 132 kW per rack9 OF 12At 45 °C (and at 40 °C with 132 kW racks) the chiller is short and the GPUs throttle.
Monte Carlo over the summers: 35 °C ± 3 K, 110 to 132 kW per rackPASS60 hot days out of 60 without throttling: at least 95 % at 95 % confidence.

04 / THREE SCENARIOS IN OMEDIT

What the curves say.

The same models open in OMEdit: change a parameter in the variables browser, simulate again, read the curve. The physics is a Modelica package the engineers write and keep; ArcLang regenerates the structure around it without touching a line.

SCENARIO 1grid outage

How long does the water hold?

The grid fails at the hottest hour and the generator starts 5 minutes late: no fans, no chiller, the 1.6 MW go into the water of the loop. The hottest GPU climbs from 76 to 83 °C, and the scheduler has to cap the GPUs until the cooling is back. Three minutes ride through; five need a buffer tank.

OMEdit plot of the hottest GPU temperature in kelvin around 14 h: flat at 349 K, rising to 356 K when the cooling stops for five minutes, then back down once the generator runs

The hottest GPU during the outage, in kelvin (356 K = 83 °C), generator 5 min late.

Sizing: a 30 m³ buffer tank, or a generator proven to start within 3 minutes.

SCENARIO 2leak

How fast must a leaking rack go dark?

A rack leaks. The leak isolation chain closes its valves in 8.5 s; from then on its GPUs have no coolant and heat at about 1.25 K per second until the scheduler powers the rack off. Here it waits 30 s: 102.5 °C. Within 20 s they stay under 95 °C, and the fifteen other racks never notice.

OMEdit plot of the hottest GPU of the leaking rack in degrees Celsius: 76 °C until the valves close, rising in a straight line to 102.5 °C when the rack is powered off 30 seconds after the alarm, then cooling

The hottest GPU of the isolated rack, powered off 30 s after the alarm.

A requirement for the scheduler: power a leaking rack off within 20 s of the alarm.

SCENARIO 3next generation

What must change for 200 kW racks?

The same hall with next-generation racks. On the current plant the GPUs never run at full power: the pumps cannot move enough coolant (82 % even at night) and the chiller is short in the afternoon (73 %). With a high flow CDU, larger dry coolers and a 1.6 MW chiller, the racks run at 100 % all day.

OMEdit plot of the share of power the GPUs are allowed over the day: the upgraded plant stays at 1, the current plant drops to 0.82 when the job starts and to 0.73 in the afternoon

Share of the GPUs' power allowed over the day: current plant (blue), upgraded plant (red, at 1).

The upgrade, priced from the model: CDU flow +64 %, coolers +70 %, chiller 1.6 MW.

05 / WHY IN ARCLANG

The architecture and the physics, in one model under git.

Traceable
Every verdict is attached to a requirement; the production gate blocks a release while one fails or is stale.
Reviewable
The model is text in git: a pull request shows which requirement, which parameter and which verdict a change touches.
Open
OpenModelica and the Modelica Standard Library; the physics opens in OMEdit; SysML v2 export validated by the OMG pilot implementation.
Repeatable
The same commands run in CI: a design change re-runs the ten scenarios and says what moved.

The model and its physics are open: ai_liquid_cooling.arc and CoolingPhysics.mo, in the ArcLang repository (in the release binaries from the next version).