Lead
The TransGC project aims at exploiting the hardware transactional memory (HTM) facilities part of Intel's new processors to develop a fully-concurrent garbage collector for Java and, more generally, to improve the performance and scalability of managed runtime environments.

Lay summary
Alors que la fréquence des processeurs cesse d'augmenter en raison de limitations thermiques et de consommation, la performance des ordinateurs continue à s'améliorer grâce à la généralisation des processeurs "multi-coeurs". Cependant, la manière d’exploiter au mieux ces nouvelles capacités de traitement parallèle représente un défi majeur pour les chercheurs et l'industrie du logiciel. En effet, développer des applications concurrentes qui sont à la fois correctes et performantes est loin d'être simple!

La mémoire transactionnelle (TM) représente une approche prometteuse pour relever ce défi. La TM permet au développeur de spécifier, dans son programme, quelles sont les sections critiques devant s'exécuter en isolation. Le substrat de TM va automatiquement exécuter ces sections dans des transactions "légères". La principale limitation de cette approche est le surcoût engendré par les mécanismes de TM.

Or, avec l'apparition de mémoire transactionnelle matérielle (HTM) dans la dernière génération de processeurs, nous disposons désormais de mécanismes de TM réellement efficaces. Les nouveaux processeurs "Haswell" d'Intel proposent des extensions transactionnelles (TSX) supportant l'élision de verrou matérielle (HLE) et une TM restreinte (RTM).

L'objectif de ce projet est d'exploiter ces nouvelles instructions pour résoudre un problème important des langages de programmation avec gestion de mémoire implicite: le développement d'un ramasse-miette (dispositif de recyclage de la mémoire) réellement concurrent. En effet, les solutions actuelles requièrent un arrêt temporaire du programme durant le recyclage de la mémoire, ce qui peut entraîner des pauses importantes dans des applications où le temps de réponse est critique. De manière plus générale, le projet va également étudier dans quelle mesure les mécanismes de HTM peuvent être bénéfiques à d'autres problèmes rencontrés dans les environnements d'exécution dynamiques tels que Java.