❌

Vue normale

Il y a de nouveaux articles disponibles, cliquez pour rafraĂźchir la page.
À partir d’avant-hierFlux principal

Des nouvelles de Fortran n°6 - décembre 2024

24 décembre 2024 à 07:54

Que s’est-il passĂ© dans le monde du Fortran depuis dĂ©cembre 2023 ? Nous avons un centenaire Ă  fĂȘter (non, ce n’est pas le vieux barbu coincĂ© dans la cheminĂ©e), ainsi qu’un nouveau Roi (il n’est pas libre, mais tant pis pour lui, il n’avait qu’à choisir de vivre dans une amphore). Sans oublier un artiste octogĂ©naire (on en profite pour explorer les liens entre FORTRAN et art dans les annĂ©es 60-70). Et on dĂ©construit enfin un mythe sur les ordinateurs des sondes Voyager.

Sommaire

John Backus est né il y a cent ans

John Backus (1924-2007), pÚre du langage, est né à Philadelphie le 3 décembre 1924. Le site mathématique MacTutor propose une biographie intéressante (en anglais) du mathématicien/informaticien, avec des citations. Par exemple, à propos de ses années dans le secondaire :

I flunked out every year. I never studied. I hated studying. I was just goofing around. It had the delightful consequence that every year I went to summer school in New Hampshire where I spent the summer sailing and having a nice time.

Sur le front des compilateurs

Compilateurs opérationnels

Le Roi est mort, vive le Roi ! Le compilateur classique Intel ifort n’est plus maintenu Ă  partir d’IntelÂź Fortran Compiler 2025.0, sorti le 31 octobre 2024. Sa version dĂ©finitive est la 2021.13. C’est son dauphin Intel ifx, basĂ© sur LLVM, qui prend le relais, aprĂšs ĂȘtre sorti de sa version beta avec la 2022.0.

Mais « si je n’étais Intel ifx, je voudrais ĂȘtre GNU Fortran ». Au moins, l’animal est libre, dans l’immensitĂ© des savanes. Certains anciens prĂ©tendent mĂȘme en avoir aperçu un assis en tailleur et jouant de la flĂ»te. GFortran, compilateur Fortran de la GCC, en est Ă  la version 14.2. On notera des amĂ©liorations concernant OpenMP et OpenACC. Si le compilateur accepte dĂ©sormais l’option -std=f2023, ne nous rĂ©jouissons pas trop vite. Pour l’instant la nouvelle fonctionnalitĂ© gĂ©rĂ©e concerne l’augmentation de la longueur des lignes Ă  10 000 caractĂšres (au lieu de 132 depuis Fortran 90) et des instructions Ă  un million de caractĂšres (elles peuvent ĂȘtre continuĂ©es sur un grand nombre de lignes). À quoi ça sert ? C’est utile pour des codes gĂ©nĂ©rĂ©s automatiquement.

En gestation

Il faut 22 mois de gestation pour un Ă©lĂ©phant, mais beaucoup plus pour un nouveau compilateur Fortran ! On doit non seulement implĂ©menter prĂšs de 700 pages de norme technique, mais aussi tout un tas de choses externes telles que MPI, OpenMP ou OpenACC pour le calcul parallĂšle, et gĂ©rer de nombreuses architectures matĂ©rielles. On comprend donc que les motivations sous-jacentes doivent ĂȘtre puissantes pour s’attaquer Ă  un tel chantier et on comprend pourquoi la plupart des nouveaux compilateurs s’appuient sur l’infrastructure LLVM.

L’avancĂ©e du travail sur le nouveau Flang pour LLVM est dĂ©crite dans le dernier Flang Liaison Report au J3 (24/10/2024). Et d’aprĂšs Phoronix, flang-new a Ă©tĂ© rebaptisĂ© flang pour la version LLVM 20.1 du printemps prochain, ce qui est de bon augure. Flang est un projet soutenu par NVIDIA et le DĂ©partement de l’Énergie amĂ©ricain.

AMD travaille de son cĂŽtĂ© Ă  sa version Next-gen Fortran compiler permettant le dĂ©lestage (offloading) des instructions OpenMP sur ses GPU. Bref, c’est chaud dans le monde du calcul parallĂšle sur processeur graphique !

Le dĂ©veloppement du compilateur LFortran continue. Il passera en version beta quand il sera capable de compiler une sĂ©lection de dix bibliothĂšques Fortran matures : en dĂ©cembre 2023, il en Ă©tait Ă  4/10. Il est dĂ©sormais Ă  7/10. Et il a Ă©tĂ© annoncĂ© en novembre 2024 que LFortran gĂ©rait dĂ©sormais toutes les fonctions intrinsĂšques de Fortran 2018. Le mĂȘme blog prĂ©sente Ă©galement quelques dĂ©mos en ligne du back-end WebAssembly de LFortran.

