Des nouvelles de Fortran n°4 - Octobre 2022

Posté par  (site web personnel) . Édité par Benoît Sibaud, Julien Jorge et Ysabeau 🧶 🧦. Modéré par Pierre Jarillon. Licence CC By‑SA.
23
19
oct.
2022
Fortran

Que s’est-il passé dans le monde du Fortran depuis notre dépêche de février ? Faisons un point automnal en commençant par deux évènements marquants, des nouvelles du front des compilateurs, un point sur les activités de la jeune communauté Fortran-lang et des nouvelles de quelques projets Fortran. Nous conclurons par un étonnant retour vers le futur du développement logiciel !

Sommaire

Normes Fortran 2023 et 202Y

Le projet de norme Fortran 202x a été rebaptisé Fortran 2023, norme qui devrait être publiée en juillet. Tous les compilateurs n’ayant pas fini d’implémenter Fortran 2018, il s’agit d’une version dite mineure apportant de nombreuses petites améliorations à différentes parties du langage. Comme à son habitude, John Reid les a résumées dans ce document de 23 pages : The new features of Fortran 202x.

Le comité J3 (US Fortran Standards Committee) a commencé à travailler sur la 5e norme Fortran de ce XXIe siècle, nommée pour l’instant Fortran 202Y, alors que le langage s’approche tranquillement de son 70e anniversaire (au choix : le projet FORTRAN commence en 1954, le compilateur est déployé par IBM en 1957). Un document résume l’ensemble des suggestions qui ont été pour l’instant transmises au comité, en date du 22 juillet. L’amélioration de la programmation générique et les templates ont déjà été acceptés.

Prix Turing 2021

Le 30 mars 2022, l’ACM (Association for Computing Machinery) a décerné le prix Turing 2021 à l’Américain Jack Dongarra « pour ses contributions pionnières aux algorithmes numériques et aux bibliothèques qui ont permis aux logiciels de calcul de haute performance de suivre le rythme des améliorations exponentielles du matériel pendant plus de quatre décennies. » Il a travaillé sur plusieurs bibliothèques de calcul en FORTRAN telles que EISPACK (1974), LINPACK, BLAS, LAPACK (1992) et ScaLAPACK (1993), etc. Il a créé en 1985 le dépôt netlib dont les logiciels étaient au début automatiquement envoyés sur requête e-mail. Il a participé à la mise en place du standard Message Passing Interface (MPI) pour le calcul parallèle (1994). Ayant longtemps travaillé sur la mesure des performances des calculateurs avec LINPACK, il est également à l’origine du TOP500 des plus puissants supercalculateurs de la planète. Plus récemment (2016), il a travaillé sur le calcul par GPU. Il donnera sa conférence Turing le 15 novembre 2022, en ouverture de la SC22 (The International Conference for High Performance Computing, Networking, Storage, and Analysis) à Dallas.

Jack Dongarra

(Photo ICLTSG, Wikimedia Commons, licence CC BY-SA 4.0)

Sur le front des compilateurs

Arm Fortran Compiler (armflang)

La collection de compilateurs C/C++/Fortran Arm Compiler for Linux est désormais disponible gratuitement. Le compilateur Fortran armflang est pour l’instant basé sur le compilateur Classic Flang, en attendant de passer au nouveau frontal LLVM Flang en développement.

LCC

LCC est un compilateur propriétaire du concepteur de microprocesseurs russe MCST (le Moscow Center of SPARC Technologies, fondé en 1992). Il prend en charge les langages C, C++ et Fortran pour les ordinateurs à architecture Elbrus ou SPARC (ainsi que x86_64 via un compilateur croisé). LCC est décrit comme largement compatible avec le compilateur GCC. Concernant les processeurs Elbrus, le fondeur est TSMC (Taiwan Semiconductor Manufacturing Company).

LFortran

En décembre 2021, Ondřej Čertík a quitté le Los Alamos National Laboratory (LANL) pour rejoindre GSI Technology en tant que développeur de compilateurs à temps plein. Il continue d’y développer le compilateur interactif LFortran ainsi que LPython, un nouveau frontal Python. Ils prendront entre autres en charge leurs « processeurs » Gemini Associative Processing Unit (APU), des circuits de mémoire capables d’effectuer en interne des traitements sur les données stockées.

Communauté Fortran-lang

Le Discourse de la communauté totalise désormais plus de 850 utilisateurs inscrits. Sur GitHub, l’organisation Fortran-lang comprend 83 membres. Lors de la recherche du mot clé « Fortran » dans le Google anglo-saxon, le site Fortran-lang.org est désormais maillot jaune (sans recours au dopage), résultat de presque trois ans de travail de la communauté. Un article a été publié sur l’état du langage et les activités de la communauté :

L.J. Kedward et al., « The State of Fortran », in Computing in Science & Engineering, vol. 24, n°2, p. 63-72, 1 mars-avril 2022, doi : 10.1109/MCSE.2022.3159862, PDF disponible sur https://arxiv.org/abs/2203.15110

Enfin, Fortran-lang vient de postuler pour être sponsorisée par l’organisation américaine à but non-lucratif NumFOCUS : réponse attendue fin novembre. Parmi les projets déjà sponsorisés par NumFOCUS, on compte : Jupyter, IPython, NumPy, SciPy, SymPy, Matplotlib, Julia, conda-forge, LFortran, etc.

GSoC 2022

