IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Pourquoi le langage de programmation Fortran serait une puissance scientifique ?
Une observation de Michael Wirth, enseignant à la School of Computer Science de l'Université de Guelph

Le , par Bruno

12PARTAGES

6  0 
De l’avis de Michael Wirth, enseignant à la School of Computer Science de l'Université de Guelph, les gens sont souvent surpris de découvrir à quel point Fortran est répandu dans le monde réel. Par exemple, de nombreux modèles climatiques ont été écrits à l'origine et continuent d'être maintenus en Fortran. « Des langages comme Julia tentent de le détrôner, mais je pense que Julia serait un meilleur langage s'il était associé à une norme ISO », écrit Wirth.

Fortran est un langage de programmation pensé dans les années 50 pour le calcul scientifique. Il continue à être largement utilisé dans le domaine de la recherche scientifique pour le calcul intensif. Contrairement à des langages plus évolués, le déroulement des opérations individuelles en machine reste relativement contrôlable dans le langage, ce qui permet d'écrire des codes relativement efficaces en termes de calcul. Le Fortran a beaucoup évolué ces dernières années avec l'apparition de la norme Fortran 90.


Selon Michael Wirth, l'une des raisons pour lesquelles Fortran fonctionne encore est la longévité. Il est beaucoup plus facile de s'appuyer sur quelque chose qui a été développé à l'origine en Fortran (qui est rétrocompatible), plutôt que de partir de zéro. « Les gens font toujours croire que c'est facile, mais de nombreux projets de réingénierie ont échoué parce qu'on n'avait pas compris le fonctionnement du logiciel d'origine », déclare Wirth.

Le Fortran est aussi exceptionnellement bon pour les mathématiques, et les modèles climatiques ne sont rien d'autre que du traitement de données et des mathématiques.

« Je n'aime pas quand les gens essaient d'expliquer que "Python serait meilleur", à cause d'une idée farfelue selon laquelle sa syntaxe est meilleure que celle de Fortran. Bien sûr, c'est plus succinct, mais c'est purement pour le bénéfice du programmeur, pas de la machine », explique-t-il. « Et qui peut dire que le typage explicite n'ajoute pas un certain niveau de clarté, ce qui est extrêmement important dans les programmes qui effectuent des calculs. »

Caractéristiques de Fortran

  • Calcul haute performance: le langage Fortran a été conçu dès le départ pour des applications de calcul intensif en sciences et ingénierie. Des compilateurs et des bibliothèques matures et éprouvés vous permettent d’écrire rapidement un code exploitant au mieux la puissance de votre matériel ;
  • Typage statique fort : le Fortran utilise un typage statique fort, ce qui permet au compilateur de détecter immédiatement de nombreuses erreurs de programmation. Cela lui permet également de générer un code binaire performant ;
  • Facile à apprendre et à utiliser : le Fortran a un vocabulaire relativement restreint et est étonnamment facile à apprendre et à utiliser. L’écriture de la plupart des opérations mathématiques et arithmétiques sur des tableaux de grande taille se fait naturellement, comme sur le papier ;
  • Multiparadigme : le Fortran permet d’écrire du code dans le style qui correspond le mieux au problème : impératif, procédural, matriciel, orienté objet ou fonctionnel ;
  • Parallèle : le Fortran est d’office un langage de programmation parallèle utilisant une syntaxe intuitive de type tableau pour communiquer les données entre processeurs. Il est possible d'exécuter quasiment le même code que ce soit sur un seul processeur, sur un système multicœur à mémoire partagée, sur un système HPC à mémoire distribuée, ou un système de type cloud. Les concepts de co-tableaux, équipes, événements et sous-routines collectives permettent d’utiliser différents modèles de programmation parallèle adaptés au problème de programmeur.

