CAS D'USAGE · DATA CENTER · IA

Refroidir une salle IA. Dix scénarios, vérifiés.

Seize baies GPU donnent 2 MW à des plaques froides. Que se passe-t-il quand une pompe lâche à l'heure la plus chaude, quand le réseau tombe, quand une baie fuit, quand les prochains GPU demandent 200 kW par baie ? Chaque question est un cas de test du modèle, simulé dans OpenModelica, avec un verdict et sa marge.

01 / LE MODÈLE ARCLANG

Le système, écrit comme un modèle Arcadia.

Avant toute physique, la salle est un modèle système en ArcLang : qui a besoin de quoi (analyse opérationnelle), les exigences, les fonctions et leurs chaînes, une architecture logique avec ses variantes, une architecture physique aux ports typés, les modes de refroidissement et un scénario de panne. Le compilateur le vérifie : unités, physique des ports, traces, budget de 10 s de la chaîne d'isolation d'une fuite (8,5 s utilisées).

TEXTE · GIT · COMPILATEUR

Un fichier contient l'exigence, l'architecture et le test qui la vérifie.

Une exigence, une variante de CDU, le nœud physique avec ses ports thermiques et ses signaux, la chaîne d'isolation d'une fuite avec son budget, et le cas de test qui simule une panne de pompe. Le verdict revient à l'exigence ; le jalon de production bloque une livraison tant qu'il échoue.

// 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)
La visionneuse de diagrammes d'ArcLang sur l'architecture physique de la salle IA : baies GPU, unité de distribution du liquide, boucle d'eau du bâtiment, aéroréfrigérants et groupe froid, air extérieur et régulation, chacun déployant son composant logique, reliés par des liens et des échanges physiques, avec l'explorateur du modèle à gauche

L'architecture physique (PAB) dans la visionneuse d'ArcLang, telle que arclang diagram -f html la dessine : nœuds, composants déployés, liens physiques (rouge) et échanges (bleu).

Architecture logique de la salle IA avec ses points de variation : baies de génération actuelle et de nouvelle génération, trois unités de distribution du liquide, deux tailles d'évacuation de la chaleur

L'architecture logique (LAB) : une ligne de produits, trois points de variation et leurs variantes.

Fonctions système de la salle IA : la boucle de température d'arrivée (mesurer, réguler, évacuer la chaleur) et la chaîne d'isolation d'une fuite (détecter, décider, fermer les vannes), reliées par des échanges fonctionnels

Les fonctions système (SAB) : la boucle d'arrivée et la chaîne d'isolation d'une fuite, chacune avec son budget de latence.

Machine à états des modes de refroidissement : refroidissement libre, assistance du groupe froid, dégradé, bridage, avec les transitions déclenchées par les fonctions système et leurs gardes

Les modes de refroidissement (MSM) : libre, assistance du groupe froid, dégradé, bridage.

Diagramme de séquence d'une panne de pompe pendant un entraînement : avec une pompe de secours, la régulation la démarre ; sans elle, le débit est divisé par deux, la régulation demande une eau plus froide et bride les GPU

Une panne de pompe pendant un entraînement (ES) : avec et sans pompe de secours.

02 / LA PHYSIQUE

La physique, de la puce à l'air extérieur.

L'architecture physique devient du Modelica : arclang export -f modelica en écrit la structure, dessinée, et les ingénieurs écrivent la physique de chaque nœud avec la bibliothèque standard Modelica.

  1. Les baies GPU.

    Seize baies de 120 kW ; 85 % de la chaleur part dans les plaques froides. Le GPU le plus chaud est en sortie du liquide, et une plaque froide conduit moins quand le débit baisse.

  2. L'unité de distribution du liquide (CDU).

    Le liquide des baies, ses pompes (deux, ou trois en N+1) et un échangeur à plaques vers l'eau du bâtiment, dont la conductance suit le débit.

  3. Eau du bâtiment, aéroréfrigérants, groupe froid.

    Les aéroréfrigérants donnent la chaleur à l'air extérieur ; un groupe froid complète les après-midi chauds. Son rendement est une part de Carnot : 4,7 à 35 °C, comme un vrai groupe à air.

  4. La régulation.

    Un PI tient l'arrivée du liquide à 32 °C, les ventilateurs d'abord, puis le groupe froid. Un second PI demande à l'ordonnanceur de brider les GPU dès que l'un dépasse 83 °C : un entraînement bridé est la défaillance à éviter.

  5. Une ligne de produits.

    Deux générations de baies (120 et 200 kW), trois CDU, deux tailles d'évacuation de la chaleur : quatre configurations, chacune vérifiée.

