Communication-aware thread mapping using the translation lookaside buffer

Eduardo H.M. Cruz, Matthias Diener, Philippe O.A. Navaux

Research output: Contribution to journalArticlepeer-review


Threads of parallel applications need to communicate in order to fulfill their tasks. The communication performance between the cores in modern multi-core architectures differs because of the memory and interconnection hierarchies. In these architectures, it is important to map the threads of parallel applications by taking into account the communication between them, to improve their performance and energy consumption. In parallel applications based on shared memory, communication is implicit, which makes it difficult to detect the communication pattern between the threads. In this paper, we introduce a new lightweight mechanism to detect the communication pattern between threads of shared memory applications using the translation lookaside buffer. Our mechanism relies on hardware features, which make it transparent to the programmer and allow the detection to be performed by the operating system during the execution of the application. We also developed a heuristic mapping algorithm that uses the detected pattern to dynamically map the threads to cores. Experiments were performed with applications from the NAS-OMP and PARSEC parallel benchmark suites in a simulated machine as well as a real machine. Results show that our mechanism can substantially improve parallel application performance, as well as processor and DRAM energy consumption.

Original languageEnglish (US)
Pages (from-to)4970-4992
Number of pages23
JournalConcurrency and Computation: Practice and Experience
Issue number17
StatePublished - Dec 10 2015
Externally publishedYes


  • Shared memory
  • Thread mapping
  • Translation lookaside buffer

ASJC Scopus subject areas

  • Theoretical Computer Science
  • Software
  • Computer Science Applications
  • Computer Networks and Communications
  • Computational Theory and Mathematics


Dive into the research topics of 'Communication-aware thread mapping using the translation lookaside buffer'. Together they form a unique fingerprint.

Cite this