{"title":"Makespan-Optimal Cache Partitioning","authors":"Pan Lai, Rui Fan","doi":"10.1109/MASCOTS.2013.28","DOIUrl":null,"url":null,"abstract":"In current multicore systems, cache memory is shared between multiple concurrent threads. Allocating the proper amount of cache to each thread is crucial to achieving high performance. Cache management in many existing systems is based on the least recently used replacement policy, which can lead to adverse contention between threads for shared cache space. Cache partitioning is a technique that reserves a certain amount of cache for each thread, and has been shown to work well in practice. We introduce the problem of determining the optimal cache partitioning to minimize the make span for completing a set of tasks. We analyze the problem using a model that generalizes a widely used empirical model for cache miss rates. Our first contribution is to give a mathematical characterization of the properties satisfied by an optimal partitioning. Second, we present an algorithm that finds a 1 +\\epsilon approximation to the optimal partitioning in O(n log \\frac{n}{\\epsilon}log\\frac{n}{\\epsilon p}) time, where n is the number of tasks and p is a value that depends on the optimal solution. We compare our algorithm with several partitioning schemes used in practice or proposed in the literature. Simulations show that our algorithm achieves between 22-59% better make span compared to these algorithms.","PeriodicalId":385538,"journal":{"name":"2013 IEEE 21st International Symposium on Modelling, Analysis and Simulation of Computer and Telecommunication Systems","volume":"27 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2013-08-14","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"4","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"2013 IEEE 21st International Symposium on Modelling, Analysis and Simulation of Computer and Telecommunication Systems","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/MASCOTS.2013.28","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 4
Abstract
In current multicore systems, cache memory is shared between multiple concurrent threads. Allocating the proper amount of cache to each thread is crucial to achieving high performance. Cache management in many existing systems is based on the least recently used replacement policy, which can lead to adverse contention between threads for shared cache space. Cache partitioning is a technique that reserves a certain amount of cache for each thread, and has been shown to work well in practice. We introduce the problem of determining the optimal cache partitioning to minimize the make span for completing a set of tasks. We analyze the problem using a model that generalizes a widely used empirical model for cache miss rates. Our first contribution is to give a mathematical characterization of the properties satisfied by an optimal partitioning. Second, we present an algorithm that finds a 1 +\epsilon approximation to the optimal partitioning in O(n log \frac{n}{\epsilon}log\frac{n}{\epsilon p}) time, where n is the number of tasks and p is a value that depends on the optimal solution. We compare our algorithm with several partitioning schemes used in practice or proposed in the literature. Simulations show that our algorithm achieves between 22-59% better make span compared to these algorithms.
在当前的多核系统中,缓存内存在多个并发线程之间共享。为每个线程分配适当数量的缓存对于实现高性能至关重要。许多现有系统中的缓存管理基于最近最少使用的替换策略,这可能导致线程之间对共享缓存空间的不利争用。缓存分区是一种为每个线程保留一定数量的缓存的技术,在实践中表现良好。我们介绍了确定最佳缓存分区以最小化完成一组任务的make跨度的问题。我们使用一个模型来分析这个问题,这个模型推广了一个广泛使用的缓存缺失率的经验模型。我们的第一个贡献是给出最优划分所满足的性质的数学表征。其次,我们提出了一种算法,该算法在O(n log \frac{n}{\epsilon} log \frac{n}{\epsilon p})时间内找到最优分区的1 + \epsilon近似值,其中n是任务的数量,p是依赖于最优解的值。我们将我们的算法与实践中使用或在文献中提出的几种划分方案进行了比较。仿真结果表明,我们的算法达到了22-59之间% better make span compared to these algorithms.