多核调度:亲和性与一致性感知的优化方案
1. 引言
在过去几年里,多核处理器在多个方面得到了广泛研究。与多处理器和分布式共享内存系统不同,多核处理器将多个带有分层共享缓存的核心集成在一块芯片上。程序的内存访问会占据应用程序执行成本的一部分,因此降低这一成本可以提升用户程序的性能。
在并行应用中,存在一些被应用线程共同访问的数据块。通过提高线程亲和性来降低应用程序线程间对公共块的访问成本,是提高应用性能和缩短执行时间的有效解决方案之一。线程亲和性是指将具有公共数据的线程放置在共享内存模块上,这会增加线程间内存占用的重叠度。
本文旨在为多线程应用寻找一种线程调度方案,以提高多核内存层次结构中核心和共享缓存内的数据重用率,降低核心与非共享缓存之间的亲和强度,并减少公共块的一致性成本。我们知道,并行应用的线程可以以多种形式映射到并行机器上。本文提出了一个分析模型,用于估计基于亲和性和一致性的线程调度在多核系统上的运行成本。该模型用于在考虑的多核机器上找到合适的线程调度,从而降低程序的内存访问成本。所得到的调度方案将用于应用程序后续运行时的线程到核心的映射。
公共块的一致性是影响内存访问成本的重要指标之一。作者试图通过线程亲和性来降低块的一致性成本。因此,所提出的方法在估计内存访问成本时,会考虑线程间公共块的数量以及对公共块的访问类型。
共享缓存是多核处理器的主要资源之一,对线程亲和性和调度成本有着重要影响。因此,本文后半部分研究了分层共享缓存对所提出调度方法的影响。具体来说,会估计每个缓存级别上访问命中的公共块数量,然后利用这些信息来改进内存访问成本的估计。
2. 相关工作
线程亲和性在共享内存系统中已经