Aller au contenu principal

CORSE - Compiler Optimization and Run-time SystEms

Equipe de recherche commune CNRS, Grenoble INP, UGA
Axe   Systèmes Répartis, Calcul Parallèle et Réseaux

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.

Le projet de CORSE est structuré selon deux directions. La première appartient au domaine des supports d’exécution en l’enrichissant d’interactions fortes avec le compilateur/débogueur. Cette direction se dérive en :

  • Gestion de la mémoire, localité des données, équilibrage dynamique de charge ;
  • Usage d’informations sémantiques issues du langage (à domaine spécifique -- DSL) et d’analyse de compilation ;
  • Unification des techniques de monitoring fonctionnel et de debugging de performance.

La seconde direction appartient au domaine de l’analyse et de l’optimisation de compilation avec l’objectif de combiner l’analyse et l’optimisation statique avec des approches dynamiques. Cette direction se dérive en :

  • Représentation intermédiaire associée à un domaine spécifique;
  • Compilation hybride ; analyse statique/trace ;
  • Ordonnancement d’instructions et complexité d’entrées/sorties.

Mots clés

compiler optimization    run-time systems    memory management    high-performance computing    energy consumption    instruction level parallelism    thread level parallelism    debugging    monitoring

CORSE

Responsable   Fabrice RASTELLO
Site Web   https://team.inria.fr/CORSE
Téléphone/Fax   04 38 78 16 97
Bâtiment   Campus Minatec
Complément d'adresse   DRT/LETI/DACLE - Batiment 51C - Bur. C424

Publié le 10 novembre 2020

Mis à jour le 4 mars 2024