Software and Hardware Techniques for Mitigating the Multicore Interference Problem
- Author(s): Gupta, Anshuman
- et al.
Multicore processors are ubiquitous in servers and have started dominating other domains, such as embedded systems. In order to increase utilization, these multicore processors are sharing memory resources among an increasing number of cores. This sharing leads to memory interference, which causes significant non-uniform slowdowns of concurrent applications, such as 12X on 32- core processors and 2.8X on 4-core processors. The distorting effect of interference on execution quality has posed new challenges for these consolidated systems, which continue to use legacy software that relies on application CPU Time to infer progress. Novel solutions are required to improve our reasoning about myriad properties from fairness, to QoS, to throughput optimality in the increasingly concurrent computing environments, such as smartphones and datacenters, under the influence of interference. There are three key challenges posed by interference on multicore processors: How do we measure, control, and improve execution quality of concurrent applications? This dissertation proposes three novel solutions to tackle these problems. First, Quality Time, a metric that represents application progress on a standalone processor and can be used to measure execution quality. Second, Quality Tables, a data structure that provides execution qualities for different system configurations and can be used to control execution qualities. And third, SQOT, a data structure to determine resource allocations that improve execution qualities. I present scalable software and hardware implementations of these techniques that can handle live applications. The software techniques are bundled into Qtoolkit, a publicly available package, while the hardware techniques are demonstrated using TimeCube, a manycore processor. I present a detailed evaluation of these mechanisms, which show that we can measure Quality Time with just 1% error in hardware and about 8% error in software. By using the resource management techniques proposed, we can control the QoS provided to application in hardware with just 1% error and improve throughput by 36% in hardware, using SQOT, and 5.76% in software, using Qplacer. The area, energy, and performance overheads for these mechanisms are very low. Results of the experimental evaluation show that these solutions can be practically implemented in both software as well as hardware to attack the interference problem, and strongly argue for implementing these techniques in consolidated multicore systems of the future