OMEdit affichant tout le système de refroidissement tel qu'ArcLang l'exporte : baies GPU, unité de distribution du liquide, boucle d'eau du bâtiment, aéroréfrigérants et groupe froid, air extérieur, régulation, avec leurs liaisons thermiques et leurs signaux

Le système dans OMEdit (OpenModelica 1.27.1), tel que arclang export -f modelica le dessine depuis l'architecture physique.

OMEdit affichant l'intérieur de l'unité de distribution du liquide : la masse thermique du liquide, les flux de chaleur de l'échangeur à plaques vers l'eau du bâtiment, les sorties débit et température d'arrivée, composants de la bibliothèque standard Modelica

L'intérieur de la CDU : la masse thermique du liquide et l'échangeur à plaques, composants de la bibliothèque standard Modelica reliés aux connecteurs générés.

OMEdit affichant les baies GPU : la chaleur donnée aux plaques froides et la température du GPU le plus chaud, lue par un capteur avec deux secondes de retard

Les baies : la chaleur vers les plaques froides et le GPU le plus chaud, lu par son capteur.

03 / LES SCÉNARIOS

Dix questions, dix verdicts.

Chaque ligne est un cas de test du modèle ; arclang verify le simule dans OpenModelica sur une journée de référence à 35 °C, un entraînement démarrant à 1 h. Un échec est un résultat, pas un bug : il dit ce que la conception doit changer.

ScénarioVerdictCe qu'il montre
Journée d'été de référence, trois pompes (N+1)RÉUSSIGPU à 76 °C au plus, arrivée du liquide à 36,4 °C au plus, PUE partiel 1,077.
Une pompe lâche à 14 h, deux pompesÉCHECLe débit est divisé par deux ; les GPU sont bridés à 69 % de leur puissance pour tenir 83 °C.
La même panne, trois pompesRÉUSSILa pompe de secours prend le relais.
Coupure de courant à 14 hRÉUSSIPompes sur onduleur, ventilateurs sur le groupe électrogène après 30 s, groupe froid de retour après 10 min : les aéroréfrigérants seuls tiennent les GPU à 79 °C.
Groupe électrogène en retard de 1, 3 ou 5 min, avec ou sans ballon tampon5 SUR 6L'eau du circuit tient 3 min sans aucun refroidissement ; 5 min demandent un ballon tampon d'environ 30 m³.
Une baie fuit à 14 h, éteinte 10 à 60 s après l'alarme2 SUR 4Ses vannes se ferment en 8,5 s ; éteinte en 20 s au plus, ses GPU restent sous 95 °C, à 30 s ils atteignent 102 °C. Les autres baies continuent.
Baies de 200 kW sur l'installation actuelleÉCHECLes GPU sont bridés toute la journée : 82 % la nuit (le débit des pompes manque), 73 % l'après-midi.
Baies de 200 kW, CDU à grand débit, aéroréfrigérants plus grands, groupe froid de 1,6 MWRÉUSSIAucun bridage, GPU à 77 °C, PUE partiel 1,075.
De 30 à 45 °C dehors × de 100 à 132 kW par baie9 SUR 12À 45 °C (et à 40 °C avec des baies de 132 kW), le groupe froid ne suffit plus et les GPU sont bridés.
Monte-Carlo sur les étés : 35 °C ± 3 K, de 110 à 132 kW par baieRÉUSSI60 jours chauds sur 60 sans bridage : au moins 95 % au seuil de confiance de 95 %.

04 / TROIS SCÉNARIOS DANS OMEDIT

Ce que disent les courbes.

