The Scalable Commutativity Rule: Designing Scalable Software for Multicore Processors

The Scalable Commutativity Rule: Designing Scalable Software for Multicore Processors - Clements et al. 2013 The way you design your interface (API) has a significant impact on the scalability you can achieve with any implementation. Clements et al. define the Scalable Commutativity Rule - which will look familiar to those who study distributed systems - ... Continue Reading

Eraser: A dynamic data race detector for multi-threaded programs

Eraser: A dynamic data race detector for multi-threaded programs - Savage et al. 1997 Debugging a multithreaded program can be difficult. Simple errors in synchronization can produce timing-dependent data races that can take weeks or months to track down. Eraser dynamically detects data races in multi-threaded programs. There are two basic approaches to doing this, ... Continue Reading