在现在的CMP上的共享缓存是否对于目前的多线程应用有影响?

摘要

大多数的现代多核处理器都有一个芯片上共享内存的特征。对于多线程应用,共享减缓了同时运行的线程之间的通信延迟,但也会导致缓存冲突。

一些研究揭露了共享内存对多线程应用的影响,但他们的大多数都集中于设计和管理共享缓存,而不是系统的衡量影响。因此,先前的测量受限于模拟器的使用,使用过时的测试程序,以及考虑部分的影响因素。多核缓存对于目前的多线程应用的影响仍然只是初步地被理解。

在这篇文章,我们引导了一次对影响因素的系统测量对于两个目前商用的多核机器,使用目前发布的多核测试程序,PARSEC,一些目前在程序中,系统中和体系结构级别考虑的重要因素。测量显示了一些惊人的结果。和普遍认为的缓存共享是重要的相反,对于大多数的程序执行缓存共享既没有体现正也没有体现副作用,不管并行的类型,输入的数据集,体系结构,线程的数目,和线程到核心的匹配。在仔细的分析之后,我们发现主要的原因是目前多线程应用的发展和编译和体系架构不匹配。通过将程序转换成共享内存感知的情况,我们发现如果线程合适地放置在核上时有36%的性能提升。

分类和描述对象

并发编程,处理器优化,编译器,线程管理-调度

关键词

共享内存,线程调度,并行程序优化,多核处理器

1.介绍

现代多核处理器和传统的处理器相比,一个显著的特征就是同一个芯片上的多个计算单元之间共享缓存。共享减少了同时运行的线程之间的通信延迟,但也导致缓存冲突和线程之间的冲突。在一个具有多个芯片的系统上,共享显示出非一致性:跨越多个芯片的核不会共享缓存。

研究人员已经认识到有效使用共享缓存的重要性和开发出一系列的技术去挖掘它。例如,在操作系统(OS)研究中缓存共享感知的调度显示出通过匹配合适的程序或者线程到同一个芯片上,它能减轻同时运行线程的缓存冲突(进程或者线程运行在兄弟核上)和减少了线程间通信的延迟,较大提高了程序的性能。这些技术的有效性在一些单独的任务集[Analysis and approx-imation of optimal co-scheduling on chip multiprocessors][A study on optimally co-scheduling jobs of different lengths on chip multiprocessors][Improving performance
isolation on chip multiprocessors via an operating system scheduler][Symbiotic jobscheduling for a simultaneous multithreading processor]以及在单个应用中的并行线程[Thread clustering: sharing-aware scheduling on SMP-CMP-SMT multiprocessors]。

然而,在这个工作中,通过系统的测量,我们发现和普遍认为的重要因素相比,缓存共享只有非常有限的影响,不管是正的还是副作用,在PARSEC中应用程序的性能--一个发布的测试集“致力于将出现的任务集和代表多核处理器的下一代共享内存应用”。我们的实验显示对于这些程序,不管线程是怎样放置在核上(它们或许会共享缓存也有可能根本不共享),程序的性能仍然是相同的。

这个出人意料的结果来自系统的分析

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值