同步原语的按需扩展制造技术

技术编号:16048929 阅读:32 留言:0更新日期:2017-08-20 08:37
公开用于提供非高速缓存感知同步原语至高速缓存感知形式的按需扩展的技术和系统。扩展可以在为了性能和吞吐量目的而变得有必要这样做的时候按需发生。同步原语的扩展可以至少部分基于由于针对非高速缓存感知同步原语的操作而导致的高速缓存线争用的等级。采用扩展(高速缓存感知)形式的同步原语可以利用将个别高速缓存线分配给其中实现同步原语的多处理器系统的相应处理器的数据结构来表示。一旦被扩展,高速缓存感知同步原语可以被收缩至其非高速缓存感知形式。

【技术实现步骤摘要】
【国外来华专利技术】同步原语的按需扩展
技术介绍
改善多处理器计算机系统的性能位于计算机体系结构和操作系统设计的最前沿。为此,操作系统典型地被设计成支持具有能够并发地(concurrently)运行在单独的处理器上以访问共享存储器(sharedmemory)(例如主存储器)中的对象或数据结构的进程(process)或线程(thread)的多处理器系统。为了支持这样的多处理器系统,同步原语(primitive)典型地由操作系统采用来避免竞态条件(racecondition)。竞态条件发生在多个线程同时访问和操纵相同的对象或数据结构的时候,其可以导致有缺陷的数据。同步原语在一般术语中可以强制执行(enforce)阻止线程在另一线程结束访问对象之前独家(exclusively)访问该对象的策略。这个策略的强制执行通过管理这些线程的并发交互来同步这些线程对于该对象的访问,因而避免竞态条件。当给定线程获得同步原语以便访问共享存储器中的对象时,该线程可以执行典型地牵涉修改数据的所谓的“联锁操作(interlockedoperation)”。联锁操作是要求共享存储器的高速缓存(cache)线由正在执行该线程的处理器“拥有”的原子指令。换句话说,正在针对当前驻留在另一处理器的高速缓存中的数据执行联锁操作的线程必须首先将高速缓存线带到该线程正在其上执行的处理器的本地高速缓冲存储器以便针对该数据操作。当大量的处理器(例如数百的处理器)正在并发地执行正执行联锁操作的线程时(例如当这些线程正尝试获得同步原语以便访问数据时),称为“高速缓存线争用(cache-linecontention)”的现象发生。高速缓存线争用牵涉在不同的处理器之间来回“查验(ping)”或“弹跳(bounce)”高速缓存线,以尝试由每一个处理器拥有高速缓存线。高速缓存线争用在多处理器系统的吞吐量(即,在给定单位的时间中处理的任务的数量)方面是非常昂贵的,这是因为处理器最终花费其大部分的时间来回弹跳高速缓存线而非处理任务。结果,这样的多处理器系统不是可缩放的(即,高速缓存线争用随着更多的处理器被添加而恶化,这负面地影响系统的吞吐量)。用于在共享数据结构中缓解高速缓存线争用的一种合适方案是实现在每个处理器(per-processor)或每个节点(per-node)基础上分配共享存储器的高速缓存线的可缩放(“高速缓存感知(cache-aware)”)同步原语。通过为每一个处理器/节点分配高速缓存线,能够缓解高速缓存线争用。然而,相对于用于非高速缓存感知同步原语的少量存储器而言,具有大量处理器的系统要求高内存使用来保持(maintain)这样的高速缓存感知同步原语。结果,开发人员被迫在由于使用高速缓存感知同步原语而引起的可缩放性改善或由于使用非高速缓存感知同步原语而引起的内存益处之间选择。
技术实现思路
在本文描述用于提供非高速缓存感知同步原语至高速缓存感知形式的按需扩展的技术和系统。尽管利用高速缓存感知同步原语提供了可缩放性益处,但是认识到:高速缓存线争用是间歇性发生。因而,高速缓存感知同步原语在对于增加吞吐量而言实际上不需要其时可能有时占据宝贵的内存占用(memoryfootprint)。同时,也认识到:在没有努力缓解高速缓存线争用的高速缓存感知同步原语的情况下,即使争用间歇性地出现,具有并行运行的许多(例如数百)处理器的多处理器系统也有可能表现不佳。在一些实施例中,为多处理器系统提供非高速缓存感知同步原语,其中非高速缓存感知同步原语被配置成在为了性能和吞吐量目的而有必要这样做时扩展至高速缓存感知形式。为了确定何时有必要扩展非高速缓存感知同步原语,该系统可以确定由于针对非高速缓存感知同步原语的操作而导致的高速缓存线争用的等级。换句话说,针对非高速缓存感知同步原语的操作的“成本”可以采用可量化的方式来测量,并且那个测量的成本可以与阈值进行比较,其中阈值在被超过时触发非高速缓存感知同步原语至高速缓存感知形式的扩展,这导致具有每个处理器/节点状态的同步原语,其将个别高速缓存线分配给多处理器计算机系统的相应处理器。在一些实施例中,同步原语一旦被扩展则可以被收缩(contract)或被恢复(revert)到非高速缓存感知形式。这样的收缩可以发生在自从同步原语被扩展以来时间周期(periodoftime)已流逝之后和/或在确定高速缓存线争用已减弱(即,降至其中不再需要高速缓存感知同步原语的等级)之后。在本文描述的技术和系统提供由于可扩展同步原语的可用性而引起的可缩放性,其中可扩展同步原语在被扩展时提供高的性能和吞吐量。这些可扩展同步原语由于可以在任何给定时间上被扩展的有限数量的同步原语而在内存成本方面也是低的。利用本文的实施例所提供的益处虑及具有高乘法(highlymultiplicative)数据结构(例如具有成千上万的文件、句柄、注册表键(registrykey)等等的数据结构)的可扩展同步原语的实现方式。因而,在本文描述的技术和系统有可能导致性能和吞吐量的显著改善,同时从内存成本角度来看是便宜的。提供这个概述部分来以简化形式介绍下面在具体描述部分中进一步描述的概念的选择。这个概要部分并不旨在识别所请求保护的主题的关键特性或本质特性,也不旨在被用于限制所请求保护的主题的范畴。附图说明参考附图来描述详细描述部分。在附图中,参考号的最左侧(多个)数字识别该参考号首次出现在其中的附图。在不同的附图中相同的参考号指示类似的或相同的项目。图1举例说明用于实现可扩展同步原语的示例多处理器计算机系统。图2是举例说明代表可扩展同步原语的示例数据结构的示意图。图3是用于按需扩展非高速缓存感知同步原语的说明性进程的流程图。图4是用于确定是否高速缓存线争用触发非高速缓存感知同步原语的扩展的说明性进程的流程图。图5是用于扩展非高速缓存感知同步原语的更详细的说明性进程的流程图。图6是用于收缩高速缓存感知同步原语的说明性进程的流程图。具体实施方式本公开的实施例特别涉及用于提供非高速缓存感知同步原语至高速缓存感知形式的按需扩展的技术和系统。虽然在本文呈现的许多示例依据锁(lock)来描述,但是在本文公开的实施例可以利用任何合适类型的包括但不限于纲要引用(rundownreference)、自旋锁、互斥锁(mutex)等等的同步原语来实现。在本文描述的技术可以采用许多方式来实现。下面参考以下附图来提供示例实现方式。示例多处理器计算机系统图1举例说明用于实现可扩展同步原语的示例多处理器计算机系统100。例如,多处理器系统100可以表示一个或多个计算机器,其包括但不限于一个或多个服务器、一个或多个数据中心系统、一个或多个个人计算机或者(多个)任何其他合适的计算设备,而无论计算设备是移动的还是被定位。系统100只是一个示例多处理器系统来实现在本文描述的技术,以致在本文描述的技术并不限于使用图1的系统的执行。多处理器系统100可以包括多个处理器102(1)、102(2)、102(3)、……、102(N)(共同地,102),其可以表示任何合适类型的执行单元,诸如中央处理单元(CPU)、核心和/或节点,这取决于多处理器系统100的实现细节。例如,任何个别处理器102可以表示单个CPU、具有被配置成执行单独线程的多个处理器或本文档来自技高网
...
同步原语的按需扩展

