A machine learning-based approach for thread mapping on transactional memory applications

  • Authors:
  • Marcio Castro;Luis Fabricio Wanderley Goes;Christiane Pousa Ribeiro;Murray Cole;Marcelo Cintra;Jean-Francois Mehaut

  • Affiliations:
  • INRIA - LIG Laboratory - Grenoble University, France;School of Informatics - ICSA - CARD Group - University of Edinburgh, UK;INRIA - LIG Laboratory - Grenoble University, France;School of Informatics - ICSA - CARD Group - University of Edinburgh, UK;School of Informatics - ICSA - CARD Group - University of Edinburgh, UK;INRIA - LIG Laboratory - Grenoble University, France

  • Venue:
  • HIPC '11 Proceedings of the 2011 18th International Conference on High Performance Computing
  • Year:
  • 2011

Quantified Score

Hi-index 0.00

Visualization

Abstract

Thread mapping has been extensively used as a technique to efficiently exploit memory hierarchy on modern chip-multiprocessors. It places threads on cores in order to amortize memory latency and/or to reduce memory contention. However, efficient thread mapping relies upon matching application behavior with system characteristics. Particularly, Software Transactional Memory (STM) applications introduce another dimension due to its runtime system support. Existing STM systems implement several conflict detection and resolution mechanisms, which leads STM applications to behave differently for each combination of these mechanisms. In this paper we propose a machine learning-based approach to automatically infer a suitable thread mapping strategy for transactional memory applications. First, we profile several STM applications from the STAMP benchmark suite considering application, STM system and platform features to build a set of input instances. Then, such data feeds a machine learning algorithm, which produces a decision tree able to predict the most suitable thread mapping strategy for new unobserved instances. Results show that our approach improves performance up to 18.46% compared to the worst case and up to 6.37% over the Linux default thread mapping strategy.