Fortran 2028

Alors que les compilateurs n’implĂ©mentent pour l’instant que certaines parties de Fortran 2023, la prochaine mouture est dĂ©jĂ  en cours d’élaboration. Et on commence Ă  voir l’appellation Fortran 2028 apparaĂźtre dans les documents du comitĂ© J3 Ă  la place de 202Y. Dans la liste des caractĂ©ristiques retenues par le groupe de travail WG5 fin juin, on trouve en particulier :

  • des templates pour la programmation gĂ©nĂ©rique ;
  • la gestion des tĂąches asynchrones ;
  • un prĂ©-processeur Fortran ;
  • la possibilitĂ© de dĂ©finir les KIND utilisĂ©s par dĂ©faut dans un programme (on pourrait par exemple demander dans le code lui-mĂȘme que tous les REAL soient considĂ©rĂ©s comme des REAL64, ou REAL32 ou REAL128).

La proposition d’ajouter au langage des entiers non signĂ©s a disparu (pour l’instant ?), malgrĂ© l’option expĂ©rimentale -funsigned qui sera disponible dans GFortran 15.

Communauté Fortran-lang

Projets Fortran-lang

L’organisation Fortran-lang est dĂ©sormais financĂ©e par l’organisation amĂ©ricaine Ă  but non lucratif NumFOCUS.

fpm

Le gestionnaire de paquets Fortran fpm est disponible en version 0.10.1 depuis mars 2024. Une liste d’environ 300 projets utilisant fpm est disponible ici.

stdlib

La bibliothÚque standard stdlib est sortie en version 0.7.0 début juillet. Elle apporte entre autres choses les valeurs CODATA 2022 des constantes physiques fondamentales. Ces valeurs, utilisées par tous les physiciens, sont mises à jour par le NIST (National Institute of Standards and Technology) tous les quatre ans, au fil des progrÚs en métrologie.

Quelques projets divers

  • Fortitude, un linter Ă©crit en Rust, est disponible en version 0.6.2.
  • Le projet fprettify, un utilitaire de formatage automatique de code Fortran, Ă©crit en Python, a Ă©tĂ© officiellement adoptĂ© par l’organisation Fortran-lang.
  • forgex, un moteur d’expressions rĂ©guliĂšres entiĂšrement Ă©crit en Fortran, est disponible en version 3.5.

Art et Fortran

C’est NoĂ«l, on veut ce qui n’a pas de prix, on veut du beau ! Que la technologie serve Ă  faire du beau.

Earl Einhorn, 81 ans, crĂ©e ses images Ă  l’aide de programmes Fortran depuis 1989, et utilise Photoshop pour finaliser les couleurs. Ses Ɠuvres actuelles comportent souvent des visages, leur symĂ©trie facilitant son travail depuis la perte de son Ɠil droit. Vous pouvez voir son travail sur son site. Il y explique qu’actuellement il crĂ©e typiquement des images de 12 000 sur 15 000 pixels, ce qui lui permet de les imprimer en 300 PPP pour des tableaux d’environ un mĂštre de cĂŽtĂ©.

VoilĂ  qui peut sembler original, mais dans les annĂ©es 60-70 de nombreux artistes ont en fait utilisĂ© FORTRAN 1 pour explorer ce que l’ordinateur, machine alors rĂ©volutionnaire et rare, pouvait apporter Ă  la musique, aux arts graphiques et Ă  la poĂ©sie. Pourquoi FORTRAN ? C’était simplement le langage dominant et facile Ă  apprendre Ă  l’époque, le Python des Beatles !

En 1963, Iannis Xenakis (1922-2001) publie son livre Musiques formelles : nouveaux principes formels de composition musicale. Le chapitre IV « Musique Stochastique libre, Ă  l’ordinateur » contient le listing du programme en FORTRAN IV utilisĂ© pour gĂ©nĂ©rer sur IBM 7090 une Ɠuvre de musique stochastique intitulĂ©e ST/10=1,080262. Il est maintenant en ligne sur GitHub. Au fait, bonne Ă©coute !

Pierre Barbaud (1911-1990) a Ă©galement utilisĂ© FORTRAN pour composer par exemple une oeuvre de musique Ă©lectronique intitulĂ©e Terra incognita ubi sunt leones (1973). Le dĂ©but du code est visible ici (hum
 que penser de cet appel rĂ©pĂ©tĂ© Ă  cette procĂ©dure : CALL GIRL(IDIV) ?). Bonne Ă©coute !

Au niveau des arts graphiques, on pourrait penser que les imprimantes de l’époque Ă©taient rudimentaires, mais ce serait oublier les traceurs (plotters), ou tables traçantes, qui permettaient de tracer des dessins techniques avec prĂ©cision 2. Les artistes programmeurs (ou programmeurs artistes) vont s’en emparer.

Dans les annĂ©es 60, l’artiste japonais Hiroshi Kawano a travaillĂ© sur sa sĂ©rie Artificial Mondrian. Le site du Zentrum fĂŒr Kunst und Medien Karlsruhe prĂ©sente son oeuvre KD 52, rĂ©alisĂ©e en 1969 Ă  l’aide d’un programme en FORTRAN IV pour les formes et peinte ensuite Ă  la gouache. On pourra lire cet article de blog : « The man-machine: Hiroshi Kawano’s algorithmic Mondrian » par Claudio Rivera.

En 1962, A. Michael Noll (Bell Labs) a commencĂ© Ă  utiliser un Stromberg Carlson SC-4020 microfilm plotter pour faire des dessins abstraits. Un faisceau d’électrons dessinait les formes sur un Ă©cran cathodique qui lui-mĂȘme impressionnait un microfilm. Il rend compte de ses premiĂšres expĂ©rimentations dans ce mĂ©mo datĂ© du 28 aoĂ»t 1962, avec bien sĂ»r un court code FORTRAN.

On peut Ă©galement citer l’Allemand Manfred Mohr, nĂ© en 1938. Voir son site et l’article de blog « Surveying Manfred Mohr’s Five-Decade Collaboration with the Computer » (2019). Citons aussi le SlovĂšne Edward Zajec (1938 – 2018) dont on peut voir des oeuvres sur cette page. Son assistant MatjaĆŸ Hmeljak a continuĂ© sa carriĂšre dans l’art gĂ©nĂ©ratif au moins jusqu’en 2020.

Les Ɠuvres de Vera MolnĂĄr (1924-2023), pionniĂšre de l’art gĂ©nĂ©ratif, ont Ă©tĂ© exposĂ©es Ă  la biennale de Venise en 2022. Elle a Ă©crit en 1974-1976 un programme baptisĂ© Molnart avec son mari :

François Molnar et moi avons conçu et mis au point un programme souple qui permet une expérimentation picturale systématique. Il est écrit en Fortran pour ordinateur de grande capacité relié à un écran de visualisation et à un traceur.

Voir Ă©galement :

Dans le domaine des arts graphiques, vous trouverez plus d’Ɠuvres numĂ©riques rĂ©alisĂ©es entre 1963 et 1980 Ă  l’aide de FORTRAN sur le site compart.

MĂȘme les poĂštes ont utilisĂ© FORTRAN. L’écrivain portugais Pedro Barbosa a ainsi publiĂ© en 1977 un livre intitulĂ© A literatura cibernĂ©tica 1. Autopoemas gerados por computador. On peut y lire des extraits de code. Et le poĂšte brĂ©silien Erthos Albino de Souza a utilisĂ© FORTRAN et PL/1 pour crĂ©er des poĂšmes graphiques.

J. M. Coetzee, prix Nobel de littĂ©rature 2003, a commencĂ© sa carriĂšre comme programmeur chez IBM dans les annĂ©es 60. Il a expĂ©rimentĂ© la gĂ©nĂ©ration automatique de poĂ©sie : « The line generator was composed in a combination of FORTRAN-style pseudocode and assembly code », comme rapportĂ© dans cet article :

DĂ©construction

Depuis 2013 circulait l’idĂ©e que les logiciels internes des sondes spatiales Voyager 1 et Voyager 2, lancĂ©es en 1977, avaient Ă©tĂ© Ă©crits originellement en FORTRAN. Le buzz remonte apparemment Ă  un article intitulĂ© « Interstellar 8-Track: How Voyager’s Vintage Tech Keeps Running » paru dans Wired. Charles A. Measday a publiĂ© sur son blog dĂ©but 2024 un article approfondi intitulĂ© « Voyager and Fortran 5 » qui dĂ©construit ce mythe urbain. Si une partie des logiciels au sol ont Ă©tĂ© Ă©crits Ă  l’époque en FORTRAN, les ordinateurs de bord des sondes Ă©taient et sont toujours programmĂ©s en assembleur, ainsi qu’à l’aide de sĂ©quences de commandes spĂ©cifiques aux sondes.

La citation de Backus

Terminons en revenant au point de dĂ©part de la dĂ©pĂȘche, avec une citation de Backus issue d’une de ses derniĂšres interviews en 2006. Voici son bon conseil pour les jeunes :

Well, don’t go into software. It’s just such a complicated mess that you just frazzle your brains trying to do anything worthwhile.


  1. On Ă©crit le nom du langage en majuscules pour la pĂ©riode avant Fortran 90. â†©

  2. Ce n’est peut-ĂȘtre pas un hasard si le langage Logo, avec sa cĂ©lĂšbre tortue, est crĂ©Ă© Ă  cette Ă©poque (1967). â†©

Commentaires : voir le flux Atom ouvrir dans le navigateur

❌
❌