Skip to main content
Department of Information Technology
Uppsala Architecture Research Team

Shared Resource Sensitivity

This research quantitatively answers the question: "How much does the shared cache or bandwidth allocation affect application performance and resource usage." To do so, we use run an application that steals the shared resource and measure the resulting impact on the target application. By running such an application we effectively add a knob to the machine that allows us to control the amount of the shared resource available to the application. Since we capture this data on commodity hardware, we capture all the effects of the hardware and operating systems, including prefetching, VM, DRAM behavior, etc. However, to make this method accurate, we have to be careful to not steal any resources other than the shared resource we are interested in.

Bandwidth Bandit: Stealing Shared Bandwidth

The Bandwidth Bandit steals system bandwidth by accessing data in carefully chosen sequential and random access patterns that avoid polluting the cache hierarchy. (E.g., we design the pattern to ensure that we only use a very limited number of sets in the cache.) This work demonstrates that there is little correlation between bandwidth consumption and sensitivity, by quantitatively analyze whether an application is latency sensitive (e.g., slows down as soon as there is any bandwidth contention) or bandwidth sensitive (e.g., only slows down when bandwidth is exhausted).

bandit_results.png

Using Bandit Data to predict multicore scaling for bandwidth-bound applications. Poster

Cache Pirate: Stealing Shared Cache

The Cache Pirate steals shared cache by accessing data in a carefully chosen access pattern to maximize the likelihood that it will keep data in the cache. To ensure that the pirate has stolen the correct amount of cache, we monitor its shared cache miss ratio: as long as the pirate is not missing in the cache we know it must have its full data set in the cache, and therefore we know how much cache it has stolen and that it is not consuming off-chip bandwidth. The cache quantitative cache sensitivity measurements provided by the Cache Pirate give detailed data on how an application's performance and bandwidth demands change with cache allocation. For cache-limited applications, this data can also accurately predict multicore scaling.

pirate_results.png

Using Pirate Data to predict multicore scaling for cache-bound applications. Poster

The Cache Pirate was chosen as the Best Paper of ICPP 2011.

Updated  2013-07-04 11:41:51 by David Black-Schaffer.