An Ocean Model Ported by a Large Language Model: Experience and Lessons from FESOM2 (Fortran to C to C++/Kokkos)

Cet article démontre qu'un modèle de langage de grande taille agentique, guidé par des experts du domaine à travers un processus de traduction en deux étapes strict et une validation rigoureuse, a porté avec succès le modèle océanique FESOM2 de 74 000 lignes en Fortran vers le C++/Kokkos tout en préservant sa physique et en réalisant des gains de performance significatifs sur GPU.

Auteurs originaux : Nikolay V. Koldunov, Suvarchal K. Cheedela, Sergey Danilov, Dmitry Sidorenko, Sebastian Beyer, Thomas Jung

Publié 2026-06-11
📖 6 min de lecture🧠 Analyse approfondie

Auteurs originaux : Nikolay V. Koldunov, Suvarchal K. Cheedela, Sergey Danilov, Dmitry Sidorenko, Sebastian Beyer, Thomas Jung

Article original sous licence CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Ceci est une explication générée par l'IA de l'article ci-dessous. Elle n'a pas été rédigée ni approuvée par les auteurs. Pour une précision technique, consultez l'article original. Lire la clause de non-responsabilité complète

Imaginez que vous possédez une recette massive, incroyablement complexe et hautement réussie pour un plat 5 étoiles. Cette recette a été écrite dans une langue très ancienne et spécialisée (appelons-la « Fortran ») que seuls quelques maîtres chefs comprennent. Elle a été testée pendant des décennies, et tout le monde sait qu'elle fonctionne parfaitement. Cependant, la cuisine change : les nouveaux fours (les supercalculateurs modernes avec des GPU puissants) ne parlent plus le « Fortran ». Ils parlent le « C++ ».

Le problème ? Traduire cette recette de 74 000 lignes de l'ancien langage vers le nouveau est comme essayer de traduire un roman tout en reconstruisant simultanément la maison dans laquelle il est écrit. Si vous faites ne serait-ce qu'une seule petite erreur de calcul, le plat pourrait se transformer en poison, ou la cuisine pourrait prendre feu. Habituellement, cela prend des années à une équipe d'experts humains.

Cet article décrit une nouvelle expérience : Un algorithme d'IA (un grand modèle de langage) peut-il effectuer ce travail de traduction pour nous, et peut-il le faire sans gâcher la recette ?

Voici comment ils ont procédé, en utilisant des analogies simples :

1. La stratégie de traduction en deux étapes

Au lieu de demander à l'IA de passer directement de l'« Ancien Langage » au « Nouveau Langage à Haute Vitesse », l'équipe l'a forcée à faire un détour.

  • Étape 1 : La « Copie Propre » (Fortran → C) : D'abord, ils ont demandé à l'IA de traduire la recette dans un langage intermédiaire plus simple appelé « C ».

    • La Règle : Il était strictement interdit à l'IA d'« améliorer » la recette. Elle ne pouvait pas remplacer les ingrédients pour les rendre « meilleurs » ou modifier les temps de cuisson pour être plus efficace. Elle devait faire une copie littérale, mot pour mot.
    • Le But : S'assurer que la saveur (la physique) restait exactement la même. Ils ont fait tester cette nouvelle version en « C » pendant cinq années de temps simulé. Elle avait un goût identique à la version « Fortran » originale, avec des différences si infimes qu'elles étaient comparables à un grain de sel dans un océan.
  • Étape 2 : La « Mise à niveau de vitesse » (C → C++/Kokkos) : Une fois la version « C » prouvée parfaite, ils ont demandé à l'IA de traduire celle-ci dans le langage moderne « C++ », qui est conçu pour fonctionner sur des fours à haute vitesse (GPU).

    • Le Filet de Sécurité : Puisque la version « C » était déjà parfaite, l'IA pouvait maintenant se concentrer sur la vitesse. Ils ont vérifié chaque étape du processus de cuisson pour s'assurer que la nouvelle version « C++ » produisait exactement les mêmes nombres que la version « C » sur des ordinateurs standards.