L’organisation Fortran-lang a participé au Google Summer of Code 2022 (à ouvrir avec Chromium car Firefox n’affiche pas la liste des projets !). Cinq étudiants ont travaillé sur :

  • un plan de transformation de l’écosystème Fortran basé sur le gestionnaire de paquets Fortran fpm.
  • La création d’un Fortran Playground permettant de s’initier en ligne au Fortran (le compilateur utilisé est pour l’instant GFortran).
  • La migration du site fortran-lang.org de jekyll vers Sphinx. L’internationalisation du site en est facilitée : les traductions sont désormais gérées avec Weblate. Les pages principales du site ont été traduites en français et le travail se poursuit.
  • L’ajout d’une application dorsale WebAssembly au compilateur LFortran.
  • Le prototypage dans LFortran des nouveautés en programmation générique qui sont prévues pour la future norme Fortran 202Y.

Projets logiciels gérés par Fortran-lang

  • Le gestionnaire de paquets Fortran fpm 0.6.0 est sorti le 19 juin 2022. Concernant sa documentation, parmi les six langues pour lesquelles la traduction est bien avancée, la version française fait partie des traductions intégrales.
  • La bibliothèque standard stdlib 0.2.1 est sortie le 22 avril 2022.
  • L’extension Modern Fortran (actuellement en version 3.4) pour Visual Studio Code apporte le support du langage Fortran, avec coloration syntaxique, auto-complétion, débogueur, diagnostique, etc.

Documentation

Une liste des instructions intrinsèques du Fortran est désormais en ligne. Chaque description inclut un programme d’exemple complet et indique la norme ayant introduit la fonctionnalité. Cette liste peut même être installée sous forme de pages man. On peut alors par exemple taper pour la fonction sinus hyperbolique :

$ man sinh.3fortran

Projets indépendants

  • Doom Emacs dispose désormais d’un module Fortran.
  • Autre nouveauté, fortran-tcl86 propose des interfaces Fortran vers Tcl/Tk 8.6.
  • ORDERPACK, bibliothèque de tri et de classement (ranking) initialement développée entre 2002 et 2013, a été reprise et est sortie en version 2.1. Elle est désormais utilisable en tant que paquet fpm.
  • La bibliothèque Quadpack dont le développement avait été arrêté dans les années 80 a également été reprise pour modernisation. Elle est désormais utilisable en tant que paquet fpm.
  • gtk-fortran, sortie en avril en version 4.2, est installable via conda et peut être utilisée comme dépendance fpm. Mais l’utilisateur sera surtout sensible aux nouveaux tutoriels et à la refonte de la documentation. Celle-ci a été entièrement révisée et restructurée en suivant la méthode Diátaxis où les pages de documentation sont groupées dans quatre sections : Tutoriels, Guides pratiques (how-to), Références et Explications.

Rien de nouveau sous le soleil

S’intéresser au Fortran, c’est aussi plonger dans l’histoire de l’informatique et contempler parfois avec étonnement à la fois comment tout change et rien ne change. Ce paragraphe provient d’un article décrivant l’état du FORTRAN (alors en majuscules) vers 1958, soit un an après le déploiement du premier compilateur chez les clients d’IBM :

Néanmoins, la base technique du FORTRAN était suffisamment solide pour que son utilisation fasse boule de neige. Il y eut bientôt des centaines de clients qui firent des centaines de suggestions d’améliorations. Ils trouvaient des bogues et les envoyaient – pas seulement des rapports d’erreur, mais dans de nombreux cas, les corrections étaient envoyées en même temps. De nombreuses suggestions portaient sur des sujets tels que l’amélioration des diagnostics – de petites choses pratiques – et c’était comme si des centaines de personnes travaillaient à l’amélioration de FORTRAN. Les suggestions affluaient et nous les mettions en œuvre aussi vite que possible.

William P. Heising, The Emergence of FORTRAN IV from FORTRAN II, Annals of the History of Computing, vol. 1, n°1, janv. 1984.

Aller plus loin

  • # juste une coquille

    Posté par  (site web personnel) . Évalué à 3.

    TMSC -> TSMC (pour Taiwan Semiconductor Manufacturing Company)

  • # ..

    Posté par  . Évalué à 2.

    Pour avoir porté du code fortran sur une archi sans compilo fortran, j'avoue que le fortran ne m'a pas fait rêver. Surtout que c'était un mix de vieux fortran avec quelques trucs récents : syntaxe pourrie, mais pas de conversion auto en C avec f2c.

    Une petite vidéo de fortran II sur un mainframe ibm : https://www.curiousmarc.com/computing/ibm-1401-mainframe/ibm-1401-fortran-ii

    Et l'explication du fonctionnement du compilo de l'époque, avec plusieurs passent vu les contraintes mémoire 4k/8k de core memory : http://ibm-1401.info/1401-FORTRAN-Illustrated.html

    PS : le commentaire dans f2c.h "He suggested using FORTRAN, and everybody barfed."

    • [^] # Re: ..

      Posté par  . Évalué à 10.

      La syntaxe pourrie c'est toujours celle du langage qu'on découvre contraint et forcé.
      Quand tu es habitué au Fortran, devoir mettre un point-virgule à la fin de chaque instruction ça fait vraiment très primitif pour le dire poliment.

      Cela dit FORTRAN II c'était les années soixante. Ceux qui ont écrit des codes dans cette version doivent être tous à la retraite s'ils sont encore vivants. Est-ce qu'il t'arrive de critiquer un constructeur automobile aujourd'hui parce que les essuie-glace de sa voiture la plus célèbre étaient manuels dans les années cinquantes ?

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.