Accueil > Activités > Projets R&D >Richelieu

Projets R&D

 
 

Accélération de langages de programmation
orientés sciences

www.richelieu.pro

Porteur : SCILAB ENTERPRISES
Appel à projet : FUI 14
Statut : en cours
Groupes Thématiques de SYSTEMATIC : GTLL et OCDS
Date de début du projet : Novembre 2012
Date de fin de projet : Novembre 2014
Durée : 2 ans
Montant total : 2017 k€
Montant aide : 826 k€

Partenaires du projet : ARCELOR MITTAL - CNES - DASSAULT AVIATION - HPC PROJECT/SILKAN - INRIA SACLAY - OCAMLPRO - SCILAB ENTERPRISES - UNIVERSITE PIERRE ET MARIE CURIE PARIS 6

 

 
 

Décembre 2013 -Le but du projet RICHELIEU est de traiter les problématiques des langages de programmation scientifiques interprêtés

Pour cela, l'outil VMKit de l'UMPC sera industrialisé et adapté. Appliqués à Scilab, ces résultats amélioreront fortement la plateforme à la fois en terme de performance et de consommation mémoire.

La plupart des langages de script pour les calculs scientifiques, comme celui de Scilab, reposent sur une interprétation dans une boucle d'’évaluation. Ainsi, un certain nombre d'opérations basiques, telles que les boucles, sont lentes par rapport à des codes compilés. Cela est dû à une répétition d'un nombre important de vérifications, de détection de types, etc., et à l’'absence d'’optimisation globale du code d’'une fonction. Pour régler ces problèmes, depuis une dizaine d'’années, les machines virtuelles reposent sur des compilateurs dit à la volée ("Just In Time") pour optimiser le code. Ces technologies sont utilisées avec succès dans les machines virtuelles les plus optimisées, comme par exemple V8 pour le langage Javascript de Google. Cependant, ces développements complexes représentent des investissements importants : le développement de V8 a monopolisé une dizaine d'’ingénieurs pendant trois ans.

VMKit, de l'UPMC, basé sur LLVM, est une boîte à outil pour le développement de machines virtuelles. En couplant VMKit à Scilab, le projet vise une amélioration allant jusqu’'à un facteur 40 par rapport aux performances actuelles, sans modifier le langage ni le code existant. Pour cela, l'outil VMKit sera industrialisé et adapté aux langages de calcul scientifiques en général et au logiciel Scilab en particulier.

De nombreux industriels migrent aujourd'hui vers le logiciel Scilab. De plus, son caractère libre et "Open Source"  le rend accessible aux PME. Cependant, les limitations en terme de performances du langage de script freinent parfois ces transitions. Grâce aux résultats de ce projet, elles en seront grandement facilitées.

La première année du projet Richelieu a confirmé les choix technologies du projet.

Ainsi, l’utilisation de VMKit/LLVM comme brique technologique du projet s’est avérée tout à fait adapté aux spécificités techniques de Scilab. Grâce à la fiabilité et la flexibilité de VMKit/LLVM, un premier prototype d’une version accélérée de Scilab a pu être réalisé.

Il permet de déléguer les calculs répétitifs et coûteux au moteur LLVM qui dispose en son sein d’un moteur Just-in-Time (JIT).

Pour faciliter l’adoption et le déploiement de VMKit, une intégration dans Debian de VMKit a été réalisée. En une commande, les fonctionnalités nécessaires à Richelieu sont ainsi installables.

De plus, les partenaires ont travaillé directement avec les équipes de développement de LLVM pour le packaging et la qualification des futures versions de LLVM (versions 3.3, 3.4 et 3.5).

En parallèle, les premières versions du projet Scilint ont été mises à disposition. Ce logiciel va analyser du code source Scilab.

Scilint est développé en OCaml, langage parfaitement adapté pour ce genre de problématique.

Deux types d’analyses sont réalisées par le logiciel:
• les erreurs courantes de programmation dans le langage Scilab (déclarations redondantes, mauvaises déclarations, etc),
• les maladresses de programmation courantes.

Ce logiciel libre est disponible sur le site OcamlPro: http://scilint.ocamlpro.com/

Lors de la deuxième année, les travaux vont porter sur une amélioration des algorithmes d’inférence de type pour proposer des améliorations de performances plus poussés mais aussi des détections d’erreur plus fines.

La version de Scilab VMKit/LLVM se verra aussi amélioré pour gérer plus de cas où les améliorations de performances sont sensibles.

 

 

 

 
© TERATEC - Tous droits réservés - Mentions légales