Sites Inria

English version

Equipe de recherche CORSE

compiler optimization and run-time systems

Présentation de l'équipe

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 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:

  1. Gestion de la mémoire, localité des données, équilibrage dynamique de charge ;
  2. Usage d’informations sémantiques issues du langage (à domaine spécifique -- DSL) et d’analyse de compilation ;
  3. 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 :

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

 

Mots-clés : Optimisation de compilation Systèmes de support à l’exécution Gestion mémoire Calcul haute performance Basse consommation Parallélisme au niveau des instructions Parallélisme de tâches Débogage Instrumentation

Suivez Inria