多核cache亲和性_附件.docx

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
多核cache亲和性综述概述利用亲和性这种特性可以降低进程转移带来的性能损失,提高cache命中率,同时利用该特性可以充分利用片上所有的cache来加速串行程序的执行。但要利用该特性需要操作系统调度程序的支持,同时要求有一定的硬件的支持。经过研究,cache亲和性对单核多处理器的性能提升不大,但对于多核多处理器能带来很大的性能提升。该文主要介绍了亲和性的定义,亲和性对性能的影响,最后怎样利用操作系统及硬件支持来充分利用该特性。引言芯片多处理器(CMP)的已成为当今高性能的多处理器主要形式之一。对影响性能的关键因素之一便是高速缓存的利用率。传统的对于高速缓存,每个核心是有自己的私有L1高速缓存,并在同一芯片上所有核心共享的较大二级缓存。为了提高缓存利用率,我们需要考虑在缓存中的数据重用,在所有核心上共享缓存缓存访问的争夺,和私有缓存间的连贯性缺失率。亲和性定义:亲和性指进程在给定的cpu或cpu核上运行尽量长的时间而不被转移到别的处理器的倾向性。在Linux里, 内核进程调度器天生就具有软亲和性(soft affinity) 的特性,这意味着进程通常不会在处理器或者内核之间频繁迁移。这种情况是我们希望的,因为进程迁移的频率低意味着产生的负载小,具有更好的性能表现。在对称多处理(SMP)上,操作系统的进程调度程序必须决定每个CPU上要运行哪些进程。这带来两项挑战:调度程序必须充分利用所有处理器,避免当一个进程已就绪等待运行,却有一个CPU核心闲置一旁,这显然会降低效率。然而一个进程一旦被安排在某个CPU核心上运行,进程调度程序也会将它安排在相同的CPU核心上运行。这会使性能更好,因为将一个进程从一个处理器迁移到另一个处理器是要付出性能代价的。一般进程会在相同的核或CPU上运行,只会在负载极不均衡的情况下从一个核移往另一个核。这样可以最小化缓存区迁移效应,同时保证系统中处理器负载均衡。亲和性程序性能的影响多核处理器的处理器与处理器之间的cache亲和力是通过观察缓存方面积累了一定的进程的状态,即数据或指令后才进行考察的。利用高速缓存的亲和力特性是由操作系统的调度策略实现的:他们倾向于重新安排流程,使可能时尽量使程序运行在最近使用的处理器。当使用高亲和度的处理器时,高速缓存的状态都基本上已就绪,可以提高效率。在常规(unicore)多处理器系统中,提高cache的亲和力可以提高性能。类似的通过对多核处理器性能改进的观察,是有效多核调度算法设计的关键。我们的研究分析了在多核处理器的高速缓存亲和性对性能的影响。我们发现,在多核单处理器的性能提升并不显著。与此同时,在多核多处理器的性能提升则是是相当明显。我们评估了在多核处理器的cache亲和力对性能的影响。我们研究了多核心单处理器和多核多处理器,无论是利用L1高速缓存的亲和力和利用二级缓存亲和力的影响。我们假定该缓存的亲和力不影响多核处理器的性能:对于多核单处理器- 因为重装的L1缓存状态代价很低,在多核多处理器-由于缓存的共享,处理器间二级缓存的亲和力是普遍偏低的。我们的第一个假设得到了确认。高速缓存的亲和力对多核单处理器并没有对程序性能产生影响,调度时间量小,二级缓存保留量低,即使在L1缓存是比较大的情况下也是这样。尽管从利用高速缓存的亲和力对多核多处理器性能改善的上限值比unicore多处理器低,但仍然显著:平均11%和最高27%。这种亲和力对多核多处理器是值得考虑的。我们的结论是cache亲和性在多核调度算法将不会对多核单处理器系统产生性能的差异,但将改善多核多处理器的性能。Torrellas等研究亲和度感知调度对传统(unicore)多处理器性能的影响[2]。根据他们的研究,亲和度感知调度算法降低缓存缺失多达7-36%,同时10%更高的性能。Torrellas的研究,衡量一个特定的亲和力感知的调度算法对性能的影响。Constantinou等考察在多核处理器各核心间迁移的过程中性能的影响[3]。他们研究预先将核心L1指令和数据高速缓存进行处理,再将进程迁移到新的核心上的性能影响(而不是直接转移)。对数据cache进行预处理提高了缓存的核心和迁移过程中的亲和力。因此,在Constantinou的研究实验,有效地测量L1缓存的亲和力,在Constantinou的研究更好的转移友好的硬件体系结构。利用操作系统对cache亲和性利用要利用cache亲和性提高程序的性能要靠操作系统的调度实现。多核的设计使得多线程的并行运行成为可能,但为了提高程序的性能,在如上图所示的CPU结构中,[6]中建立了利用cache亲和性的实时系统调度算法。多核架构在一个芯片上放置多处理单元,大多数这样的芯片核心共享部分或所有片上的cache。针对之前的工作提出了改善软实时调度时实时工作负载下缓存性能的方法,提出另

文档评论(0)

kehan123 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档