Les puces Xeon Haswell implémenteront la mémoire transactionnelle en 2013
Afin de simplifier le développement d'applications parallèles, mais aussi d'en optimiser l'exécution, la prochaine génération de puces Xeon "Haswell", attendue en 2013, mettra en oeuvre la gestion de mémoire transactionnelle via un nouveau jeu d'extensions baptisé TSX, pour Transactional Synchronization Extensions.
Alors qu’il s’apprête à lancer ses nouvelles puces Xeon E5 (nom de code Sandy-Bridge-EP), des puces qui devraient motoriser les prochaines générations de serveurs d’HP, IBM, Dell et consorts, Intel vient de lever le voile sur l’une des fonctions attendues de sa prochaine génération de processeurs, la gestion de la mémoire transactionnelle.
La mémoire transactionnelle est une technique imaginée pour simplifier la création de logiciels multithreadés et qui reprend les concepts de transaction utilisés par les grands SGBD. L’objectif est d’éviter l’utilisation de verrous sur les ressources gérées par le processeur et notamment d’éviter qu’une tâche (ou thread) ne monopolise durablement une ressource durant une opération. Avec une gestion transactionnelle de la mémoire, les threads exécutent des transactions sans utiliser de verrou et ces dernières ne sont finalisées qu’après un « commit » explicite. C’est alors le processeur qui se charge de valider les transactions et notamment de vérifier qu’un autre thread n’a pas effectué de changement sur une page mémoire pendant qu’une autre transaction se déroulait. Si ce n’est pas le cas, la transaction est validée, sinon, l’opération doit être renouvelée.
Intel n’est pas le premier à se tourner vers cette technique. Sun l’avait inaugurée avec ses processeurs Rock, censés motoriser les serveurs Supernova, une gamme de serveurs finalement abandonnée par Sun peu avant son acquisition par Oracle. IBM utilise aussi cette technique pour ses serveurs à architecture massivement parallèle Blue Gene Q.
Selon Intel, les extensions transactionnelles (Transactional Synchronization Extensions ou TSX) des puces Haswell permettront deux modes d’exécution dont un mode intermédiaire baptisé Hardware Lock Elision censé faciliter la conversion des programmes existants au modèle transactionnel. HLE est en quelque sorte une couche d’abstraction chargée de mentir aux programmes développés avec un modèle traditionnel de verrous. Vu des programmes, elle réplique le modèle traditionnel des verrous, alors que d’un point de vue pratique elle s’appuie sur un modèle transactionnel. Un second mode « transparent », baptisé restricted Transactional Memory, met quant à lui en œuvre un modèle transactionnel complet.
Le support de la mémoire transactionnelle devrait notamment permettre de doper les performances des applications parallèles et s’avérer très utile pour le monde du calcul et des sciences, mais aussi pour des applications émergentes comme celles touchant au domaine du « Big Data ».
Les puces Xeon « Haswell » sont attendues dans le courant de l’année 2013.