The Scalable Commutativity Rule: Designing Scalable Software for Multicore Processors

作者:Clements Austin T*; Kaashoek M Frans; Kohler Eddie; Morris Robert T; Zeldovich Nickolai
来源:Communications of the ACM, 2017, 60(8): 83-90.

摘要

Developing software that scales on multicore processors is an inexact science dominated by guesswork, measurement, and expensive cycles of redesign and reimplementation. Current approaches are workload-driven and, hence, can reveal scalability bottlenecks only for known workloads and available software and hardware. This paper introduces an interface-driven approach to building scalable software. This approach is based on the scalable commutativity rule, which, informally stated, says that whenever interface operations commute, they can be implemented in a way that scales. We formalize this rule and prove it correct for any machine on which conflict-free operations scale, such as current cache-coherent multicore machines. The rule also enables a better design process for scalable software: programmers can now reason about scalability from the earliest stages of interface definition through software design, implementation, and evaluation.

  • 出版日期2017-8