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

  1. #1
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    août 2008
    Messages
    24 587
    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 : 24 587
    Points : 164 025
    Points
    164 025

    Par défaut NVIDIA propose officiellement f18, son compilateur libre pour Fortran, comme sous-projet LLVM

    La suite de compilateurs LLVM est notamment connue pour Clang, son compilateur C et C++, mais aussi pour la kyrielle d'autres projets qui utilisent son infrastructure afin de faciliter leur développement ]comme Julia, qui utilise LLVM pour garantir une exécution extrêmement rapide).

    Il y a de cela un certain temps (en 2015, précisément), NVIDIA voulait ajouter Fortran à la liste des langages implémentés par LLVM, avec le projet Flang. Il a fallu du temps avant que le projet soit vraiment officialisé. Le développement a eu lieu avec bien d'autres parties intéressées, comme ARM ou le DoE (ministère américain de l'énergie). Désormais, NVIDIA cherche à faire intégrer le code source du successeur de Flang, f18, dans le projet LLVM, au même niveau que Clang.

    Pour le moment, f18 implémente une bonne partie du langage Fortran : l'analyse syntaxique gère toute la norme Fortran 2018 ainsi qu'OpenMP 4.5, même si toute l'infrastructure derrière cette analyse syntaxique n'est pas encore prête. L'objectif de ses développeurs est de soumettre le code à LLVM (y compris l'implémentation de la bibliothèque standard), puis de continuer le développement des fonctionnalités manquantes : il faut encore effectuer un certain nombre de refactorisations (notamment pour découpler la bibliothèque standard du compilateur), des choix cohérents avec le reste de l'infrastructure LLVM doivent être posés.

    Le plus gros frein, selon les développeurs de f18, est l'utilisation de C++17 pour l'implémentation du compilateur, alors que LLVM est en pleine transition vers C++14 (un processus assez lent pour s'assurer que tous ceux qui utilisent LLVM ne soient pas tirés en arrière par des besoins trop évolués). Certains développeurs de LLVM trouvent que ce n'est pas un problème, puisqu'il n'y a pas de rétrocompatibilité cassée : f18 est un tout nouveau projet pour LLVM ; certains ressortent des excuses basées sur le fait que toutes les machines utilisées par le projet LLVM ne sont pas forcément assez à jour pour C++17, ce qui limiterait les possibilités en termes d'intégration continue. L'intégration des deux projets pourrait aussi être limitée par le fait que certains développeurs de LLVM pourraient souhaiter utiliser certaines fonctionnalités de f18 dans d'autres parties du projet.

    Source : GitHub, LLVM Mailing list
    Vous souhaitez participer aux rubriques Qt ou PyQt (tutoriels, FAQ, traductions), 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 !

  2. #2
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    août 2008
    Messages
    24 587
    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 : 24 587
    Points : 164 025
    Points
    164 025

    Par défaut

    Cela fait quelques années que NVIDIA et d'autres sociétés investissent dans Fortran, l'un des plus vieux langages de programmation (il a fait sa première apparition en 1957), afin d'apporter l'infrastructure nécessaire au projet LLVM pour la compilation de code Fortran. En début de cette année, le résultat de ces développements a été proposé officiellement à la communauté LLVM : les réponses sont maintenant connues, le projet est acceptée… avec quelques remarques.

    Tout a commencé avec Flang, qui est basé sur le code de PGI, un compilateur très renommé pour Fortran, notamment. PGI est extrêmement avancé au niveau de l'analyse syntaxique de Fortran, puisqu'il implémente l'entièreté de Fortran 2003 et de bonnes parties de Fortran 2008 et 2018, sans oublier des extensions comme OpenMP 4.5 et OpenAcc 2.6.
    Nom : tempsnip.png
Affichages : 24
Taille : 24,5 Ko

    Seulement, PGI est entièrement écrit en C, de par son âge. Au contraire, LLVM est un code bien plus moderne, entièrement en C++ selon les meilleures pratiques les plus récentes. C'est pourquoi Flang est en cours de réécriture en C++, d'abord sous le nom de f18 (pour Fortran 18).

    L'objectif est aussi de fournir un code qui facilite l'écriture d'outils pour travailler sur le code Fortran (au niveau de ce que Clang fournit pour le C++).
    Nom : tempsnip-1.png
Affichages : 24
Taille : 18,5 Ko

    C'est ce projet f18 qui a été accepté par LLVM pour intégration. Une chose est sûre quant au nom, il changera, mais il n'y a pas encore de consensus : il fait trop référence à la version 2018 de la norme Fortran et n'est pas assez clair pour le grand public. Le dépôt Git s'appellera probablement fortran, tout simplement.

    Un autre point bloquant est l'utilisation de C++17, mais ce point est temporaire (quand tout le projet LLVM sera passé à C++17). Vu que f18 est loin d'être finalisé, à cause de la réécriture en C++ de flang, la première version publique n'est pas près d'arriver…

    En attendant, les chiffres de performance à l'exécution sont intéressants : flang dépasse déjà GCC 8, malgré un code moins mature.


    Source : présentation au LLVM Developers' Meeting.

    Voir aussi : f18 et flang sur GitHub.
    Vous souhaitez participer aux rubriques Qt ou PyQt (tutoriels, FAQ, traductions), 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 !

  3. #3
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    août 2008
    Messages
    24 587
    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 : 24 587
    Points : 164 025
    Points
    164 025

    Par défaut

    Finalement, point de f18 : le compilateur LLVM pour Fortran, développé par NVIDIA et PGI, prendra le nom de flang, celui déjà utilisé pour le développement du projet.

    Source : liste de diffusion.
    Vous souhaitez participer aux rubriques Qt ou PyQt (tutoriels, FAQ, traductions), 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 !

Discussions similaires

  1. notion de sous projet
    Par Abla23 dans le forum Zope
    Réponses: 4
    Dernier message: 04/07/2006, 11h49
  2. Problème avec les drivers officiels ATI sous debian
    Par b Oo dans le forum Matériel
    Réponses: 1
    Dernier message: 06/06/2006, 20h38
  3. [SOLARIS] Accentuation comme sous Linux
    Par Nick_Holmes dans le forum Solaris
    Réponses: 5
    Dernier message: 02/06/2006, 14h42
  4. Encoder les retours chariots comme sous Unix
    Par tsing dans le forum Fichiers
    Réponses: 5
    Dernier message: 07/03/2006, 19h48
  5. [eclipse 3.0.1] Création de projet avec sous-projet
    Par whilecoyote dans le forum Eclipse Java
    Réponses: 5
    Dernier message: 11/07/2005, 10h31

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