Des nouvelles de Fortran n°6 - décembre 2024
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.
- lien ná” 1 : Organisation Fortran-lang.org
- lien ná” 2 : Fortran Discourse
- lien nᔠ3 : Brouillon norme Fortran 2023 (document d'interprétation du comité J3)
- lien ná” 4 : Fortran sur Wikipedia
- lien ná” 5 : Vera MolnĂĄr, aux sources du code
- lien ná” 6 : Who Were the Women Who Pioneered Early Computer Art?
- lien ná” 7 : History of Computer Art -- Part 2: Plotters
Sommaire
- John Backus est né il y a cent ans
- Sur le front des compilateurs
- Fortran 2028
- Communauté Fortran-lang
- Art et Fortran
- DĂ©construction
- La citation de Backus
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 desREAL64
, ouREAL32
ouREAL128
).
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 :
- le site de lâartiste ;
- cette page prĂ©sentant ses Ćuvres ;
- une interview de 2022 : «âŻMeet Vera MolnĂĄr, the 98-Year-Old Generative Art Pioneer Who Is Still Making Visionary Work in a Paris Nursing HomeâŻÂ».
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 :
- Roach, Rebecca. « J. M. Coetzeeâs Aesthetic Automatism ». MFS Modern Fiction Studies 65, ná” 2 (2019): 308â37. https://doi.org/10.1353/mfs.2019.0015.
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.
Commentaires : voir le flux Atom ouvrir dans le navigateur