Voici, quelques caractéristiques mises en avant par Wirth pour justifier que Fortran est une puissance scientifique.

  • Performances : Fortran est rapide, dans certains cas plus rapide que C, et la modélisation climatique, comme une grande partie de l'informatique scientifique, est une question de vitesse ;
  • Parallélisme : la performance nécessite le parallélisme, et Fortran le faisait avant même que les autres langages ne sachent ce que c'était ;
  • Réutilisation : la rétrocompatibilité signifie que les bibliothèques existantes peuvent être facilement réutilisées ;
  • Tableaux : Fortran traite les tableaux avec le respect qui leur est dû. Il prend en charge les tableaux multidimensionnels, le découpage, la réduction, le remodelage et de nombreuses optimisations pour les calculs basés sur les tableaux, comme la vectorisation ;
  • Longévité : les modèles climatiques et autres ne peuvent pas être mis en œuvre dans des langages qui ne sont pas (i) rétrocompatibles et (ii) en constante évolution. Si vous écrivez du code en Fortran aujourd'hui, il est probable qu'il fonctionnera encore dans 20 ou 30 ans ;
  • Effort : savez-vous combien d'efforts il faudrait fournir pour réorganiser un modèle ? Les nouveaux langages posent problème ;
  • MPI : l'interface de passage de messages (MPI) est la passerelle vers le calcul haute performance, et Fortran la gère très bien.

« Fortran a été conçu pour le calcul scientifique. Bien sûr Fortran est vieux, mais Unix aussi, et C aussi. Ce n'est pas parce que des langages comme Julia sont plus récents qu'ils sont meilleurs. Tout le monde pensait que le C++ serait une sorte de sauveur du codage, et regardez comment cela a tourné. Les gens pensent parfois que si quelque chose est écrit dans un langage comme R, alors c'est du pur R... mais ne comprennent pas que R lui-même n'est pas du pur R. R est lui-même composé de code composé de R, C, et Fortran », conclu-t-il.

Source : Michael Wirt's Bolg

Et vous ?

Partagez-vous l’avis de Michael Wirt au sujet du langage Fortran ?

Avez-vous déjà utilisé ce langage ? Quelles sont ses forces, quelles sont ses faiblesses ?

Comparé au langage Julia, lequel préférez-vous

Voir aussi :

La version 1.6 du langage Julia est disponible, elle apporte une réduction de la latence des compilateurs et supprime les recompilations inutiles

Go 1.16 est disponible et apporte la prise en charge de l'architecture ARM 64 bits sur macOS, ainsi que l'intégration des fichiers statiques et des arborescences de fichiers dans l'exécutable final

C++ vs Rust : une comparaison pratique de la vitesse de compilation et de test des deux langages de programmation, par Matthew Glazar, ingénieur en génie logiciel

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de
https://www.developpez.com
Le 13/01/2023 à 7:13
Le principal problème de Fortran, c'est l'état d'esprit de sa communauté. Il a fallu attendre 2020 pour qu'elle songe à mettre en place une bibliothèque standard. Beaucoup de bibliothèques scientifiques sont payantes. Quid du compilateur Intel, devenu gratuit depuis peu de temps.

En comparaison, Julia propose des paquets d'excellente qualité, gratuits et en open source, le tout avec un gestionnaire integré.
4  1 
Avatar de gangsoleil
Modérateur https://www.developpez.com
Le 23/01/2023 à 13:24
Bonjour,

Fortran date de 1957 pour la première version, et est toujours là -- sur un marché de niche, mais tout de même.

Et ce qui est souvent oublié, c'est qu'il y a de nombreux outils qui génèrent du code fortran, et ce de manière certes non-optimale mais de très bonne facture, ce qui permet aux scientifiques de modéliser de très nombreuses choses sans être eux-mêmes des développeurs.

