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

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Fortran Discussion :

Pourquoi le langage de programmation Fortran serait une puissance scientifique ?


Sujet :

Fortran

  1. #1
    Chroniqueur Actualités
    Avatar de Bruno
    Homme Profil pro
    Rédacteur technique
    Inscrit en
    mai 2019
    Messages
    1 223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Rédacteur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : mai 2019
    Messages : 1 223
    Points : 24 484
    Points
    24 484
    Par défaut Pourquoi le langage de programmation Fortran serait une puissance scientifique ?
    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

    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.

    Nom : Fortran.jpg
Affichages : 19639
Taille : 1,8 Ko

    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
    Contribuez au club : corrections, suggestions, critiques, ... Contactez le service news et Rédigez des actualités

  2. #2
    Membre chevronné
    Homme Profil pro
    Ingénieur avant-vente
    Inscrit en
    septembre 2020
    Messages
    471
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur avant-vente

    Informations forums :
    Inscription : septembre 2020
    Messages : 471
    Points : 2 050
    Points
    2 050
    Par défaut
    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é.

  3. #3
    Membre éprouvé
    Homme Profil pro
    retraité
    Inscrit en
    septembre 2014
    Messages
    515
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : septembre 2014
    Messages : 515
    Points : 1 283
    Points
    1 283
    Par défaut
    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 ???

  4. #4
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    mai 2004
    Messages
    10 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : mai 2004
    Messages : 10 125
    Points : 27 974
    Points
    27 974
    Par défaut
    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.
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

  5. #5
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    août 2008
    Messages
    26 407
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : août 2008
    Messages : 26 407
    Points : 188 205
    Points
    188 205
    Par défaut
    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).
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  6. #6
    Membre éprouvé

    Profil pro
    Inscrit en
    décembre 2010
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : décembre 2010
    Messages : 92
    Points : 909
    Points
    909
    Billets dans le blog
    1
    Par défaut
    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.

Discussions similaires

  1. Quels sont les meilleurs langages de programmation pour développer une application mobile ?
    Par Stéphane le calme dans le forum Débats sur le développement - Le Best Of
    Réponses: 36
    Dernier message: 13/12/2022, 23h07
  2. Réponses: 4
    Dernier message: 14/05/2018, 22h25
  3. langages de programmation necessaires pour une application web
    Par nesrine 51092 dans le forum Débuter
    Réponses: 3
    Dernier message: 30/05/2014, 22h25
  4. L'utilisation d'un langage de programmation approprié permettrait une réduction considérable des dépenses
    Par Stéphane le calme dans le forum Débats sur le développement - Le Best Of
    Réponses: 52
    Dernier message: 22/10/2013, 15h35
  5. Réponses: 51
    Dernier message: 17/10/2013, 21h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo