DAVID Florian
Supervision : Gilles MULLER
Co-supervision : THOMAS Gaël
Continuous and Efficient Lock Profiling for Java on Multicore Architectures
Le mouvement des Big Data consiste à traiter et à structurer les grandes masses de données, c'est un enjeu crucial pour les entreprises d'aujourd'hui cherchant des solutions pour l'aide à la prise de décision, comprendre les habitudes de consommation de clients ou encore comment surveiller et optimiser leur processus opérationnels. Cependant, traiter de telles masses de données soulève d'importants problèmes. Le traitement de ces données est généralement parallélisé et effectué sur des machines disposant de nombreux coeurs. Cependant, les verrous protégeant les sections critiques sérialisent l'exécution de ces coeurs et peuvent devenir des goulots d'étranglement, dégradant la latence et le débit de traitement de ces données. De plus, il n'est pas aisé de détecter ces problèmes de contention de verrous in-vitro, c'est-à-dire pendant la période de développement du logiciel car il est difficile de reproduire un environnement de production, de créer une charge de travail de clients représentative du contexte dans lequel le logiciel sera déployé et de tester toutes les combinaisons de matériels, systèmes d'exploitation et de machines virtuelles sur lesquelles s'exécutera le logiciel.
Cette thèse présente Free Lunch, un profiler de verrous permettant d'identifier les phases de contention dues aux verrous in-vivo, c'est-à-dire en production. Free Lunch intègre une nouvelle métrique appelée Critical Section Pressure (CSP) dont le rôle est d'évaluer avec précision l'impact de la synchronisation sur le progrès des threads. Free Lunch est directement intégré dans Hotspot, la machine virtuelle Java d'Oracle, afin de minimiser le surcoût d'exécution, ne pas ralentir les applications et pour pouvoir être utilisé en production. Free Lunch reporte la CSP régulièrement pendant l'exécution de façon à pouvoir détecter les problèmes transitoires dus aux verrous.
Free Lunch est évalué sur une trentaine de benchmarks issus des suites Dacapo 9.12, SpecJVM08 et SpecJBB2005, ainsi que sur Cassandra, une base de données conçue pour passer à l'échelle. Nous avons pu identifier des phases de contention dans 6 applications dont certaines d'entre elles n'étaient pas détectées par les profilers actuels. Grâce à ces informations, nous avons pu améliorer la performance de Xalan de 15% en modifiant une seule ligne de code. Nous avons également identifié une phase de haute contention dans Cassandra pendant la période de rejeu du journal des transactions validées pendant la reprise d'un noeud suite à un crash. Nous avons étudié théoriquement et empiriquement les métriques de 7 profilers et nous avons déduit qu'elles ne retournaient pas de résultats significatifs permettant aux développeurs d'identifier les verrous dégradant les performances des applications. Sur toutes les applications testées, Free Lunch ne dégrade jamais les performances de plus de 6% ce qui le rend approprié pour être déployé continuellement dans un environnement de production.
Defence : 07/08/2015
Jury members :
Pascal FELBER, Professeur (Université de Neuchâtel, Suisse), [Rapporteur]
Laurent REVEILLERE, Maître de Conférences (Laboratoire Bordelais de Recherche en Informatique), [Rapporteur]
Emmanuel CHAILLOUX, Professeur (Laboratoire d'Informatique de Paris 6)
Didier DONSEZ, Professeur (Laboratoire d'Informatique de Grenoble)
Jens GUSTEDT, Directeur de Recherche (INRIA)
Gaël THOMAS, Professeur (Télécom SudParis)
Gilles MULLER, Directeur de Recherche (INRIA / LIP6)
2012-2016 Publications
-
2016
- J.‑P. Lozi, F. David, G. Thomas, J. Lawall, G. Muller : “Fast and Portable Locking for Multicore Architectures”, ACM Transactions on Computer Systems, (Association for Computing Machinery) (2016)
-
2015
- F. David : “Continuous and Efficient Lock Profiling for Java on Multicore Architectures”, thesis, phd defence 07/08/2015, supervision Muller, Gilles, co-supervision : Thomas, Gaël (2015)
-
2014
- F. David, G. Thomas, J. Lawall, G. Muller : “Continuously Measuring Critical Section Pressure with the Free-Lunch Profiler”, OOPSLA '14 - ACM International Conference on Object Oriented Programming Systems Languages & Applications, Portland, Oregon, United States, pp. 291-307, (ACM) (2014)
- F. David, G. Thomas, J. Lawall, G. Muller : “Continuously Measuring Critical Section Pressure with the Free Lunch Profiler”, 24 pages (2014)
- J.‑P. Lozi, F. David, G. Thomas, J. Lawall, G. Muller : “Remote Core Locking: Migrating Critical-Section Execution to Improve the Performance of Multithreaded Applications”, ComPAS 2014 : conférence en parallélisme, architecture et systèmes, Neuchâtel, Switzerland (2014)
-
2013
- F. David : “Profiler dynamique de contention pour les verrous des applications Java”, ComPAS, Grenoble, France (2013)
-
2012
- J.‑P. Lozi, F. David, G. Thomas, Julia L. Lawall, G. Muller : “Remote Core Locking: Migrating Critical-Section Execution to Improve the Performance of Multithreaded Applications”, Proceedings of the 2012 USENIX Annual Technical Conference (USENIX ATC '12), Boston, MA, United States, (ACM) (2012)