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 !

Le compilateur Fortran pour LLVM a été officiellement présenté
Les premiers détails techniques de Flang disponibles

Le , par dourouc05

38PARTAGES

9  0 
L’annonce du développement de Flang est loin d’être récente : elle date de novembre 2015. Ensuite, silence radio, jusqu’à l’ouverture du dépôt Flang sur GitHub,en mai de cette année. Un développeur de NVIDIA vient d’annoncer officiellement l’ouverture du projet au grand public.

En quelques mots, Flang est la culmination d’un effort de NVIDIA, plus particulièrement sa filiale PGI (connue pour son compilateur Fortran), sous l’impulsion donnée par la NNSA du Département de l’énergie américain. Ces presque deux ans de projet ont mené assez loin. L’objectif était de partir du compilateur existant de PGI et de le porter pour qu’il utilise l’infrastructure de LLVM (représentation intermédiaire, passes d’optimisation, génération du code assembleur, etc.), pas d’écrire un compilateur de zéro.

En l’état, Flang possède les mêmes fonctionnalités que le compilateur de PGI, c’est-à-dire l’entièreté de la norme Fortran 2003, quelques fonctionnalités de la révision de 2008 et des extensions propriétaires pour améliorer la compatibilité avec le Fortran primitif. Contrairement à Clang, qui est à la pointe en termes de fonctionnalités des derniers standards C++, Flang ne s’intéresse pas à Fortran 2015 pour le moment ; pour Fortran 2008, la priorité est mise sur les sous-modules et les constructions BLOCK et DO CONCURRENT. Au niveau d’OpenMP, Flang utilise la bibliothèque de support de LLVM ; la version 4.5 de la norme est presque entièrement implémentée pour les processeurs multicœurs.

Contrairement à Clang et au projet LLVM en général, Flang est principalement écrit en C et cela ne devrait pas changer. Ce choix a été posé pour reprendre autant de code de PGI que possible, tout en respectant les règles de codage du projet LLVM. L’objectif est de passer à C++ dans le futur, les développeurs sont ouverts à la discussion, mais préféreront se focaliser sur des points précis à discuter avec la communauté. Au niveau de la licence, Flang est actuellement disponible sous la licence Apache, mais sera distribué sous la même licence que LLVM lorsque son code aura été approuvé pour intégration à LLVM. En l’état, Flang passe toute la suite de tests de PGI, de nouveaux sont ajoutés en permanence.

Côté technique, Flang n’utilise pas les API de LLVM pour générer la représentation intermédiaire des programmes Fortran : il écrit directement dans un fichier, puis fait appel à opt et llc au besoin par la suite. La partie frontale de Flang est organisée en deux exécutables, l’un étant prévu pour les utilisateurs (il gère les paramètres de compilation) et appelant le deuxième pour la compilation effective. Pour le moment, il ne fonctionne que sous Linux, sur les architectures x86-64 (pour le grand public), ARM comme les téléphones portables et certains nouveaux supercalculateurs) et OpenPOWER.

Source : [Flang-announce] Flang Fortran front-end for LLVM.

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

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 ?!?
2  0 
Avatar de djip007
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!
1  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