[发明专利]一种NUMA系统中的临界区执行方法及装置在审
申请号: | 201910690846.5 | 申请日: | 2019-07-29 |
公开(公告)号: | CN112306698A | 公开(公告)日: | 2021-02-02 |
发明(设计)人: | 刘海龙;周敏奇;彭锋彬;雷杰;郑程光 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F9/52 | 分类号: | G06F9/52;G06F9/50;G06F12/0813 |
代理公司: | 深圳市深佳知识产权代理事务所(普通合伙) 44285 | 代理人: | 骆苏华 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 numa 系统 中的 临界 执行 方法 装置 | ||
本申请实施例提供了一种NUMA系统中的临界区执行方法及装置,在NUMA系统中,即使并发竞争锁的线程数量很大,也不会影响锁的性能。本申请提供的NUMA系统中的临界区执行方法包括:运行于所述NUMA系统的一个节点上的第一线程确定临界区对应的目标队列,所述NUMA系统包括多个节点,其中,每个节点具有至少一个硬件队列,所述目标队列为所述多个节点的硬件队列中的一个;所述第一线程基于从所述目标队列中获取到第一数据包,执行所述临界区。
技术领域
本申请涉及信息技术领域,尤其涉及一种非统一内存访问NUMA系统中的临界区执行方法及装置。
背景技术
非统一内存访问(non-uniform memory access,NUMA)是一种多处理器的计算机内存架构,NUMA架构的计算机系统中的内存访问时间取决于内存相对于处理器的位置。采用NUMA架构的计算机系统通常包括多个NUMA节点,每个NUMA节点包含若干处理器和物理内存(被独立的内存控制器管理)。其中,处理器访问它自己的本地内存的速度比非本地内存(位于另一个节点的内存,或者是处理器之间共享的内存)需要的时间成本少。
系统中的多个线程需要对同一个共享资源执行临界区时,为了防止冲突,各个线程在执行临界区之前,需要竞争该共享资源对应的自旋锁。自旋锁是为防止多处理器并发而引入的一种锁,在任何时刻,自旋锁最多只能被一个线程持有,若一个线程试图请求获取已经被其他某一个线程持有的自旋锁,则该任务可以循环尝试获取该自旋锁,等待该自旋锁重新可用。若该自旋锁未被其他任一个线程持有,则请求获取该自旋锁的该线程可直接获得该自旋锁,以便于对该自旋锁保护的共享资源执行临界区。
由于自旋锁本身就是共享内存中的变量,在NUMA架构的计算机系统中,共享内存可能分布在任意一个节点的内存中。因此,在各个线程竞争该共享内存时,分布于多个节点中的线程都需要访问上述共享内存中的变量,对于距离上述共享内存中的变量所属的节点较远的节点上的线程来说,访问上述共享内存中的变量有着很高的访问时延,随着竞争自旋锁线程的增多,自旋锁的性能会大幅度下降。
发明内容
本申请提供了一种NUMA系统中的临界区执行方法及装置,用于减少NUMA系统中多线程并发竞争锁引起的时延开销,提升锁的性能。
第一方面,本申请实施例提供了一种非统一内存访问NUMA系统中的临界区执行方法,包括:运行于所述NUMA系统的一个节点上的第一线程确定临界区对应的目标队列,所述NUMA系统包括多个节点,其中,每个节点具有至少一个硬件队列,所述目标队列为所述多个节点的硬件队列中的一个;所述第一线程基于从所述目标队列中获取到第一数据包,执行所述临界区。
通过上述方式,将临界区绑定到NUMA节点中的特定硬件队列,并将临界区的自旋锁的申请和释放转化为硬件队列的加包和取包操作,及以能否从临界区绑定的硬件队列中获取到数据包为依据来判断是否可以执行临界区。由于NUMA节点内的硬件队列的取包消耗的时间相比于从内存中读取锁变量的时间较短,且由于不需要将获取到的数据写入cacheline中,进而系统中不会出现由于现有技术中将锁变量写入cacheline,当锁变量发生变化,而导致系统出现大量cachemiss的情况。即使在NUMA系统中并发竞争锁的线程数量很大,对锁的性能的影响也比较小。
在第一方面的一种可能的设计中,所述第一线程执行所述临界区之后,所述第一线程将第二数据包加入所述目标队列。这样,将临界区的自旋锁的释放转化为硬件队列的加包操作,其它线程后续可以从该目标队列中获取到数据包,进而执行所述临界区,而不用访问内存中的锁变量,时延大大降低了。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910690846.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种信息构建方法、装置及存储介质
- 下一篇:检测基因型的RNA环化效率的方法