Si un langage doit un jour remplacer Fortran, ce sera probablement un langage avec le même genre de générateurs.
3  0 
Avatar de vmagnin
Membre éprouvé https://www.developpez.com
Le 25/01/2023 à 8:31
C'est un article pertinent. Je regrette juste cette phrase :
Le Fortran a beaucoup évolué ces dernières années avec l'apparition de la norme Fortran 90.
Fortran 90, ça fait 32 ans (elle est parue en 1991 en fait) ! Depuis il y a eu Fortran 95 (version mineure), puis Fortran 2003 (programmation orientée objet, interopérabilité avec le C...), Fortran 2008 (calcul parallèle avec les coarrays...), Fortran 2018 (ajout d'autres paradigmes de calcul parallèle...). Ca fait déjà trois normes au XXIe siècle, et la quatrième devrait arriver à l'automne (Fortran 2023). Le comité de normalisation J3 a déjà commencé le travail sur la suivante (Fortran 202Y). Voir la page Wikipedia Fortran pour plus de détails.

Citation Envoyé par Jeff_67 Voir le message
Le principal problème de Fortran, c'est l'état d'esprit de sa communauté. Il a fallu attendre 2020 pour qu'elle songe à mettre en place une bibliothèque standard. Beaucoup de bibliothèques scientifiques sont payantes. Quid du compilateur Intel, devenu gratuit depuis peu de temps.

En comparaison, Julia propose des paquets d'excellente qualité, gratuits et en open source, le tout avec un gestionnaire integré.
En effet, la communauté Fortran était une galaxie dispersée (en dehors du comité de normalisation). Mais la communauté Fortran-lang, lancée fin 2019, a changé la donne. Outre le développement d'une bibliothèque stdlib (en version 0.2 actuellement), elle a aussi créé le gestionnaire de paquets (et de build) fpm inspiré du Cargo de Rust. Et son site web constitue un véritable portail d'entrée dans le monde Fortran avec tout ce qu'il faut pour débuter et aller au-delà.

Au niveau des compilateurs, Intel Fortran 2023.0 implémente intégralement la norme Fortran 2018 et est gratuit au téléchargement. GFortran (GCC) continue d'être développé. Deux nouveaux compilateurs sont en développement : LFortran et Flang (NVidia), basés sur LLVM. Sans compter tous les autres.

Citation Envoyé par TotoParis Voir le message
Oui, Fortran c'est rarement gratuit et Open Source : et alors ? C'est pas fait pour les amateurs non plus. Ton Julia sera encore de ce monde dans 20 ans ???
Rarement, je ne sais pas. Il y a de tout, du commercial propriétaire, de l'open source avec des licences variées (GPL, BSD, MIT...). Voir la liste des bibliothèques Open Source gérée par la communauté Fortran-lang.
2  0 
Avatar de dourouc05
Responsable Qt & Livres https://www.developpez.com
Le 24/01/2023 à 16:24
Citation Envoyé par gangsoleil Voir le message
Si un langage doit un jour remplacer Fortran, ce sera probablement un langage avec le même genre de générateurs.
Je n'avais jamais entendu parler de ce genre de générateur. Je connais pas mal d'outils comme OpenFOAM où tu spécifies ton problème sous la forme de texte, puis un programme Fortran (entre autres) résout ton problème.

Ce que j'ai en tête, c'est quelque chose comme tu as en Julia, par exemple, où tu peux entrer ton problème sous une forme très proche des maths : https://github.com/SciML/ModelingToolkit.jl, l'exemple proposé est certes du code, mais il ne nécessite pas vraiment de connaissances en programmation (ça peut aller plus loin, comme https://github.com/SciML/Catalyst.jl, avec une notation proche de la chimie).
0  0 
Avatar de TotoParis
Membre éprouvé https://www.developpez.com
Le 15/01/2023 à 17:05
Citation Envoyé par Jeff_67 Voir le message
Le principal problème de Fortran, c'est l'état d'esprit de sa communauté. Il a fallu attendre 2020 pour qu'elle songe à mettre en place une bibliothèque standard. Beaucoup de bibliothèques scientifiques sont payantes. Quid du compilateur Intel, devenu gratuit depuis peu de temps.

En comparaison, Julia propose des paquets d'excellente qualité, gratuits et en open source, le tout avec un gestionnaire integré.
Oui, Fortran c'est rarement gratuit et Open source : et alors ? C'est pas fait pour les amateurs non plus. Ton Julia sera encore de ce monde dans 20 ans ???
2  3