How to Stop Under-Utilization and Love Multicores

Designing scalable transaction processing systems on modern hardware has been a challenge for almost a decade. Hardware trends oblige software to overcome three major challenges against systems scalability: (1) Exploiting the abundant thread-level parallelism provided by multicores, (2) Achieving predictively efficient execution despite the variability in communication latencies among cores on multisocket multicores, and (3) Taking advantage of the aggressive micro-architectural features. In this tutorial, we shed light on the above three challenges and survey recent proposals to alleviate them. First, we present a systematic way of eliminating scalability bottlenecks based on minimizing unbounded communication and show several techniques that apply the presented methodology to minimize bottlenecks in major components of transaction processing systems. Then, we analyze the problems that arise from the non-uniform nature of communication latencies on modern multisockets and ways to address them for systems that already scale well on multicores. Finally, we examine the sources of under-utilization within a modern processor and present insights and techniques to better exploit the micro-architectural resources of a processor by improving cache locality at the right level.

Published in:
Proceedings of the 2014 ACM SIGMOD International Conference on Management of Data, 189--192
Presented at:
2014 ACM SIGMOD International Conference on Management of Data, Snowbird, Utah, USA, June 22-27, 2014

 Record created 2014-02-14, last modified 2018-01-28

External links:
Download fulltextFulltext
Download fulltextn/a
Rate this document:

Rate this document:
(Not yet reviewed)