ULCC: A user-level facility for optimizing shared cache performance on multicores

Xiaoning Ding, Kaibo Wang, Xiaodong Zhang

Research output: Chapter in Book/Report/Conference proceedingConference contribution

17 Scopus citations

Abstract

Scientific applications face serious performance challenges on multicore processors, one of which is caused by access contention in last level shared caches from multiple running threads. The contention increases the number of long latency memory accesses, and consequently increases application execution times. Optimizing shared cache performance is critical to reduce significantly execution times of multi-threaded programs on multicores. However, there are two unique problems to be solved before implementing cache optimization techniques on multicores at the user level. First, available cache space for each running thread in a last level cache is difficult to predict due to access contention in the shared space, which makes cache conscious algorithms for single cores ineffective on multicores. Second, at the user level, programmers are not able to allocate cache space at will to running threads in the shared cache, thus data sets with strong locality may not be allocated with sufficient cache space, and cache pollution can easily happen. To address these two critical issues, we have designed ULCC (User Level Cache Control), a software runtime library that enables programmers to explicitly manage and optimize last level cache usage by allocating proper cache space for different data sets of different threads. We have implemented ULCC at the user level based on a page-coloring technique for last level cache usage management. By means of multiple case studies on an Intel multicore processor, we show that with ULCC, scientific applications can achieve significant performance improvements by fully exploiting the benefit of cache optimization algorithms and by partitioning the cache space accordingly to protect frequently reused data sets and to avoid cache pollution. Our experiments with various applications show that ULCC can significantly improve application performance by nearly 40%.

Original languageEnglish (US)
Title of host publicationPPoPP'11 - Proceedings of the 2011 ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming
Pages103-112
Number of pages10
DOIs
StatePublished - Mar 24 2011
Externally publishedYes
Event16th ACM Symposium on Principles and Practice of Parallel Programming, PPoPP'11 - San Antonio, TX, United States
Duration: Feb 12 2011Feb 16 2011

Publication series

NameProceedings of the ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPOPP

Other

Other16th ACM Symposium on Principles and Practice of Parallel Programming, PPoPP'11
CountryUnited States
CitySan Antonio, TX
Period2/12/112/16/11

All Science Journal Classification (ASJC) codes

  • Software

Keywords

  • Cache
  • Multicore
  • Scientific computing

Fingerprint Dive into the research topics of 'ULCC: A user-level facility for optimizing shared cache performance on multicores'. Together they form a unique fingerprint.

Cite this