多核cache亲和性.docx

多核cache亲和性.docx

ID:29037009

大小:43.07 KB

页数:5页

时间:2018-12-16

多核cache亲和性.docx_第1页
多核cache亲和性.docx_第2页
多核cache亲和性.docx_第3页
多核cache亲和性.docx_第4页
多核cache亲和性.docx_第5页
资源描述:

《多核cache亲和性.docx》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、多核cache亲和性综述概述利用亲和性这种特性可以降低进程转移带来的性能损失,提高cache命中率,同时利用该特性可以充分利用片上所有的cache来加速串行程序的执行。但要利用该特性需要操作系统调度程序的支持,同时要求有一定的硬件的支持。经过研究,cache亲和性对单核多处理器的性能提升不大,但对于多核多处理器能带来很大的性能提升。该文主要介绍了亲和性的定义,亲和性对性能的影响,最后怎样利用操作系统及硬件支持来充分利用该特性。引言芯片多处理器(CMP)的已成为当今高性能的多处理器主要形式之一。对影响性能的关键

2、因素之一便是高速缓存的利用率。传统的对于高速缓存,每个核心是有自己的私有L1高速缓存,并在同一芯片上所有核心共享的较大二级缓存。为了提高缓存利用率,我们需要考虑在缓存中的数据重用,在所有核心上共享缓存缓存访问的争夺,和私有缓存间的连贯性缺失率。亲和性定义:亲和性指进程在给定的cpu或cpu核上运行尽量长的时间而不被转移到别的处理器的倾向性。在Linux里,内核进程调度器天生就具有软亲和性(softaffinity)的特性,这意味着进程通常不会在处理器或者内核之间频繁迁移。这种情况是我们希望的,因为进程迁移的频

3、率低意味着产生的负载小,具有更好的性能表现。在对称多处理(SMP)上,操作系统的进程调度程序必须决定每个CPU上要运行哪些进程。这带来两项挑战:调度程序必须充分利用所有处理器,避免当一个进程已就绪等待运行,却有一个CPU核心闲置一旁,这显然会降低效率。然而一个进程一旦被安排在某个CPU核心上运行,进程调度程序也会将它安排在相同的CPU核心上运行。这会使性能更好,因为将一个进程从一个处理器迁移到另一个处理器是要付出性能代价的。一般进程会在相同的核或CPU上运行,只会在负载极不均衡的情况下从一个核移往另一个核。这

4、样可以最小化缓存区迁移效应,同时保证系统中处理器负载均衡。亲和性程序性能的影响多核处理器的处理器与处理器之间的cache亲和力是通过观察缓存方面积累了一定的进程的状态,即数据或指令后才进行考察的。利用高速缓存的亲和力特性是由操作系统的调度策略实现的:他们倾向于重新安排流程,使可能时尽量使程序运行在最近使用的处理器。当使用高亲和度的处理器时,高速缓存的状态都基本上已就绪,可以提高效率。在常规(unicore)多处理器系统中,提高cache的亲和力可以提高性能。类似的通过对多核处理器性能改进的观察,是有效多核调度

5、算法设计的关键。我们的研究分析了在多核处理器的高速缓存亲和性对性能的影响。我们发现,在多核单处理器的性能提升并不显著。与此同时,在多核多处理器的性能提升则是是相当明显。我们评估了在多核处理器的cache亲和力对性能的影响。我们研究了多核心单处理器和多核多处理器,无论是利用L1高速缓存的亲和力和利用二级缓存亲和力的影响。我们假定该缓存的亲和力不影响多核处理器的性能:对于多核单处理器-因为重装的L1缓存状态代价很低,在多核多处理器-由于缓存的共享,处理器间二级缓存的亲和力是普遍偏低的。我们的第一个假设得到了确认。

6、高速缓存的亲和力对多核单处理器并没有对程序性能产生影响,调度时间量小,二级缓存保留量低,即使在L1缓存是比较大的情况下也是这样。尽管从利用高速缓存的亲和力对多核多处理器性能改善的上限值比unicore多处理器低,但仍然显著:平均11%和最高27%。这种亲和力对多核多处理器是值得考虑的。我们的结论是cache亲和性在多核调度算法将不会对多核单处理器系统产生性能的差异,但将改善多核多处理器的性能。Torrellas等研究亲和度感知调度对传统(unicore)多处理器性能的影响[2]。根据他们的研究,亲和度感知调度

7、算法降低缓存缺失多达7-36%,同时10%更高的性能。Torrellas的研究,衡量一个特定的亲和力感知的调度算法对性能的影响。Constantinou等考察在多核处理器各核心间迁移的过程中性能的影响[3]。他们研究预先将核心L1指令和数据高速缓存进行处理,再将进程迁移到新的核心上的性能影响(而不是直接转移)。对数据cache进行预处理提高了缓存的核心和迁移过程中的亲和力。因此,在Constantinou的研究实验,有效地测量L1缓存的亲和力,在Constantinou的研究更好的转移友好的硬件体系结构。利用

8、操作系统对cache亲和性利用要利用cache亲和性提高程序的性能要靠操作系统的调度实现。多核的设计使得多线程的并行运行成为可能,但为了提高程序的性能,在如上图所示的CPU结构中,[6]中建立了利用cache亲和性的实时系统调度算法。多核架构在一个芯片上放置多处理单元,大多数这样的芯片核心共享部分或所有片上的cache。针对之前的工作提出了改善软实时调度时实时工作负载下缓存性能的方法,提出另外两个研

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。