Détail d'une fiche   Version PDF

CORSE (SR0744PR)

Compiler Optimization and Run-time SystEms

CORSE (SR0659SR) →  CORSE


Statut: Décision signée

Responsable : Fabrice Rastello

Mots-clés de "A - Thèmes de recherche en Sciences du numérique - 2023" : A1.1.1. Multi-cœurs, pluri-coeurs , A1.1.2. Accélérateurs matériels (GPGPU, FPGA, DSP, etc.) , A1.1.3. Modèles memoire , A1.1.4. HPC , A1.1.12. Architectures non conventionnelles , A1.6. Efficacité énergétique , A2.1.6. Programmation concurrente , A2.1.7. Programmation distribuée , A2.1.8. Programmation par aspects , A2.1.10. Langages dédiés , A2.2. Compilation , A2.2.1. Analyse statique , A2.2.2. Modèles mémoire , A2.2.3. Gestion mémoire , A2.2.4. Architectures parallèles , A2.2.5. Environnements d'exécution , A2.2.6. GPGPU, FPGA... , A2.2.8. Génération de code , A2.2.9. Sécurité par la compilation , A2.3.2. Systèmes cyber-physiques , A4.4. Sécurité des équipements et des logiciels , A7.1. Algorithmique , A9.6. Aide à la décision

Mots-clés de "B - Autres sciences et domaines d'application - 2023" : B3.1. Développement durable , B4.5. Consommation , B5.3. Nanotechnologies , B6.1.2. Evolution, maintenance , B6.6. Systèmes embarqués , B6.7. Industrie informatique (matériels, équipements...) , B9.1. Education

Domaine : Algorithmique, programmation, logiciels et architectures
Thème : Architecture, langages et compilation

Période : 01/07/2016 -> 31/12/2025
Dates d'évaluation : 19/03/2020

Etablissement(s) de rattachement : UGA
Laboratoire(s) partenaire(s) : LIG (UMR5217)

CRI : Centre Inria de l'Université Grenoble Alpes
Localisation : Antenne Inria Grenoble - MINATEC
Code structure Inria : 071120-2

Numéro RNSR : 201421151J
N° de structure Inria: SR0744PR

Présentation

CORSE est un groupe de recherche qui regroupe plusieurs expertises situées à l'interface entre le logiciel et le matériel comme:l'auto-optimisation de bibliothèques/applications, l'optimisation de compilation, les environnements d'exécution, le debugging/monitoring. Nos domaines d'application incluent la performance (à la fois en terme de vitesse mais aussi de consommation énergétique), la fiabilité, ainsi que l'enseignement de l'informatique. Une de nos activités coeurs concerne le portage et l'optimisation d'applications de "machine learning" sur architectures embarquées haute-performance spécifiques. 

Les langages, les compilateurs ainsi que les supports d’exécution sont des composants clés pour relier les applications au matériel. La puissance de calcul des processeurs est maintenant telle que les applications sont de plus en plus ambitieuses, intensives en calcul et complexes. Dans ce contexte, trois formes de calcul s’imposent pour la prochaine décennie : mobile, dématérialisée (Cloud) et à haute performance. Dans tous les cas, les architectures ciblées montrent une importante diversité et hétérogénéité et ce y compris au sein d’une même puce. La pression et les attentes portées sur les compilateurs et les supports d’exécution, jouant le rôle d’interface entre les applications et le matériel, sont en conséquence de plus en plus fortes. Dans le même temps, principalement à cause du « mur de l’énergie » (energy wall), les architectures deviennent de plus en plus complexes et hiérarchiques, intégrant du parallélisme de manière omniprésente et ce à tout niveau. De plus, la quantité de mémoire par processeur s’amenuise et la consommation énergétique continue à être un problème critique pour les plates-formes du futur. Afin d’adresser le défi de la performance et de la consommation énergétique posés aujourd’hui par l’industrie de l’électronique, les compilateurs et supports d’exécution doivent évoluer et en particulier interagir. L’objectif principal de CORSE est d’adresser ce défi en : 1. enrichissant l’interaction entre le support à l’exécution et le programme par de l’information connue ou analysable par le compilateur ; 2. combinant compilation statique et dynamique.


Axes de recherche

Le projet de CORSE est structuré selon trois directions. La premère appartient au domaine de l'analyse et l'optimisation de programme. Cette direction se dérive en:

  1. Debug de performance, instrumentation de binaire, charactérisation automatique et simulation d'architectures
  2. Transformation de boucles, ordonnancement, localité des données, complexité d'entrées/sorties
  3. Infrastructure d'un compilateur, compilation hybride, représentation intermédiaire associée à un domaine spécifique 

La seconde appartient au domaine du monitoring, de la vérification et l'application de propriétés à l'exécution. Cette direction se structure comme suit:

  1. Instrumentation de programme Java pour vérifier des propriétés de fiabilité et sécurité
  2. Monitoring de composants obtenus par apprentissage en utilisant des abstractions basées sur des formes géométriques
  3. Décentralization du processus de monitoring pour les systèmes multi-thread et distribués
  4. LMonitoring prédictif pour les processus métiers.

La troisème direction appartient au domaine de l'enseignement de la programmation. Cette direction se dérive en:

  1. Développement de bibliotèques permettant la création d'outils de visualisation de l'état d'un programme
  2. Développement d'outils pour l'enseignement du debug 
  3. Enseignement par les problèmes. Génération et recommandation de problèmes

 


Relations industrielles et internationales