CN111752711A - 基于numa的线程处理方法、装置、设备及存储介质 - Google Patents
基于numa的线程处理方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN111752711A CN111752711A CN202010590971.1A CN202010590971A CN111752711A CN 111752711 A CN111752711 A CN 111752711A CN 202010590971 A CN202010590971 A CN 202010590971A CN 111752711 A CN111752711 A CN 111752711A
- Authority
- CN
- China
- Prior art keywords
- threads
- thread
- numa
- processor
- coupling
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/12—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
- G06F13/124—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
- G06F13/126—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine and has means for transferring I/O instructions and statuses between control unit and main processor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Multi Processors (AREA)
Abstract
本申请公开了一种基于NUMA的线程处理方法、装置、设备及存储介质。该方法的步骤包括:获取基于目标任务程序产生的线程集合;统计线程集合中与其它线程均无数据关联的独立线程;根据线程集合统计线程之间存在数据关联的耦合线程组;将独立线程平均分配至NUMA框架中的各处理器执行;将耦合线程组的耦合线程一并分配至NUMA框架中同一个处理器管理芯片对应的处理器执行。本方法保证了具有数据关联的多线程之间的同步执行,进而相对确保了基于NUMA架构执行具有多数据处理线程的任务程序时的可靠性。此外,本申请还提供一种基于NUMA的线程处理装置、设备及存储介质,有益效果同上所述。
Description
技术领域
本申请涉及云计算领域,特别是涉及一种基于NUMA的线程处理方法、装置、设备及存储介质。
背景技术
NUMA(Non Uniform Memory Access,非一致性访存)架构是目前主流的商业用服务器架构之一,一种具体的NUMA结构示意图如图1所示,如图1所示,NUMA架构采用了分布式存储器模式,且其中所有节点中的处理器能够直接访问本地的内存,还能够通过自身对应的处理器管理芯片间接访问其它节点中处理器的内存,易于管理,可扩充性好,因此得到了广泛的应用。
通过NUMA架构执行任务程序时,需要将前端系统根据任务程序创建的数据处理线程下发至NUMA架构中的处理器,进而由该处理器执行相应的数据处理线程,以此完成相应的任务程序。随着任务程序的逐渐复杂化,通过NUMA架构执行任务程序时,往往需要将任务程序划分为多个数据处理线程,而当前尚且没有基于NUMA架构执行具有多数据处理线程的任务程序的相关技术方案,因此难以确保基于NUMA架构执行具有多数据处理线程的任务程序时的可靠性。
由此可见,提供一种基于NUMA的线程处理方法,以相对确保基于NUMA架构执行具有多数据处理线程的任务程序时的可靠性,是本领域技术人员需要解决的问题。
发明内容
本申请的目的是提供一种基于NUMA的线程处理方法、装置、设备及存储介质,以相对确保基于NUMA架构执行具有多数据处理线程的任务程序时的可靠性。
为解决上述技术问题,本申请提供一种基于NUMA的线程处理方法,包括:
获取基于目标任务程序产生的线程集合;
统计线程集合中与其它线程均无数据关联的独立线程;
根据线程集合统计线程之间存在数据关联的耦合线程组;
将独立线程平均分配至NUMA框架中的各处理器执行;
将耦合线程组的耦合线程一并分配至NUMA框架中同一个处理器管理芯片对应的处理器执行。
优选地,将耦合线程组的耦合线程一并分配至NUMA框架中同一个处理器管理芯片对应的处理器执行,包括:
将耦合线程组的耦合线程一并分配至NUMA框架中同一个资源占用率最低的处理器管理芯片对应的处理器执行。
优选地,在将耦合线程组的耦合线程一并分配至NUMA框架中同一个资源占用率最低的处理器管理芯片对应的处理器执行之前,方法还包括:
统计耦合线程组中耦合线程之间的数据关联程度值;
判断数据关联程度值是否达到第一预设阈值;
如果数据关联程度值达到第一预设阈值,则将耦合线程组的耦合线程一并分配至NUMA框架中资源占用率最低的目标处理器执行;
如果数据关联程度值未达到第一预设阈值,则执行将耦合线程组的耦合线程一并分配至NUMA框架中同一个资源占用率最低的处理器管理芯片对应的处理器执行的步骤。
优选地,当数据关联程度值未达到第一预设阈值,在将耦合线程组的耦合线程一并分配至NUMA框架中同一个资源占用率最低的处理器管理芯片对应的处理器执行之前,方法还包括:
判断数据关联程度值是否达到第二预设阈值;其中,第二预设阈值小于第一预设阈值;
如果数据关联程度值达到第二预设阈值,则执行将耦合线程组的耦合线程一并分配至NUMA框架中同一个资源占用率最低的处理器管理芯片对应的处理器执行的步骤。
优选地,处理器包括CPU处理器。
此外,本申请还提供一种基于NUMA的线程处理装置,包括:
线程集合获取模块,用于获取基于目标任务程序产生的线程集合;
独立线程统计模块,用于统计线程集合中与其它线程均无数据关联的独立线程;
耦合线程统计模块,用于根据线程集合统计线程之间存在数据关联的耦合线程组;
独立线程分配模块,用于将独立线程平均分配至NUMA框架中的各处理器执行;
耦合线程分配模块,用于将耦合线程组的耦合线程一并分配至NUMA框架中同一个处理器管理芯片对应的处理器执行。
优选地,耦合线程分配模块,包括:
子分配模块,用于将耦合线程组的耦合线程一并分配至NUMA框架中同一个资源占用率最低的处理器管理芯片对应的处理器执行。
优选地,装置还包括:
关联统计模块,用于统计耦合线程组中耦合线程之间的数据关联程度值;
判断模块,用于判断数据关联程度值是否达到第一预设阈值,如果是,则调用处理器分配模块,否则,调用子分配模块;
处理器分配模块,用于将耦合线程组的耦合线程一并分配至NUMA框架中资源占用率最低的目标处理器执行。
此外,本申请还提供一种基于NUMA的线程处理设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行计算机程序时实现如上述的基于NUMA的线程处理方法的步骤。
此外,本申请还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述的基于NUMA的线程处理方法的步骤。
本申请所提供的基于NUMA的线程处理方法,首先获取基于目标任务程序产生的线程集合,在此基础上,统计线程集合中与其它线程均无数据关联的独立线程,并根据线程集合统计线程之间存在数据关联的耦合线程组,进而将独立线程平均分配至NUMA框架中的各处理器执行,并将耦合线程组的耦合线程一并分配至NUMA框架中同一个处理器管理芯片对应的处理器执行,以此实现基于NUMA框架对目标任务程序所对应的多个线程的处理。由于本方法中将耦合线程组的耦合线程统一分配至NUMA框架中同一个处理器管理芯片对应的处理器执行,因此进一步确保了线程之间存在数据关联的各耦合线程组能够受到同一个处理器管理芯片的调度执行,相对保证了具有数据关联的多线程之间的同步执行,进而相对确保了基于NUMA架构执行具有多数据处理线程的任务程序时的可靠性。此外,本申请还提供一种基于NUMA的线程处理装置、设备及存储介质,有益效果同上所述。
附图说明
为了更清楚地说明本申请实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一种具体的NUMA结构示意图;
图2为本申请实施例公开的一种基于NUMA的线程处理方法的流程图;
图3为本申请实施例公开的一种基于NUMA的线程处理方法的流程图;
图4为本申请实施例公开的一种基于NUMA的线程处理装置的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本申请保护范围。
通过NUMA架构执行任务程序时,需要将前端系统根据任务程序创建的数据处理线程下发至NUMA架构中的处理器,进而由该处理器执行相应的数据处理线程,以此完成相应的任务程序。随着任务程序的逐渐复杂化,通过NUMA架构执行任务程序时,往往需要将任务程序划分为多个数据处理线程,而当前尚且没有基于NUMA架构执行具有多数据处理线程的任务程序的相关技术方案,因此难以确保基于NUMA架构执行具有多数据处理线程的任务程序时的可靠性。
为此,本申请的核心是提供一种基于NUMA的线程处理方法,以相对确保基于NUMA架构执行具有多数据处理线程的任务程序时的可靠性。
为了使本技术领域的人员更好地理解本申请方案,下面结合附图和具体实施方式对本申请作进一步的详细说明。
请参见图2所示,本申请实施例公开了一种基于NUMA的线程处理方法,包括:
步骤S10:获取基于目标任务程序产生的线程集合。
需要说明的是,本步骤中的目标任务程序指的是当前需要通过NUMA框架执行的程序,本实施例的重点在于目标任务程序在执行时,被前端系统划分为多个线程,即构成了线程集合,进而本步骤获取基于目标任务程序产生的线程集合,用于在后续步骤中将线程集合中的线程分配至NUMA框架中处理器进行执行。
步骤S11:统计线程集合中与其它线程均无数据关联的独立线程。
在获取到目标任务程序对应的线程集合之后,本步骤进一步统计线程集合中与其它线程均无数据关联的独立线程,也就是说独立线程是线程集合中的线程,并且独立线程与线程集合中的其它线程之间不存在数据关联,因此独立线程的执行无需线程集合中其它线程提供的数据,并且在执行过程中也不需要向线程集合中的其它线程提供数据。
步骤S12:根据线程集合统计线程之间存在数据关联的耦合线程组。
在获取到目标任务程序对应的线程集合之后,本步骤根据线程集合统计线程之间存在数据关联的耦合线程组。可以理解的是,同一耦合线程组中的耦合线程之间存在数据关联,也就是说,耦合线程组中的一个耦合线程在执行过程中,需要由该耦合线程组中的一个或多个其它耦合线程向其提供数据,或是需要向该耦合线程组中的一个或多个其它耦合线程提供数据。
另外,需要说明的是,步骤S11与步骤S12分别是在线程集合中统计独立线程以及耦合线程组的步骤,而统计独立线程以及统计耦合线程组之间无逻辑关联,因此步骤S11与步骤S12之间的执行顺序不固定,也可以同时执行,可以根据实际情况而定。
步骤S13:将独立线程平均分配至NUMA框架中的各处理器执行。
在统计得到线程集合中与其它线程均无数据关联的独立线程之后,本步骤进一步将独立线程平均分配至NUMA框架中的各处理器执行,目的是在线程之间不存在数据通信的前提下,确保处理器之间的线程负载相对均衡。
步骤S14:将耦合线程组的耦合线程一并分配至NUMA框架中同一个处理器管理芯片对应的处理器执行。
在根据线程集合得到统计线程之间存在数据关联的耦合线程组之后,本步骤进一步将耦合线程组的耦合线程一并分配至NUMA框架中同一个处理器管理芯片对应的处理器执行,由于在NUMA框架中,每一个处理器管理芯片负责对一定数量的处理器进行数据调度,各个处理器管理芯片之间的通信进一步实现对NUMA框架中全部处理器的综合数据调度,因此本实施方式中将耦合线程组的耦合线程一并分配至NUMA框架中同一个处理器管理芯片对应的处理器执行,能够将执行各耦合线程执行时通过同一个处理器管理芯片进行处理器之间的数据调用,以此提高各耦合线程之间同步执行的可靠性。
需要说明的是,由于步骤S13以及步骤S14是分别是将独立线程分配至NUMA框架中的处理器执行,以及将耦合线程组的耦合线程分配至NUMA框架中的处理器执行的步骤,因此步骤S13与步骤S14之间不存在关联性,因此步骤S13以及步骤S14之间的执行顺序不固定,也可同时执行,在此不做具体限定。
本申请所提供的基于NUMA的线程处理方法,首先获取基于目标任务程序产生的线程集合,在此基础上,统计线程集合中与其它线程均无数据关联的独立线程,并根据线程集合统计线程之间存在数据关联的耦合线程组,进而将独立线程平均分配至NUMA框架中的各处理器执行,并将耦合线程组的耦合线程一并分配至NUMA框架中同一个处理器管理芯片对应的处理器执行,以此实现基于NUMA框架对目标任务程序所对应的多个线程的处理。由于本方法中将耦合线程组的耦合线程统一分配至NUMA框架中同一个处理器管理芯片对应的处理器执行,因此进一步确保了线程之间存在数据关联的各耦合线程组能够受到同一个处理器管理芯片的调度执行,相对保证了具有数据关联的多线程之间的同步执行,进而相对确保了基于NUMA架构执行具有多数据处理线程的任务程序时的可靠性。
请参见图3所示,本申请实施例公开了一种基于NUMA的线程处理方法,包括:
步骤S20:获取基于目标任务程序产生的线程集合。
步骤S21:统计线程集合中与其它线程均无数据关联的独立线程。
步骤S22:根据线程集合统计线程之间存在数据关联的耦合线程组。
步骤S23:将独立线程平均分配至NUMA框架中的各处理器执行。
步骤S24:将耦合线程组的耦合线程一并分配至NUMA框架中同一个资源占用率最低的处理器管理芯片对应的处理器执行。
需要说明的是,本实施方式的重点在于根据线程集合统计线程之间存在数据关联的耦合线程组之后,进一步将耦合线程组的耦合线程一并分配至NUMA框架中同一个资源占用率最低的处理器管理芯片对应的处理器执行,也就是说,是将同一个耦合线程组中的耦合线程均分配至一个处理器管理芯片下的处理器执行,并且该处理器管理芯片是NUMA框架内所有管理器芯片中资源占用率最低的处理器管理芯片,目的是确保处理器管理芯片的稳定性,进而进一步确保处理器管理芯片能够相对稳定的对存在数据关联的各耦合线程组中的耦合线程进行数据调度,从而进一步确保了基于NUMA架构执行具有多数据处理线程的任务程序时的可靠性。
在上述实施例的基础上,作为一种优选的实施方式,在将耦合线程组的耦合线程一并分配至NUMA框架中同一个资源占用率最低的处理器管理芯片对应的处理器执行之前,方法还包括:
统计耦合线程组中耦合线程之间的数据关联程度值;
判断数据关联程度值是否达到第一预设阈值;
如果数据关联程度值达到第一预设阈值,则将耦合线程组的耦合线程一并分配至NUMA框架中资源占用率最低的目标处理器执行;
如果数据关联程度值未达到第一预设阈值,则执行将耦合线程组的耦合线程一并分配至NUMA框架中同一个资源占用率最低的处理器管理芯片对应的处理器执行的步骤。
需要说明的是,本实施方式的重点在于,在将耦合线程组的耦合线程一并分配至NUMA框架中同一个资源占用率最低的处理器管理芯片对应的处理器执行之前,先统计耦合线程组中耦合线程之间的数据关联程度值,进而判断耦合线程组中耦合线程之间的数据关联程度值是否达到第一预设阈值,如果数据关联程度值达到第一预设阈值,则将耦合线程组的耦合线程一并分配至NUMA框架中资源占用率最低的目标处理器执行,也就是将数据关联程度到达一定预设程度的耦合线程分配至相同的处理器,并且该处理器是NUMA框架下所有处理器中资源占用率最低的处理器,即目标处理器;如果数据关联程度值未达到第一预设阈值,本实施方式中的第一预设阈值表征的是线程之间达到较高耦合程度标准时对应的数据关联程度值,应根据实际需求而定。本实施方式在确保基于NUMA架构执行具有多数据处理线程的任务程序时的可靠性的同时,进一步提高了整体效率处理器执行数据关联程度到达一定预设程度的耦合线程时的效率。
更进一步的,作为一种优选的实施方式,当数据关联程度值未达到第一预设阈值,在将耦合线程组的耦合线程一并分配至NUMA框架中同一个资源占用率最低的处理器管理芯片对应的处理器执行之前,方法还包括:
判断数据关联程度值是否达到第二预设阈值;其中,第二预设阈值小于第一预设阈值;
如果数据关联程度值达到第二预设阈值,则执行将耦合线程组的耦合线程一并分配至NUMA框架中同一个资源占用率最低的处理器管理芯片对应的处理器执行的步骤。
需要说明的是,本实施方式的重点是在当数据关联程度值未达到第一预设阈值时,进一步判断数据关联程度值是否达到第二预设阈值,其中,第二预设阈值小于第一预设阈值,进而当数据关联程度值达到第二预设阈值,则进一步执行将耦合线程组的耦合线程一并分配至NUMA框架中同一个资源占用率最低的处理器管理芯片对应的处理器执行的步骤,目的是基于第一预设阈值以及第二预设阈值实现对耦合线程组中耦合线程之间数据关联程度值的分级判定,进一步确保了基于NUMA架构执行具有多数据处理线程的任务程序时的可靠性。
在上述一系列实施方式的基础上,作为一种优选的实施方式,处理器包括CPU处理器。
需要说明的是,CPU(central processing unit,中央处理器)一般由逻辑运算单元、控制单元和存储单元组成,能够灵活的进行多线程的执行,以此进一步确保了基于NUMA架构执行具有多数据处理线程的任务程序时的可靠性。
请参见图4所示,本申请实施例提供了一种基于NUMA的线程处理装置,包括:
线程集合获取模块10,用于获取基于目标任务程序产生的线程集合;
独立线程统计模块11,用于统计线程集合中与其它线程均无数据关联的独立线程;
耦合线程统计模块12,用于根据线程集合统计线程之间存在数据关联的耦合线程组;
独立线程分配模块13,用于将独立线程平均分配至NUMA框架中的各处理器执行;
耦合线程分配模块14,用于将耦合线程组的耦合线程一并分配至NUMA框架中同一个处理器管理芯片对应的处理器执行。
更进一步的,作为一种优选的实施方式,耦合线程分配模块,包括:
子分配模块,用于将耦合线程组的耦合线程一并分配至NUMA框架中同一个资源占用率最低的处理器管理芯片对应的处理器执行。
更进一步的,作为一种优选的实施方式,装置还包括:
关联统计模块,用于统计耦合线程组中耦合线程之间的数据关联程度值;
判断模块,用于判断数据关联程度值是否达到第一预设阈值,如果是,则调用处理器分配模块,否则,调用子分配模块;
处理器分配模块,用于将耦合线程组的耦合线程一并分配至NUMA框架中资源占用率最低的目标处理器执行。
本申请所提供的基于NUMA的线程处理装置,首先获取基于目标任务程序产生的线程集合,在此基础上,统计线程集合中与其它线程均无数据关联的独立线程,并根据线程集合统计线程之间存在数据关联的耦合线程组,进而将独立线程平均分配至NUMA框架中的各处理器执行,并将耦合线程组的耦合线程一并分配至NUMA框架中同一个处理器管理芯片对应的处理器执行,以此实现基于NUMA框架对目标任务程序所对应的多个线程的处理。由于本装置中将耦合线程组的耦合线程统一分配至NUMA框架中同一个处理器管理芯片对应的处理器执行,因此进一步确保了线程之间存在数据关联的各耦合线程组能够受到同一个处理器管理芯片的调度执行,相对保证了具有数据关联的多线程之间的同步执行,进而相对确保了基于NUMA架构执行具有多数据处理线程的任务程序时的可靠性。
此外,本申请实施例还提供一种基于NUMA的线程处理设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行计算机程序时实现如上述的基于NUMA的线程处理方法的步骤。
本申请所提供的基于NUMA的线程处理设备,首先获取基于目标任务程序产生的线程集合,在此基础上,统计线程集合中与其它线程均无数据关联的独立线程,并根据线程集合统计线程之间存在数据关联的耦合线程组,进而将独立线程平均分配至NUMA框架中的各处理器执行,并将耦合线程组的耦合线程一并分配至NUMA框架中同一个处理器管理芯片对应的处理器执行,以此实现基于NUMA框架对目标任务程序所对应的多个线程的处理。由于本设备中将耦合线程组的耦合线程统一分配至NUMA框架中同一个处理器管理芯片对应的处理器执行,因此进一步确保了线程之间存在数据关联的各耦合线程组能够受到同一个处理器管理芯片的调度执行,相对保证了具有数据关联的多线程之间的同步执行,进而相对确保了基于NUMA架构执行具有多数据处理线程的任务程序时的可靠性。
此外,本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述的基于NUMA的线程处理方法的步骤。
本申请所提供的计算机可读存储介质,首先获取基于目标任务程序产生的线程集合,在此基础上,统计线程集合中与其它线程均无数据关联的独立线程,并根据线程集合统计线程之间存在数据关联的耦合线程组,进而将独立线程平均分配至NUMA框架中的各处理器执行,并将耦合线程组的耦合线程一并分配至NUMA框架中同一个处理器管理芯片对应的处理器执行,以此实现基于NUMA框架对目标任务程序所对应的多个线程的处理。由于本计算机可读存储介质中将耦合线程组的耦合线程统一分配至NUMA框架中同一个处理器管理芯片对应的处理器执行,因此进一步确保了线程之间存在数据关联的各耦合线程组能够受到同一个处理器管理芯片的调度执行,相对保证了具有数据关联的多线程之间的同步执行,进而相对确保了基于NUMA架构执行具有多数据处理线程的任务程序时的可靠性。
以上对本申请所提供的一种基于NUMA的线程处理方法、装置、设备及存储介质进行了详细介绍。说明书中各实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (10)
1.一种基于NUMA的线程处理方法,其特征在于,包括:
获取基于目标任务程序产生的线程集合;
统计所述线程集合中与其它线程均无数据关联的独立线程;
根据所述线程集合统计线程之间存在数据关联的耦合线程组;
将所述独立线程平均分配至NUMA框架中的各处理器执行;
将所述耦合线程组的耦合线程一并分配至所述NUMA框架中同一个处理器管理芯片对应的处理器执行。
2.根据权利要求1所述的基于NUMA的线程处理方法,其特征在于,所述将所述耦合线程组的耦合线程一并分配至所述NUMA框架中同一个处理器管理芯片对应的处理器执行,包括:
将所述耦合线程组的耦合线程一并分配至所述NUMA框架中同一个资源占用率最低的处理器管理芯片对应的处理器执行。
3.根据权利要求2所述的基于NUMA的线程处理方法,其特征在于,在所述将所述耦合线程组的耦合线程一并分配至所述NUMA框架中同一个资源占用率最低的处理器管理芯片对应的处理器执行之前,所述方法还包括:
统计所述耦合线程组中耦合线程之间的数据关联程度值;
判断所述数据关联程度值是否达到第一预设阈值;
如果所述数据关联程度值达到所述第一预设阈值,则将所述耦合线程组的耦合线程一并分配至所述NUMA框架中资源占用率最低的目标处理器执行;
如果所述数据关联程度值未达到所述第一预设阈值,则执行所述将所述耦合线程组的耦合线程一并分配至所述NUMA框架中同一个资源占用率最低的处理器管理芯片对应的处理器执行的步骤。
4.根据权利要求3所述的基于NUMA的线程处理方法,其特征在于,当所述数据关联程度值未达到所述第一预设阈值,在所述将所述耦合线程组的耦合线程一并分配至所述NUMA框架中同一个资源占用率最低的处理器管理芯片对应的处理器执行之前,所述方法还包括:
判断所述数据关联程度值是否达到第二预设阈值;其中,所述第二预设阈值小于所述第一预设阈值;
如果所述数据关联程度值达到第二预设阈值,则执行所述将所述耦合线程组的耦合线程一并分配至所述NUMA框架中同一个资源占用率最低的处理器管理芯片对应的处理器执行的步骤。
5.根据权利要求1至4任意一项所述的基于NUMA的线程处理方法,其特征在于,所述处理器包括CPU处理器。
6.一种基于NUMA的线程处理装置,其特征在于,包括:
线程集合获取模块,用于获取基于目标任务程序产生的线程集合;
独立线程统计模块,用于统计所述线程集合中与其它线程均无数据关联的独立线程;
耦合线程统计模块,用于根据所述线程集合统计线程之间存在数据关联的耦合线程组;
独立线程分配模块,用于将所述独立线程平均分配至NUMA框架中的各处理器执行;
耦合线程分配模块,用于将所述耦合线程组的耦合线程一并分配至所述NUMA框架中同一个处理器管理芯片对应的处理器执行。
7.根据权利要求6所述的基于NUMA的线程处理装置,其特征在于,所述耦合线程分配模块,包括:
子分配模块,用于将所述耦合线程组的耦合线程一并分配至所述NUMA框架中同一个资源占用率最低的处理器管理芯片对应的处理器执行。
8.根据权利要求7所述的基于NUMA的线程处理装置,其特征在于,装置还包括:
关联统计模块,用于统计所述耦合线程组中耦合线程之间的数据关联程度值;
判断模块,用于判断所述数据关联程度值是否达到第一预设阈值,如果是,则调用处理器分配模块,否则,调用所述子分配模块;
所述处理器分配模块,用于将所述耦合线程组的耦合线程一并分配至所述NUMA框架中资源占用率最低的目标处理器执行。
9.一种基于NUMA的线程处理设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至5任一项所述的基于NUMA的线程处理方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述的基于NUMA的线程处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010590971.1A CN111752711A (zh) | 2020-06-24 | 2020-06-24 | 基于numa的线程处理方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010590971.1A CN111752711A (zh) | 2020-06-24 | 2020-06-24 | 基于numa的线程处理方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111752711A true CN111752711A (zh) | 2020-10-09 |
Family
ID=72677200
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010590971.1A Withdrawn CN111752711A (zh) | 2020-06-24 | 2020-06-24 | 基于numa的线程处理方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111752711A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1577311A (zh) * | 2003-06-27 | 2005-02-09 | 株式会社东芝 | 调度方法和实时处理系统 |
CN1577281A (zh) * | 2003-06-27 | 2005-02-09 | 株式会社东芝 | 调度方法和信息处理系统 |
US20140237197A1 (en) * | 2013-02-20 | 2014-08-21 | Red Hat, Inc. | Non-uniform memory access (numa) resource assignment and re-evaluation |
CN104657195A (zh) * | 2015-01-05 | 2015-05-27 | 华为技术有限公司 | 一种资源绑定方法和装置 |
CN107436798A (zh) * | 2017-08-15 | 2017-12-05 | 深信服科技股份有限公司 | 一种基于numa节点的进程访问方法及装置 |
-
2020
- 2020-06-24 CN CN202010590971.1A patent/CN111752711A/zh not_active Withdrawn
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1577311A (zh) * | 2003-06-27 | 2005-02-09 | 株式会社东芝 | 调度方法和实时处理系统 |
CN1577281A (zh) * | 2003-06-27 | 2005-02-09 | 株式会社东芝 | 调度方法和信息处理系统 |
US20140237197A1 (en) * | 2013-02-20 | 2014-08-21 | Red Hat, Inc. | Non-uniform memory access (numa) resource assignment and re-evaluation |
CN104657195A (zh) * | 2015-01-05 | 2015-05-27 | 华为技术有限公司 | 一种资源绑定方法和装置 |
CN107436798A (zh) * | 2017-08-15 | 2017-12-05 | 深信服科技股份有限公司 | 一种基于numa节点的进程访问方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107291546B (zh) | 一种资源调度方法及装置 | |
US8869160B2 (en) | Goal oriented performance management of workload utilizing accelerators | |
US7206890B2 (en) | System and method for reducing accounting overhead during memory allocation | |
US7908454B2 (en) | Application-specific heap management | |
CN109582447B (zh) | 计算资源分配方法、任务处理方法及装置 | |
CN104239150B (zh) | 一种硬件资源调整的方法及装置 | |
CN113467933B (zh) | 分布式文件系统线程池优化方法、系统、终端及存储介质 | |
CN112269656B (zh) | 一种基于多核处理器的应用配置方法、装置和系统 | |
US20180191861A1 (en) | Method and Apparatus for Scheduling Resources in a Cloud System | |
US11438271B2 (en) | Method, electronic device and computer program product of load balancing | |
CN112783659A (zh) | 一种资源分配方法、装置、计算机设备及存储介质 | |
CN107357640B (zh) | 多线程数据库的请求处理方法及装置、电子设备 | |
CN115658311A (zh) | 一种资源的调度方法、装置、设备和介质 | |
CN115525434A (zh) | 资源分配方法、容器管理组件和资源分配系统 | |
CN113391911B (zh) | 一种大数据资源动态调度方法、装置和设备 | |
CN114116173A (zh) | 动态调整任务分配的方法、装置和系统 | |
CN112860401A (zh) | 任务调度方法、装置、电子设备和存储介质 | |
CN111752711A (zh) | 基于numa的线程处理方法、装置、设备及存储介质 | |
Ray et al. | Is high performance computing (HPC) ready to handle big data? | |
CN115878910A (zh) | 线路查询方法、装置和存储介质 | |
US9367439B2 (en) | Physical memory usage prediction | |
CN112256436B (zh) | 资源分配方法、装置、设备及计算机存储介质 | |
Chen et al. | Speculative slot reservation: Enforcing service isolation for dependent data-parallel computations | |
CN111352710B (zh) | 进程管理方法及装置、计算设备、存储介质 | |
GB2504812A (en) | Load balancing in a SAP (RTM) system for processors allocated to data intervals based on system load |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20201009 |