Des nouvelles de Flang : le compilateur Fortran basé sur LLVM
Implémenterait Fortran 2008 et améliorerait les messages d'erreur par rapport à PGI

Le , par dourouc05

0PARTAGES

7  0 
Après un an et demi de travaux, le compilateur Fortran basé sur LLVM promis par NVIDIA arrive enfin sur GitHub, bien que sans annonce officielle. Le projet a commencé avec un étudiant (financé par le programme Google Summer of Code) en 2013 sous le nom de Flang (analogue de Clang, le compilateur LLVM pour le C et ses dérivés), puis a été repris par NVIDIA et la sécurité nucléaire du département américain en 2015. L’objectif était de fournir un compilateur libre de très haute qualité, notamment basé sur celui de PGI.

Avec le développement de LLVM, ce projet apporte de plus en plus de promesses à l’écosystème Fortran. Par exemple, LLVM permet de compiler du code pour les GPU NVIDIA : grâce à Flang, il sera très facile d’offrir un compilateur libre pour ce faire (sans devoir utiliser celui de PGI). Également, OpenMP permet de décharger l’exécution du code sur un accélérateur : GCC ne le permet pas encore pour des cartes graphiques, uniquement les coprocesseurs Intel Xeon Phi ; LLVM, quant à lui, gère les cartes NVIDIA et les coprocesseurs Intel Xeon Phi.

Pour le moment, Flang fonctionne avec LLVM 3.9 (presque la dernière version). Les sources de la version 1.0 sont en ligne depuis une semaine (avec des commits d’employés de NVIDIA et de PGI), mais aucune annonce officielle n’a encore été faite (la documentation fait référence à un site qui n’existe pas encore, http://flang.nvidia.com/). La norme Fortran 2008 est implémentée, mais aucune information n’est donnée sur le niveau de compatibilité (le compilateur de PGI n’implémente pas toute la norme). La grande différence par rapport au compilateur de PGI devrait être la qualité des messages d’erreur, du niveau de Clang.

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

Avatar de Capitaine_aizen
Membre régulier https://www.developpez.com
Le 29/08/2017 à 10:11
Plus sérieusement, y'a pas mieux pour ce que ça fait ?!?
A ma connaissance Fortran est un langage très utilisé dans le milieu scientifique et industriel. Beaucoup d'équipes scientifiques à travers le monde codent encore en Fortran (par habitude, enseignement ou par nostalgie^^). De plus, manipuler des tenseurs en Fortran est beaucoup user-friendly qu'en C/C++. (Je compare avec les car la "seule menace" pour le Fortran en terme de performance c'est le C/C++).

Ensuite, les libraries de calculs scientifiques comme BLAS ou LAPACK pour l'algèbre linéaires sont très présentes dans les codes bas-niveau (Fortran, C++...) comme dans les codes haut-niveau (Matlab, IDL, Python...) à travers des wrappers.

Enfin si tu demandes à un scientifique de changer de Fortran pour un autre langage, il va te dire : "Qu'est-ce que tu proposes comme alternative ?" avec comme contrainte (pour mon expérience) : Free, Open-Source, Multi-platform (comprendre Linux & MacOs), User-friendly, Rapide (compatible avec OpenMP, MPI et éventuellement avec du SIMD comme SSE et AVX). Les langages comme MATLAB et IDL, ça passe pas. Python, ok, mais pour l'aspect OpenMP on oublie. MPI, ça marche mais c'est un peu galère et le SIMD sans invoquer du C ou du Fortran tu peux oublier. Reste alors le C/C++, mais la gestion de la mémoire est, comme dirait un confrère, "Pain in my ass".
3  0 
Avatar de Thorna
Membre éprouvé https://www.developpez.com
Le 29/08/2017 à 7:37
Les vieux ont la santé...
"Inventé en 1954, c'est le plus ancien langage de programmation de haut niveau, suivi notamment par Lisp (1958), Algol (1958) et COBOL (1959)."
A part Algol qui a disparu, les autres sont toujours là. Et on n'entend pas parler de Fortran++, ni de Gortrand, encore moins de Hortran... Est-ce que ça veut dire que la résistance au changement est bien plus forte qu'on ne le pense, ou bien que Fortran (et Lisp et Cobol) sont les langages du siècle ou du millénaire ? Et même, ils ont passé le siècle et le millénaire !
Plus sérieusement, y'a pas mieux pour ce que ça fait ?!?
1  0 
Avatar de djip007
Nouveau Candidat au Club https://www.developpez.com
Le 23/09/2017 à 1:09
Sans compter la manipulation de tableau de dimention jusqu'a 7 (ou 14 si un compilateur respecte la norme....)

- la norme 90 est une vrai evolution du fortran bien plus que ce que le C a evolue depuis ces debut en particulier une vrai gestion de type tableau a plusieurs dimension ce que ne sais faire ni le C ni le C++ ni java...
- la norme 2003 ajoute l'objet au langage (un Fortran++ en sorte) entre autre
- la norme 2008 des coarray et DO CONCURRENT entre autre... que ni le C ni le C++ ne sais faire...
- et la nouvelle norme 2015....

Ce n'est pas parce que il herite d'un version normalisé en 1964 qu'il n'a pas evolué et n'est pas "moderne"
Et pour faire des caclul y a pas mieux... aucun equivalant!
0  0 
Avatar de precesseur
Nouveau Candidat au Club https://www.developpez.com
Le 03/01/2018 à 15:46
Voir ce genre de commentaire d'un membre confirmé çà fait peur. Comme dit ci dessus Fortran 90 (avec petite modif, 95) c'est l'équivalent de Matlab (et/ou numpy) .. mais à la vitesse de C. Quant à Fortran ++ c'est Fortran 2003. Depuis toujours (ou au moins en même temps que C) le multithread openmp effectif (et aussi mpi). Quant au coarray (Fortran 2008) on attend les autres. En quoi croyez vous que les supercalculateurs scientifiques sont programmés? Fortran ou C++.
Le seul écueil est le manque d'interface graphique directe et reconnue, il en faut passer par une interface C ou C++ (par ailleurs normalisée lors de Fortran 2003).
0  0 

 
Responsable bénévole de la rubrique HPC : Thibaut Cuvelier -

Partenaire : Hébergement Web