【技术保护点】
一种方法,包括:在具有共享存储器的多处理器计算机系统中提供非高速缓存感知同步原语;确定由于针对非高速缓存感知同步原语的操作而导致的高速缓存线争用的等级;和响应于高速缓存线争用的等级满足或超过阈值的确定,将非高速缓存感知同步原语变成高速缓存感知同步原语,其中所述高速缓存感知同步原语将所述共享存储器的个别高速缓存线分配给所述多处理器计算机系统的相应处理器。

【技术特征摘要】
【国外来华专利技术】2014.10.20 US 14/5189951.一种方法,包括:在具有共享存储器的多处理器计算机系统中提供非高速缓存感知同步原语;确定由于针对非高速缓存感知同步原语的操作而导致的高速缓存线争用的等级;和响应于高速缓存线争用的等级满足或超过阈值的确定,将非高速缓存感知同步原语变成高速缓存感知同步原语,其中所述高速缓存感知同步原语将所述共享存储器的个别高速缓存线分配给所述多处理器计算机系统的相应处理器。2.根据权利要求1所述的方法,其中确定高速缓存线争用的等级包括:在所述操作的执行期间测量参数,所述参数至少包括循环计数、InterlockedCompareExchange重试的数量或所述操作的频率之一。3.根据权利要求1所述的方法,其中确定高速缓存线争用的等级包括:收集非高速缓存感知同步原语的统计数据,所述统计数据包括在时间周期上在针对非高速缓存感知同步原语的操作的执行期间采取的参数的测量;和至少部分基于所收集的统计数据来计算所述参数的统计值,以及其中确定高速缓存线争用的等级满足或超过阈值包括:将所述参数的统计值与所述参数的基线值进行比较,其中所述基线值表示在没有高速缓存线争用的情况下执行所述操作时所述参数的值。4.根据权利要求3所述的方法,其中所述参数的基线值至少以下之一:(i)通过在所述多处理器计算机系统的启动时间上所述操作之中的一个或多个操作的执行期间测量所述参数来计算;(ii)在所述多处理器计算机系统内静态地被硬编码;或者(iii)由所述多处理器计算机系统的管理员来配置。5.根据权利要求3所述的方法,其中所述统计数据进一步包括:所述非高速缓存感知同步原语在所述时间周期上的独家获得的数量或独家释放的数量;和所述非高速缓存感知同步原语在所述时间周期上的共享获得的数量或共享释放的数量,其中所述扩展以独家获得或释放的数量与共享获得或释放的数量之比率低于阈值比为条件。6.根据权利要求1所述的方法,其中所述非高速缓存感知同步原语是锁。7.根据权利要求1所述的方法,...

【专利技术属性】
技术研发人员:M伊冈Y巴克CP克利恩汉斯SAH拉扎TJ乌特耶斯NK辛赫
申请(专利权)人:微软技术许可有限责任公司
类型:发明
国别省市:美国,US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1