Vue normale

Reçu aujourd’hui — 12 mai 2026 LinuxFr.org : les dépêches

Des nouvelles de Fortran n°8 - mai 2026

12 mai 2026 à 07:37

Heureusement que le silicium ne fond qu'à 1414°C car GNU Fortran 16.1 va faciliter la vie de ceux qui l'aiment chaud. Ainsi va la technique, difficile pour le modélisateur de ne pas être fasciné par la puissance de sa divine machine, ce « Dieu qui met de l’ordre dans le monde » (paraît-il - NdM: référence). D'autres actualités tout aussi brûlantes seront bien sûr abordées dans ce huitième numéro Des nouvelles de Fortran. Et en conclusion, on essaiera d'entrevoir ce que ça peut signifier de calculer avec 23536 cartes NVIDIA Grace Hopper GH200.

    Sommaire


    Que diriez-vous d’ « ordinateur » ?
    Grace Hopper
    Coarrays
    ICON Team Wins Gordon Bell Prize for Climate Modelling


    Sur le front des compilateurs

    Compilateurs opérationnels

    GFortran échauffe les cœurs

    FORTRAN avait 22 ans quand Donna Summer chantait « Hot Stuff » (1979). GFortran a aujourd'hui quasiment le même âge, ayant été intégré dans GCC 4.0.0 en avril 2005 à la place de l'ancien compilateur g77. Mais faire tourner un cœur quand on aurait pu en faire tourner huit, c'était frustrant. Voilà qui est réparé, car l'équipe de développement a travaillé avec ardeur pour que GFortran gère enfin de façon native les coarrays (sur les machines à un nœud, donc nos PC). Jusqu'alors, il fallait installer OpenCoarrays, une surcouche du compilateur et utiliser les commandes caf et cafrun.

    Ah oui, c'est quoi les coarrays ? D'une façon générique, ça désigne les paradigmes de calcul parallèle introduits par Fortran 2008 (les coarrays proprement dits) et Fortran 2018 (collectives, teams, etc.). C'est un parallélisme de type SPMD (single program, multiple data). Ça mériterait peut-être un petit journal, un de ces jours.

    La collection de compilateurs GCC 16.1 est sortie officiellement le 30 avril 2026. La liste des améliorations apportées aux différentes parties de GCC 16, et en particulier au compilateur GFortran, à OpenMP (The OpenMP API specification for parallel programming) et OpenACC (Open ACCelerators), est ici. La version 16.1.1 du 1er mai 2026 est déjà arrivée dans Fedora 44. Chapeau bas !

    Flang

    Flang, actuellement disponible en version 22.1 depuis le 24 février 2026, a également introduit une prise en charge expérimentale avec l'option -fcoarray, mais il échoue pour l'instant à compiler mes démos utilisant les coarrays (testé avec Flang 22.1.4 dans Fedora 44).

    Il propose également la gestion des boucles parallélisables do concurrent (Fortran 2008) via OpenMP.

    Intel ifx

    Intel ifx, pas libre si ce n'est en tant que free beer (pour se rafraîchir), est actuellement en version 2026.0.0 sortie le 28 avril 2026. Il poursuit l'implémentation de la norme Fortran 2023 et d'OpenMP 6.0 (sorti en novembre 2024).

    MATLAB MEX

    « Un fichier MEX est une fonction créée dans MATLAB qui appelle un programme C/C++ ou une sous-routine Fortran. » Jusqu'à maintenant, pour une raison qui nous échappe, MEX ne prenait en charge que les codes sources Fortran en format fixe, celui hérité des cartes perforées ! Désormais MATLAB R2026a prend en charge le format libre, introduit par la norme Fortran 90.

    En gestation

    LFortran

    Le développement du compilateur LFortran continue (v0.63). Comme l'annonce cet article du blog LFortran du 5 février 2026, « tout compilateur Fortran digne de ce nom doit être capable de compiler LAPACK (Linear Algebra Package), sans doute la bibliothèque Fortran la plus célèbre et la plus influente. » Qui plus est, LFortran compile désormais également fpm. Peut-être bien que le compilateur, dont la première version publique date de début 2019, passera en version Bêta à la fin de l'année. D'autant plus que le GSoC 2026 devrait aider (voir plus bas).

    Communauté Fortran-lang

    Projets Fortran-lang

    fpm (Fortran Package Manager)

    Le gestionnaire de paquets et de construction de projet fpm est disponible en version 0.13 depuis le 17 février 2026. Il s'agit d'une mise à jour majeure, fpm permettant désormais de définir dans le manifeste fpm.toml de votre projet des paramètres spécifiques pour chaque compilateur et plateforme, qui peuvent être regroupés dans des profils. De plus, fpm gère désormais l'ensemble de la syntaxe conditionnelle du préprocesseur cpp. Voir cette annonce pour découvrir les autres nouveautés significatives.

    stdlib

    La bibliothèque standard (de facto) est sortie en version 0.8 le 23 janvier 2026. En l'absence de communiqué officiel, je ne m'avancerai pas à lister les avancées importantes, les pull-requests étant trop nombreuses… Disons simplement qu'avec 22 contributeurs, dont 13 nouveaux depuis la 0.7, ça bouillonne. Ça semblera peu à certains mais dans le petit monde du Fortran, c'est beaucoup.

    Quelques projets à l'honneur

    • fpm-modules est un greffon fpm permettant de générer des graphiques Mermaid pour visualiser les dépendances entre modules Fortran. Il est développé par @davidpfister et distribué sous licence MIT.

    • quickr permet de traduire une fonction R en Fortran et de l'appeler depuis R via une fonction quick(). Le projet est développé par @t-kalinowski sous licence MIT.

    Événements

    Journée Fortran moderne CNRS (juin 2025)

    Une partie de la communauté Fortran nationale s'est réunie à l'Observatoire de Paris lors d'une journée organisée par le groupe Calcul du CNRS, le vendredi 13 juin 2025. La petite salle était bien remplie et l'ambiance chaleureuse, voire tropicale, la clim étant en panne :-)

    On a pu aborder quelques points chauds de l'actualité du langage via ces présentations :

    • les normes Fortran 2018 / 2023 et l'actualité des compilateurs ;
    • le Fortran Package Manager ;
    • la bibliothèque « standard » ;
    • le Fortran sur GPU.

    Les PDF sont disponibles sur cette page : https://groupe-calcul.cnrs.fr/2025-06-journee-fortran.html

    FortranCon 2025

    Les 4 et 5 novembre 2025 a eu lieu la FortranCon 2025, troisième édition de la conférence internationale sur le développement et l'utilisation du langage de programmation Fortran. Mais on attend toujours la mise en ligne des vidéos sur la chaîne YouTube FortranCon.

    GSoC 2026, the Summer of Love

    Pour le Google Summer of Code 2026, la communauté Fortran-lang conduit quatre projets centrés sur l'amélioration du compilateur LFortran. Avec bien sûr l'objectif d'offrir les fameux coarrays ! Décidément, l'été sera chaud (2026 pourrait même être une année super El Niño, paraît-il)…

    D'autant plus que côté GCC, s'il n'y a pas de projet directement axé GFortran, deux projets concernent des améliorations pour OpenMP et OpenACC et devraient bénéficier à tous les langages qui les gèrent.

    Chez LLVM, on note également le projet d'améliorer le débogueur LLDB pour gérer le Fortran (compilateur Flang).

    Coin lecture haute-performance

    Ménage à trois : un noyau stable

    En 1995, Fortran / C / C++ forment le trio de tête dans le monde du calcul haute performance (HPC pour High-Performance Computing). Même trio trente ans après. L'auteur essaie d'en comprendre les raisons (ou déraisons) dans ce long article de blog très fouillé :

    Je vous laisse lire, mais en conclusion il espère néanmoins que les choses auront changé dans 30 ans.

    À quoi ça sert tout ça ? Étude de cas

    Question ellulienne par excellence, à quoi ça sert tout ça (toujours plus de puissance de calcul) ? La question est aussi pertinente, ou impertinente, que toutes les questions qu'on peut se poser dans une vie. Ça sert à créer le monde moderne, à étudier le cosmos, à calculer des trajectoires pour les sondes spatiales, à simuler des explosions nucléaires, etc. Ça sert aussi à étudier les dégâts induits.

    Nous allons explorer rapidement une publication germano-helvétique. En n'étant pas dans le domaine, il ne faut pas espérer tout comprendre mais on peut en extraire quelques informations intéressantes, avec prudence pour ne pas dire trop de bêtises :

    • Klocke, Daniel, Claudia Frauen, Jan Frederik Engels, et al, « Computing the Full Earth System at 1 Km Resolution », prépublication, arXiv, 7 novembre 2025, https://doi.org/10.48550/arXiv.2511.02021.

    Il s'agit de simuler un système Terre complet, avec une grille composée de cellules de 1,25 km de côté, prenant en compte les cycles couplés de l'eau, de l'énergie et du carbone. L'étude utilise le modèle ICON de prévision météo et climatique, dont le code source est disponible sous licence BSD-3-Clause. C'est essentiellement du Fortran, avec une parallélisation basée sur MPI, OpenMP et OpenACC.

    Les machines utilisées sont JUPITER en Allemagne et Alps en Suisse. Concentrons nous sur la divine machine JUPITER, qui d'après le TOP500 de novembre 2025 est devenue, dans sa version Booster, le premier supercalculateur exaflopique (exascale) en Europe, et le quatrième dans le monde (les trois premiers étant aux USA). Au moment de la publication de l'article, il offrait 23536 NVIDIA Grace Hopper GH200 superchips, des cartes électroniques qui tiennent à peine dans une main grande ouverte (celle du PDG). Chacune de ces cartes comprend un CPU Grace et sa mémoire (72 cœurs, 120 Go) et un GPU Hopper (avec 96 Go), avec un bus à 900 Go/s, et consomme jusqu'à 680 W. Un rapide calcul nous amène à un total de 16 MW ! De quoi faire un barbecue géant (grille, baby, grille !). Le JUPITER Booster est 4e au TOP500, mais seulement 14e au Green500 avec 63,3 GFlops/W. Notons enfin que le système utilisé pour exploiter la bête est Red Hat Enterprise Linux.

    Les auteurs adoptent une approche séparant d'une part le code Fortran écrit par les chercheurs et d'autre part les manipulations effectuées par les ingénieurs performance pour le faire fonctionner d'une façon optimale sur le monstre. En particulier, ils ont épuré le noyau de calcul le plus intensif de la partie atmosphérique (le dynamical core) pour le ramener à 1400 lignes de code et ont utilisé le cadriciel DaCe (Data‑Centric parallel programming) pour le paralléliser au mieux, au lieu d'utiliser OpenACC. Autre exemple, les auteurs tirent parti du fait que les réactions de l'océan sont beaucoup plus lentes que celles de l'atmosphère : donc l'océan sur le CPU, le reste sur le GPU.

    L'équipe annonce une compression temporelle \tau = 145,7 jours simulés par jour de calcul et conclut qu'en un peu moins de six mois de calcul on pourra simuler deux scenarii de réchauffement climatique, avec variantes, sur les trente prochaines années. Hot stuff !

    Tux et carte électronique
    (source Tuxeries, JC, 2002, Free Art License 1.3)

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    ❌