任务窃取方法、装置、芯片及计算机设备与流程

    技术2026-07-05  12


    本技术涉及计算机领域,尤其涉及一种任务窃取方法、装置、芯片及计算机设备。


    背景技术:

    1、在多处理器核并行处理任务场景下,采用负载均衡机制在有限的核数上尽可能均衡地分发超过核数的任务(task),提升系统整体的任务处理效率,避免出现部分处理器核超载(overload),而部分处理器核空闲(idle)的情况发生。例如,空闲的处理器核选择非空闲的处理器核,从非空闲的处理器核的循环队列窃取任务,即将任务从非空闲的处理器核调度到空闲的处理器核上执行,从而提升系统的整体负载均衡。其中,处理器核还可以向循环队列写入任务或从循环队列获取任务进行处理。但是,处理器核需要根据循环队列的全局元数据执行写入操作、获取操作和窃取操作,而且,处理器核执行窃取操作时可能导致写入操作、获取操作产生缓存未命中现象,导致系统性能开销较大。因此,如何提升任务窃取的系统性能和可靠性是一个亟待解决的问题。


    技术实现思路

    1、本技术提供了任务窃取方法、装置、芯片及计算机设备,由此提升任务窃取的系统性能和可靠性。

    2、第一方面,提供了一种任务窃取方法,应用于计算机设备中的处理器核。例如,计算机设备包括多个处理器核,多个处理器核包括第一处理器核和第二处理器核,方法由第一处理器核执行,所述方法包括:当第一处理器核关联的循环队列为空时,从第二处理器核关联的循环队列中具有窃取权限的第一分块窃取待处理的第一任务,并处理第一任务,第二处理器核关联的循环队列包括多个分块,多个分块中具有窃取权限的分块与具有获取权限的分块不是同一个块。

    3、如此,采用分块管理机制对处理器核关联的循环队列进行分块管理,实现了循环队列的“中部可窃取”,即允许从循环队列中具有窃取权限的分块开始窃取任务,也可以对循环队列中其他分块执行写入操作或获取操作,相对于从循环队列的队首或队尾窃取任务,减少了不同的处理器核对同一循环队列执行不同操作的竞争可能性,从而提升系统性能和任务窃取的可靠性。

    4、在一种可能的实现方式中,从第二处理器核关联的循环队列中具有窃取权限的第一分块窃取待处理的第一任务,包括:根据第一分块中窃取标识窃取第一任务,窃取标识用于指示第一分块中窃取起始位置。

    5、在另一种可能的实现方式中,从第二处理器核关联的循环队列中具有窃取权限的第一分块窃取待处理的第一任务之后,方法还包括:更新第一分块中窃取标识和窃取计数器,窃取计数器用于指示窃取任务完成数量。

    6、从而,基于块内元数据(块内局部变量)的分块管理机制,实现了循环队列的“中部可窃取”,相对于基于循环队列的全局元数据(循环队列全局变量)窃取任务,有效降低了同步开销,提升了系统性能。

    7、在另一种可能的实现方式中,从第二处理器核关联的循环队列中具有窃取权限的第一分块窃取待处理的第一任务,包括:根据处理器核选择方式从多个处理器核中选择第二处理器核,从第二处理器核关联的循环队列中随机选择第一分块窃取第一任务。其中,处理器核选择方式包括非统一内存访问架构感知(non-uniform memory access,numa-aware)、等概率和随机中任一种。

    8、在另一种可能的实现方式中,根据处理器核选择方式从多个处理器核中选择第二处理器核,包括:根据处理器核选择方式从多个处理器核中选择第三处理器核;当从第三处理器核关联的循环队列中随机选择第三分块,第三分块不具有窃取权限时,根据处理器核选择方式从多个处理器核中选择第二处理器核。

    9、从而,处理器核可通过随机采样,获取块内局部变量,在处理器核的窃取操作对循环队列造成的读写竞争影响最小化的前提下,实现了高概率地窃取较长循环队列,提升了系统性能。

    10、在另一种可能的实现方式中,根据第一分块中窃取标识窃取第一任务,包括:当第二处理器核关联的循环队列中第二分块的窃取标识指示第二分块的块边界,根据与第二分块相邻的第一分块中窃取标识和轮次标识窃取第一任务。

    11、在另一种可能的实现方式中,方法还包括:根据第二分块的轮次标识更新第一分块的轮次标识。

    12、从而,通过块间操作中少量的同步操作和精巧的轮次控制机制保障了任务窃取的可靠性,而每次的轮次标识更新仅依赖其相邻分块的轮次值,避免了对全局元数据的依赖,提升了轮次更新的性能。

    13、在另一种可能的实现方式中,方法还包括:根据获取请求,将第一分块的窃取权限切换为获取权限;根据第一分块中前部标识和后部标识从第一分块获取待处理的第二任务,前部标识和后部标识用于指示获取位置。

    14、从而,基于块内元数据的分块管理机制,为循环队列中分块赋予不同的权限。在块间操作中使用接管(takeover)机制,即对循环队列中分块需要获取任务时,执行权限转移,即将窃取权限切换为获取权限,避免对同一个分块执行获取操作和窃取操作,在块内操作中避免大部分同步开销,系统吞吐接近串行队列的吞吐,提升系统性能和任务窃取的可靠性。

    15、在另一种可能的实现方式中,从第二处理器核关联的循环队列中具有窃取权限的第一分块窃取待处理的第一任务之前,方法还包括:基于第一分块的后部标识向第一分块写入第一任务和第二任务,将第一分块的写入权限切换为窃取权限,后部标识用于指示写入位置。

    16、从而,基于块内元数据的分块管理机制,为循环队列中分块赋予不同的权限。在块间操作中使用授予(grant)机制,即对循环队列中分块写入任务后,执行权限转移,即将写入权限切换为窃取权限,使得处理器核可以从循环队列中具有窃取权限的分块开始窃取,减少了不同的处理器核对同一循环队列执行不同操作的竞争可能性,从而提升系统性能和任务窃取的可靠性。

    17、第二方面,提供了一种任务窃取装置,装置包括用于执行第一方面或第一方面任一种可能设计中的方法的各个模块。例如,任务窃取装置包括窃取模块、获取模块和写入模块。

    18、窃取模块,用于当第一处理器核关联的循环队列为空时,从第二处理器核关联的循环队列中具有窃取权限的第一分块窃取待处理的第一任务,第二处理器核关联的循环队列包括多个分块,多个分块中具有窃取权限的分块与具有获取权限的分块不是同一个块。

    19、获取模块,用于根据获取请求,将第一分块的窃取权限切换为获取权限;根据第一分块中前部标识和后部标识从第一分块获取待处理的第二任务,前部标识和后部标识用于指示获取位置。

    20、写入模块,用于基于第一分块的后部标识向第一分块写入第一任务和第二任务,将第一分块的写入权限切换为窃取权限,后部标识用于指示写入位置。

    21、第三方面,提供了一种芯片,包括:处理器和供电电路;其中,所述供电电路用于为所述处理器供电;所述处理器用于执行第一方面或第一方面任一种可能实现方式中的方法的操作步骤。

    22、第四方面,提供了一种处理器,包括:多个处理器核;所述处理器核用于执行第一方面或第一方面任一种可能实现方式中的方法的操作步骤。

    23、第五方面,提供了一种计算机设备,该计算机设备包括处理器和存储器,处理器包括多个处理器核,存储器用于存储一组计算机指令,当处理器核执行一组计算机指令时,执行第一方面或第一方面任一种可能实现方式中的方法的操作步骤。

    24、第六方面,提供了一种计算机可读存储介质,包括:计算机软件指令;当计算机软件指令在计算机设备中运行时,使得计算机设备执行如第一方面或第一方面任意一种可能的实现方式中所述方法的操作步骤。

    25、第七方面,提供了一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机设备执行如第一方面或第一方面任意一种可能的实现方式中所述方法的操作步骤。

    26、第二方面至第七方面中任一种设计方式所带来的技术效果可参见第一方面或第一方面中不同设计方式所带来的技术效果,此处不再赘述。

    27、本技术在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。


    技术特征:

    1.一种任务窃取方法,其特征在于,计算机设备包括多个处理器核,所述多个处理器核包括第一处理器核和第二处理器核,所述方法包括:

    2.根据权利要求1所述的方法,其特征在于,从所述第二处理器核关联的循环队列中具有窃取权限的第一分块窃取待处理的第一任务,包括:

    3.根据权利要求1或2所述的方法,其特征在于,从所述第二处理器核关联的循环队列中具有窃取权限的第一分块窃取待处理的第一任务,包括:

    4.根据权利要求3所述的方法,其特征在于,根据处理器核选择方式从所述多个处理器核中选择所述第二处理器核,包括:

    5.根据权利要求2-4中任一项所述的方法,其特征在于,从所述第二处理器核关联的循环队列中具有窃取权限的第一分块窃取待处理的第一任务之后,所述方法还包括:

    6.根据权利要求2-5中任一项所述的方法,其特征在于,根据所述第一分块中窃取标识窃取所述第一任务,包括:

    7.根据权利要求6所述的方法,其特征在于,所述方法还包括:

    8.根据权利要求1-7中任一项所述的方法,其特征在于,所述方法还包括:

    9.根据权利要求1-8中任一项所述的方法,其特征在于,从所述第二处理器核关联的循环队列中具有窃取权限的第一分块窃取待处理的第一任务之前,所述方法还包括:

    10.一种任务窃取装置,其特征在于,应用于计算机设备,所述计算机设备包括多个处理器核,所述多个处理器核包括第一处理器核和第二处理器核,所述装置包括:

    11.根据权利要求10所述的装置,其特征在于,所述窃取模块从所述第二处理器核关联的循环队列中具有窃取权限的第一分块窃取待处理的第一任务时,具体用于:

    12.根据权利要求10或11所述的装置,其特征在于,所述窃取模块从所述第二处理器核关联的循环队列中具有窃取权限的第一分块窃取待处理的第一任务时,具体用于:

    13.根据权利要求12所述的装置,其特征在于,所述窃取模块根据处理器核选择方式从所述多个处理器核中选择所述第二处理器核时,具体用于:

    14.根据权利要求11-13中任一项所述的装置,其特征在于,所述窃取模块还用于:

    15.根据权利要求11-14中任一项所述的装置,其特征在于,所述窃取模块根据所述第一分块中窃取标识窃取所述第一任务时,具体用于:

    16.根据权利要求15所述的装置,其特征在于,所述窃取模块还用于:

    17.根据权利要求10-16中任一项所述的装置,其特征在于,所述装置还包括获取模块;所述获取模块,用于:

    18.根据权利要求10-17中任一项所述的装置,其特征在于,所述装置还包括写入模块;所述写入模块,用于:

    19.一种芯片,其特征在于,包括:处理器和供电电路;其中,所述供电电路用于为所述处理器供电;所述处理器用于实现上述权利要求1-9中任一项所述的方法。

    20.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述处理器包括多个处理器核,存储器用于存储一组计算机指令,当所述处理器核执行一组计算机指令时,实现上述权利要求1-9中任一项所述的方法。


    技术总结
    公开了任务窃取方法、装置、芯片及计算机设备,涉及计算机领域。计算机设备包括多个处理器核,多个处理器核包括第一处理器核和第二处理器核,方法由第一处理器核执行,方法包括:当第一处理器核关联的循环队列为空时,从第二处理器核关联的循环队列中具有窃取权限的第一分块窃取待处理的第一任务,并处理第一任务。如此,采用分块管理机制对处理器核关联的循环队列进行分块管理,允许从循环队列中具有窃取权限的分块开始窃取任务,也可以对循环队列中其他分块执行写入操作或获取操作,相对于从循环队列的队首或队尾获取任务,减少了不同的处理器核对同一循环队列执行不同操作的竞争可能性,从而提升系统性能和任务窃取的可靠性。

    技术研发人员:刘宇涛,王佳玮,付明
    受保护的技术使用者:华为技术有限公司
    技术研发日:
    技术公布日:2024/10/24
    转载请注明原文地址:https://symbian.8miu.com/read-44739.html

    最新回复(0)