Les mêmes modèles s'ouvrent dans OMEdit : on change un paramètre dans le navigateur de variables, on relance la simulation, on lit la courbe. La physique est un paquet Modelica que les ingénieurs écrivent et gardent ; ArcLang régénère la structure autour sans toucher une ligne.

SCÉNARIO 1coupure de courant

Combien de temps l'eau tient-elle ?

Le réseau tombe à l'heure la plus chaude et le groupe électrogène démarre avec 5 minutes de retard : plus de ventilateurs, plus de groupe froid, les 1,6 MW vont dans l'eau du circuit. Le GPU le plus chaud passe de 76 à 83 °C, et l'ordonnanceur doit brider les GPU jusqu'au retour du refroidissement. Trois minutes passent sans encombre ; cinq demandent un ballon tampon.

Courbe OMEdit de la température du GPU le plus chaud en kelvins autour de 14 h : stable à 349 K, elle monte à 356 K quand le refroidissement s'arrête cinq minutes, puis redescend quand le groupe électrogène tourne

Le GPU le plus chaud pendant la coupure, en kelvins (356 K = 83 °C), groupe électrogène en retard de 5 min.

Dimensionnement : un ballon tampon de 30 m³, ou un groupe électrogène garanti en moins de 3 minutes.

SCÉNARIO 2fuite

En combien de temps éteindre une baie qui fuit ?

Une baie fuit. La chaîne d'isolation ferme ses vannes en 8,5 s ; ses GPU n'ont alors plus de liquide et chauffent d'environ 1,25 K par seconde jusqu'à ce que l'ordonnanceur coupe la baie. Ici il attend 30 s : 102,5 °C. En 20 s au plus, ils restent sous 95 °C, et les quinze autres baies ne voient rien.

Courbe OMEdit du GPU le plus chaud de la baie qui fuit, en degrés Celsius : 76 °C jusqu'à la fermeture des vannes, puis une montée en ligne droite jusqu'à 102,5 °C quand la baie est éteinte 30 secondes après l'alarme, puis un refroidissement

Le GPU le plus chaud de la baie isolée, éteinte 30 s après l'alarme.

Une exigence pour l'ordonnanceur : éteindre une baie qui fuit dans les 20 s qui suivent l'alarme.

SCÉNARIO 3nouvelle génération

Que changer pour des baies de 200 kW ?

La même salle avec des baies de nouvelle génération. Sur l'installation actuelle, les GPU ne tournent jamais à pleine puissance : les pompes ne déplacent pas assez de liquide (82 % même la nuit) et le groupe froid manque l'après-midi (73 %). Avec une CDU à grand débit, des aéroréfrigérants plus grands et un groupe froid de 1,6 MW, les baies tournent à 100 % toute la journée.

Courbe OMEdit de la part de puissance autorisée aux GPU sur la journée : l'installation renforcée reste à 1, l'installation actuelle tombe à 0,82 au démarrage de l'entraînement et à 0,73 l'après-midi

Part de la puissance des GPU autorisée sur la journée : installation actuelle (bleu), installation renforcée (rouge, à 1).

Le renforcement, chiffré depuis le modèle : débit de la CDU +64 %, aéroréfrigérants +70 %, groupe froid de 1,6 MW.

05 / POURQUOI EN ARCLANG

L'architecture et la physique, dans un seul modèle sous git.

Traçable
Chaque verdict est rattaché à une exigence ; le jalon de production bloque une livraison tant qu'un verdict échoue ou n'est plus à jour.
Relisible
Le modèle est du texte sous git : une pull request montre quelle exigence, quel paramètre et quel verdict un changement touche.
Ouvert
OpenModelica et la bibliothèque standard Modelica ; la physique s'ouvre dans OMEdit ; l'export SysML v2 est validé par l'implémentation pilote de l'OMG.
Reproductible
Les mêmes commandes tournent en intégration continue : une modification de la conception relance les dix scénarios et dit ce qui a bougé.

Le modèle et sa physique sont ouverts : ai_liquid_cooling.arc et CoolingPhysics.mo, dans le dépôt ArcLang (dans les binaires à partir de la prochaine version).