2. Le système de vérification par « Jumeaux »

Comment savaient-ils que l'IA n'avait pas glissé une erreur ? Ils ont utilisé un système de « Jumeaux ».

Imaginez que vous avez un maître chef (le code original) et un apprenti chef (le nouveau code). Chaque fois que l'apprenti coupe un oignon, il doit montrer immédiatement le résultat au maître chef.

  • Le Test du « Jumeau » : Pour chaque étape de la cuisson, l'ordinateur exécute le nouveau code et l'ancien côte à côte. Si les nombres diffèrent, même d'une fraction infime, le système hurle « Stop ! » et dit à l'IA : « Tu as raté cette étape spécifique. »
  • Le Piège de l'« Halo Stagnant » : Une erreur courante commise par l'IA a été d'oublier de mettre à jour les bords des données (comme oublier de laver la planche à découper entre deux coupes). L'équipe a construit une « sonde » spéciale qui vérifie spécifiquement les bords pour attraper ces erreurs invisibles.

3. Les Résultats : Vitesse et Précision

L'expérience est un succès. Voici ce qui s'est passé :

  • Précision : Le nouveau code est scientifiquement fiable. Sur cinq années de simulation, les températures et la salinité de l'océan de la nouvelle version étaient presque indiscernables de l'original. Sur les nouveaux GPU ultra-rapides, les résultats étaient « statistiquement proches » — ce qui signifie que les infimes différences étaient simplement dues à la manière dont l'ordinateur effectue les calculs, et non parce que la physique était erronée.
  • Vitesse : Le nouveau code fonctionne sur des GPU modernes (comme le NVIDIA A100) et est 1,6 à 3,7 fois plus rapide que l'ancien code tournant sur des CPU standards.
  • Portabilité : Le meilleur aspect ? Ils ont écrit le code une seule fois, et il fonctionne sur différents types de supercalculateurs (NVIDIA, AMD et autres) sans avoir besoin d'être réécrit. C'est comme un adaptateur universel qui s'adapte à n'importe quelle prise.

4. Ce qui a mal tourné (et comment ils l'ont réparé)

L'IA n'est pas parfaite. Elle a essayé d'« aider » en simplifiant les choses, ce qui a failli briser la physique.

  • Le Piège de la « Simplification » : L'IA voulait arrondir les nombres ou changer une valeur constante parce que cela paraissait plus « propre ». L'équipe a dû l'interdire strictement. Ils lui ont dit : « Si l'original dit 0,1, tu écris 0,1. Ne devine pas. »
  • Le Piège du « Commentaire » : L'IA lisait parfois un commentaire dans le code qui disait « La valeur est 5 » alors que le code réel disait « La valeur est 10 ». L'IA faisait confiance au commentaire. L'équipe a corrigé cela en forçant l'IA à vérifier la ligne de code réelle à chaque fois.

L'essentiel

Cet article prouve qu'avec les bonnes règles et une « échelle de sécurité » de vérifications strictes, une IA peut traduire un modèle scientifique massif et complexe d'un ancien langage vers un nouveau, ultra-rapide, en quelques semaines.

Elle n'a pas seulement copié le code ; elle a préservé la science. Le modèle océanique se comporte toujours exactement comme le véritable océan, mais il tourne désormais assez vite pour nous aider à prédire le futur climat sur les ordinateurs les plus puissants du monde. La clé n'était pas seulement l'IA ; c'était la discipline des humains qui la guidaient : des règles strictes, une traduction littérale et une vérification constante.

Noyé(e) sous les articles dans votre domaine ?

Recevez des digests quotidiens des articles les plus récents correspondant à vos mots-clés de recherche — avec des résumés techniques, dans votre langue.

Essayer Digest →