首页> 外文期刊>ACM SIGPLAN Notices: A Monthly Publication of the Special Interest Group on Programming Languages >ULCC: A User-Level Facility for Optimizing Shared Cache Performance on Multicores
【24h】

ULCC: A User-Level Facility for Optimizing Shared Cache Performance on Multicores

机译:ULCC:一种用于优化多核共享缓存性能的用户级设施

获取原文
获取原文并翻译 | 示例
获取外文期刊封面目录资料

摘要

Scientific applications face serious performance challenges on mul-ticore processors, one of which is caused by access contention in last level shared caches from multiple running threads. The contention increases the number of long latency memory accesses, and consequently increases application execution times. Optimizing shared cache performance is critical to significantly reduce execution times of multi-threaded programs on multicores. However, there are two unique problems to be solved before implementing cache optimization techniques on multicores at the user level. First, available cache space for each running thread in a last level cache is difficult to predict due to access contention in the shared space, which makes cache conscious algorithms for single cores ineffective on multicores. Second, at the user level, programmers are not able to allocate cache space at will to running threads in the shared cache, thus data sets with strong locality may not be allocated with sufficient cache space, and cache pollution can easily happen. To address these two critical issues, we have designed ULCC (User Level Cache Control), a software runtime library that enables programmers to explicitly manage and optimize last level cache usage by allocating proper cache space for different data sets of different threads. We have implemented ULCC at the user level based on a page-coloring technique for last level cache usage management. By means of multiple case studies on an Intel mul-ticore processor, we show that with ULCC, scientific applications can achieve significant performance improvements by fully exploiting the benefit of cache optimization algorithms and by partitioning the cache space accordingly to protect frequently reused data sets and to avoid cache pollution. Our experiments with various applications show that ULCC can significantly improve application performance by nearly 40%.
机译:科学应用程序在多核处理器上面临严重的性能挑战,其中之一是来自多个运行线程的最后一级共享缓存中的访问争用引起的。争用增加了长等待时间内存访问的次数,因此增加了应用程序的执行时间。优化共享缓存性能对于大幅减少多核上多线程程序的执行时间至关重要。但是,在用户级别在多核上实施缓存优化技术之前,有两个要解决的独特问题。首先,由于共享空间中的访问争用,很难预测上一级缓存中每个运行线程的可用缓存空间,这使单核的缓存感知算法在多核上无效。其次,在用户级别,程序员无法随意为共享缓存中的运行线程分配缓存空间,因此,本地性强的数据集可能无法分配足够的缓存空间,并且很容易发生缓存污染。为了解决这两个关键问题,我们设计了ULCC(用户级别缓存控制),这是一个软件运行时库,使程序员可以通过为不同线程的不同数据集分配适当的缓存空间,来显式管理和优化最后一级缓存的使用。我们已经基于页面着色技术在用户级别实现了ULCC,以进行最后一级的缓存使用管理。通过在英特尔多核处理器上进行的多个案例研究,我们表明,借助ULCC,科学应用程序可以通过充分利用缓存优化算法的优势并相应地划分缓存空间来保护经常重复使用的数据集,从而显着提高性能。避免缓存污染。我们对各种应用程序的实验表明,ULCC可以显着提高应用程序性能近40%。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号