CN116048740A - 基于众核系统的任务调度方法、系统、电子设备及介质 - Google Patents
基于众核系统的任务调度方法、系统、电子设备及介质 Download PDFInfo
- Publication number
- CN116048740A CN116048740A CN202111264399.0A CN202111264399A CN116048740A CN 116048740 A CN116048740 A CN 116048740A CN 202111264399 A CN202111264399 A CN 202111264399A CN 116048740 A CN116048740 A CN 116048740A
- Authority
- CN
- China
- Prior art keywords
- processing
- task
- dynamic
- cluster
- cores
- 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.)
- Pending
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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
-
- 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]
-
- 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/505—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 load
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Hardware Redundancy (AREA)
Abstract
本公开提供了一种基于众核系统的任务调度方法、系统、电子设备及可读介质,该方法包括:获取目标任务所对应的固化处理簇的配置信息,将多个空闲处理核配置为与所述配置信息相匹配的动态处理簇;当接收到与所述目标任务相对应的任务处理请求时,根据所述固化处理簇以及所述动态处理簇,对所述任务处理请求进行调度。该任务调度方式能够在任务处理过程中灵活配置动态处理簇,从而便于根据任务处理进度灵活调整处理簇的数量,提升了任务调度的灵活性。该方式能够适用于负载情况会发生变化的复杂应用场景。
Description
技术领域
本公开实施例涉及计算机技术领域,特别涉及一种基于众核系统的任务调度方法、系统、电子设备及介质。
背景技术
众核架构是一种广泛应用于执行神经网络模型的并行处理架构。在众核架构中,每个处理核都能完成一定的计算功能,一定数量的处理核通过一定拓扑结构连接构成一个芯片,一定数量的芯片通过一定拓扑结构连接构成一个芯片阵列板,以此类推,可以扩展得到更大规模的系统。由此可见,在众核系统中,涉及到的处理核数量众多,各个处理核能够分别用于执行不同的任务。
在相关技术中,为了实现各个任务的可靠调度,预先通过预编译方式为各个任务配置对应的处理簇,以使该任务能够由对应的处理簇提供服务。相关技术中通过预编译实现的任务调度方式不够灵活,各个任务所对应的处理簇一旦配置完成就无法动态更改。
发明内容
鉴于上述问题,提出了本公开以便提供一种克服上述问题或者至少部分地解决上述问题的一种基于众核系统的任务调度方法、系统、电子设备及介质。
根据本公开实施例的一个方面,提供了一种基于众核系统的任务调度方法,包括:
获取目标任务所对应的固化处理簇的配置信息,将至少一个空闲处理核配置为与所述配置信息相匹配的动态处理簇;
当接收到与所述目标任务相对应的任务处理请求时,根据所述固化处理簇以及所述动态处理簇,对所述任务处理请求进行调度;
其中,所述目标任务包括:负载量大于预设值的第一类任务,和/或任务属性为预设属性的第二类任务。
第二方面,本公开实施例提供一种基于众核系统的任务调度系统,包括:
动态配置模块,适于获取目标任务所对应的固化处理簇的配置信息,将至少一个空闲处理核配置为与所述配置信息相匹配的动态处理簇;
调度模块,适于当接收到与所述目标任务相对应的任务处理请求时,根据所述固化处理簇以及所述动态处理簇,对所述任务处理请求进行调度;
其中,所述目标任务包括:负载量大于预设值的第一类任务,和/或任务属性为预设属性的第二类任务。
第三方面,本公开实施例提供一种电子设备,其包括:
一个或多个处理器;
存储装置,其上存储有一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现以下方法中的至少一者:
根据本公开实施例第一方面所述的任务调度方法。
第四方面,本公开实施例提供一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现以下方法中的至少一者:
根据本公开实施例第一方面所述的任务调度方法。
在本公开实施例提供的基于众核系统的任务调度方法、系统、电子设备及介质中,能够获取目标任务所对应的固化处理簇的配置信息,将多个空闲处理核配置为与配置信息相匹配的动态处理簇,相应的,当接收到与目标任务相对应的任务处理请求时,根据固化处理簇以及动态处理簇,对任务处理请求进行调度。由此可见,该方式能够根据目标任务所对应的固化处理簇的配置信息,动态生成动态处理簇,从而使动态处理簇能够与固化处理簇共同执行任务处理过程,该任务调度方式能够在任务处理过程中灵活配置动态处理簇,从而便于根据任务处理进度灵活调整处理簇的数量,提升了任务调度的灵活性。该方式能够适用于负载情况会发生变化的复杂应用场景。
附图说明
附图用来提供对本公开实施例的进一步理解,并且构成说明书的一部分,与本公开的实施例一起用于解释本公开,并不构成对本公开的限制。通过参考附图对详细示例实施例进行描述,以上和其它特征和优点对本领域技术人员将变得更加显而易见,在附图中:
图1为本公开一个实施例提供的一种基于众核系统的任务调度方法的流程图;
图2为本公开又一个实施例提供的一种基于众核系统的任务调度方法的流程图;
图3为本公开又一实施例提供的一种基于众核系统的任务调度系统的结构图;
图4为本公开实施例提供的一种电子设备的组成框图;
图5为本公开实施例提供的一种计算机可读介质的组成框图。
具体实施方式
为使本领域的技术人员更好地理解本公开的技术方案,下面结合附图对本公开提供的方法、系统、电子设备及计算机可读介质进行详细描述。
在下文中将参考附图更充分地描述示例实施例,但是所述示例实施例可以以不同形式来体现且不应当被解释为限于本文阐述的实施例。反之,提供这些实施例的目的在于使本公开透彻和完整,并将使本领域技术人员充分理解本公开的范围。
在不冲突的情况下,本公开各实施例及实施例中的各特征可相互组合。
如本文所使用的,术语“和/或”包括一个或多个相关列举条目的任何和所有组合。
本文所使用的术语仅用于描述特定实施例,且不意欲限制本公开。如本文所使用的,单数形式“一个”和“该”也意欲包括复数形式,除非上下文另外清楚指出。还将理解的是,当本说明书中使用术语“包括”和/或“由……制成”时,指定存在所述特征、整体、步骤、操作、元件和/或组件,但不排除存在或添加一个或多个其它特征、整体、步骤、操作、元件、组件和/或其群组。
除非另外限定,否则本文所用的所有术语(包括技术和科学术语)的含义与本领域普通技术人员通常理解的含义相同。还将理解,诸如那些在常用字典中限定的那些术语应当被解释为具有与其在相关技术以及本公开的背景下的含义一致的含义,且将不解释为具有理想化或过度形式上的含义,除非本文明确如此限定。
本公开的一个实施例提供了一种基于众核系统的任务调度方法。在本实施例提供的方法中,众核系统中的一个芯片包括多个能够相互通信的处理核。
在本公开实施例中,执行主体可以是任务调度装置,该任务调度装置可设置于任一处理核中,还可以是独立于处理核的调度器件。执行主体还可以是任意处理核,该处理核还可以用于执行除本公开实施例的任务调度方法之外的任务,本公开对此不作限制。
图1示出了本公开的一个实施例提供的一种基于众核系统的任务调度方法的流程示意图,如图1所示,该方法包括:
步骤S110:获取目标任务所对应的固化处理簇的配置信息,将至少一个空闲处理核配置为与配置信息相匹配的动态处理簇。
其中,目标任务包括:负载量大于预设值的第一类任务,和/或任务属性为预设属性的第二类任务。目标任务的数量可以为一个或多个。针对每个目标任务而言,其对应的固化处理簇的数量也可能为一个或多个。其中,固化处理簇是指:由多个处理核固化得到的、专用于处理该目标任务的处理簇。其中,固化是指:将至少一个处理核通过编译方式或其他配置方式设置为一组与预设任务相对应的处理簇。
具体的,在获取目标任务所对应的固化处理簇的配置信息时,若该目标任务对应于多个固化处理簇,需要进一步判断多个固化处理簇的配置信息是否相同,若相同,则从多个固化处理簇中任选一个处理簇即可;若不相同,则需要进一步从多个固化处理簇中筛选出一个用于获取配置信息的处理簇,具体筛选策略可灵活设置,例如,可以根据各个固化处理簇的负载量、存储空间等因素进行筛选。
通常情况下,对于一个目标任务而言,其对应的多个固化处理簇的配置信息都是相同的,此时,从多个固化处理簇中随机选择一个处理簇并获取配置信息即可。当然,在一些复杂的应用场景中,目标任务可能进一步包括多个子任务。例如,银行类任务进一步包括对公子任务以及对私子任务,相应的,银行类任务所对应的多个固化处理簇进一步包括:与对公子任务相对应的第一类处理簇以及与对私子任务相对应的第二类处理簇,相应的,可分别监测第一类处理簇以及第二类处理簇的负载量,并将负载量超出预设负载阈值的一类处理簇筛选为用于获取配置信息的处理簇。
其中,固化处理簇的配置信息用于描述与该固化处理簇的配置过程相关的内容,相应的,根据配置信息能够实现处理簇的动态配置。例如,配置信息主要包括:固化处理簇中包含的处理核的数量、种类等信息。相应的,在将多个空闲处理核配置为与配置信息相匹配的动态处理簇时,首先,需要从未固化的处理核(即:动态核)中筛选多个空闲处理核,具体筛选策略可根据各个空闲处理核的物理位置、空闲时长等多种因素设置;然后,根据获取到的配置信息,将筛选得到的多个空闲处理核配置为一个动态处理簇。由于该动态处理簇是根据上述固化处理簇的配置信息配置的,因此,该动态处理簇能够实现与固化处理簇同样的业务功能。
具体实施时,上述筛选得到的空闲处理核的数量通常与固化处理簇中包含的处理核的数量匹配。所谓匹配是指:各个空闲处理核能够分别与固化处理簇中的各个处理核相对应。通常情况下,筛选得到的空闲处理核的数量与固化处理簇中包含的处理核的数量相等,以实现各个处理核之间的一一对应;当然,若筛选得到的空闲处理核的数量与固化处理簇中包含的处理核的数量不完全相等,只要能够通过对空闲处理核进行合理配置,从而实现与固化处理簇中的各个处理核的业务功能相同的效果即可,本公开对具体细节不做限定。
由此可见,在将多个空闲处理核配置为与配置信息相匹配的动态处理簇时,“相匹配”的含义是指:相同或等同。具体的,由空闲处理核配置得到的动态处理簇的配置信息可以与固化处理簇的配置信息相同;或者,由空闲处理核配置得到的动态处理簇的配置信息也可以与固化处理簇的配置信息等同。在后者中,即使动态处理簇与固化处理簇在处理核的数量、种类等方面存在少许差异,但只要二者能够实现相同的处理能力即可,本公开对具体细节不做限定。
步骤S120:当接收到与目标任务相对应的任务处理请求时,根据固化处理簇以及动态处理簇,对该任务处理请求进行调度。
其中,与目标任务相对应的任务处理请求泛指与目标任务相关联的各类数据请求,例如,可以是目标任务的计算请求、分配请求、校验请求等各类请求。相应的,本步骤的执行主体可以是与目标任务相对应的任务调度装置,该任务调度装置可设置于任一处理核中,还可以是独立于处理核的调度器件。
具体的,根据固化处理簇以及动态处理簇,对该任务处理请求进行调度时,可通过多种方式实现,例如,既可以将固化处理簇以及动态处理簇全部用于执行该任务处理请求,也可以从固化处理簇以及动态处理簇中选择至少一个处理簇用于执行该任务处理请求。
在一种具体实现方式中,在根据固化处理簇以及动态处理簇,对该任务处理请求进行调度时,根据固化处理簇以及动态处理簇的负载情况,灵活选择将任务处理请求分配至固化处理簇和/或动态处理簇。具体实施时,可以从目标任务所对应的各个处理簇中选择一个处理簇分配任务处理请求,从而在每次接收到任务处理请求时按照各个处理簇的当前负载灵活分配;也可以将该任务处理请求同时分配给该目标任务所对应的各个处理簇,从而实现多个处理簇的并行化处理。
另外,在后一种方式中,又可以细分为如下两种情况:在第一种情况中,将任务处理请求划分为多个任务处理子请求,分别将各个任务处理子请求分配给该目标任务所对应的各个处理簇,从而通过各个处理簇的并行化处理实现提升处理效率的目的。在第二种情况中,将任务处理请求同时分配给该目标任务所对应的各个处理簇,并将各个处理簇返回的运行结果进行比对,从而筛选正确的处理结果,进而提升可靠性。本公开不限定具体的调度方式。总之,在本实施例中,通过配置动态处理簇,能够使可供调度的处理簇数量增加,进而使任务调度过程更加灵活。
由此可见,该方式能够根据目标任务所对应的固化处理簇的配置信息,动态生成动态处理簇,从而使动态处理簇能够与固化处理簇共同执行任务处理过程,该任务调度方式能够在任务处理过程中灵活配置动态处理簇,从而便于根据任务处理进度灵活调整处理簇的数量,提升了任务调度的灵活性。
为了实现各个任务的可靠调度,在一种实现方式中,预先通过预编译方式为各个任务配置对应的处理簇,以使该任务能够由对应的处理簇提供服务。预编译方式能够确保某一任务所对应的请求都由对应的处理簇完成,从而能够确保任务处理的连贯性。但是,发明人在实现本公开的过程中发现,通过预编译实现的任务调度方式不够灵活,各个任务所对应的处理簇一旦配置完成就无法动态更改,无法适用于负载情况瞬息变化的复杂应用场景。
为了解决上述问题,图2示出了本公开的一个实施例提供的一种基于众核系统的任务调度方法的流程示意图。在图2所示的实施例中,一个众核芯片上设置有多个能够相互通信的处理核。其中,各个处理核具有逻辑地址(也叫逻辑标识)以及物理地址(也叫物理标识)中的至少一个,逻辑地址用于从处理核的业务功能的角度来唯一标识一个处理核,物理地址用于从处理核的实际物理位置的角度来唯一标识一个处理核。如图2所示,该方法包括:
步骤S210:从众核系统的各个处理任务中筛选目标任务。
其中,本步骤为一个可选的步骤,在本公开其他的实施例中,也可以省略本步骤。
本步骤用于从多个处理任务中筛选目标任务。其中,目标任务是指:需要为其配置动态处理簇的任务。其中,目标任务包括:负载量大于预设值的第一类任务,和/或任务属性为预设属性的第二类任务。
具体的,可以根据处理任务的任务信息进行筛选,其中,任务信息包括多种,例如,既可以是处理任务所对应的固化处理簇的负载量信息,也可以是处理任务的任务属性信息。下面分别针对两种类型的任务信息进行介绍:
在第一种情况中,任务信息为处理任务所对应的固化处理簇的负载量信息。相应的,在本步骤中,动态检测处理任务所对应的固化处理簇的负载量;当处理任务所对应的固化处理簇的负载量大于预设负载阈值时,将其确定为目标任务。具体实施时,可以检测处理任务所对应的全部固化处理簇的总负载量,也可以分别检测处理任务所对应的每个固化处理簇的负载量,本公开对具体实施细节不做限定。其中,检测负载量的操作既可以由目标任务所对应的任务调度装置实施,也可以由任一处于空闲状态的动态核实施,本公开对负载检测操作的执行主体不做限定。
在第二种情况中,任务信息为处理任务的任务属性信息。相应的,在本步骤中,获取处理任务的任务属性信息;当任务属性信息与预设属性匹配时,确定其为目标任务,需要配置动态处理簇,相应的,执行本实施例中的后续步骤。其中,任务属性信息可以为多种,例如,包括:任务类型信息、和/或任务时效性信息。具体实施时,可根据处理任务的类型、重要性、优先级、时效性等多种因素判断是否需要为其分配动态处理簇。比如,若需要提升目标任务的任务处理质量或缩短任务处理时间,则需要为其分配动态处理簇。
上述两种情况既可以单独使用,也可以结合使用,本公开对此不做限定。当二者结合使用时,可针对不同类型的任务设置不同的优先级,例如,优先将负载量超载的任务确定为目标任务。相应的,在本步骤中,通过以下方式实现:监测众核系统中的各个处理任务的负载量;判断是否存在负载量大于预设值的第一类任务,若是,将第一类任务确定为目标任务;若否,将任务属性为预设属性的第二类任务确定为目标任务;其中,所述任务属性包括:类型属性和/或时效属性。
步骤S220:获取目标任务所对应的固化处理簇的配置信息,将多个空闲处理核配置为与配置信息相匹配的动态处理簇。
其中,目标任务对应的固化处理簇的数量可以为多个。其中,固化处理簇是指:由多个处理核固化得到的、专用于处理该目标任务的处理簇。其中,固化是指:将至少两个处理核通过编译方式或其他配置方式设置为一组与预设任务相对应的处理簇。具体的,众核系统中包含多个处理核,其中,部分处理核固化为一组处理簇,相应的,众核系统中可以包括多组处理簇,多组处理簇分别与多个目标任务相对应。例如,针对一个目标任务而言,其对应于至少一个处理簇;对于一个处理簇而言,其对应于至少一个目标任务。通过固化操作能够将处理核划分为处理簇,从而便于由多个处理核共同完成任务处理操作。相应的,在本实施例中,将未固化的处理核称作动态核,动态核是根据业务需要预留的能够在后期灵活配置的处理核。
下面详细介绍动态处理簇的配置方式:首先,获取多个空闲处理核。然后,按照固化处理簇的配置信息,将多个空闲处理核配置为动态处理簇,具体的,可以在众核系统中设置多个空闲处理核之间的固化关系,从而将多个空闲处理核临时组建为一个动态处理簇。最后,将固化处理簇中包含的任务依赖信息复制至动态处理簇。其中,任务依赖信息主要是指:固化处理簇在执行目标任务时所需的信息内容,如任务描述信息等,具体包括处理核中存储的程序、数据、参数等。总之,通过将固化处理簇中的内容复制到动态处理簇中,能够使动态处理簇具备与固化处理簇相同的业务功能。具体实施时,可通过例化(也叫实例化)操作将空闲处理核复制为与固化处理簇中的处理核内容相同的处理核。
其中,多个空闲处理核的数量与固化处理簇中包含的处理核的数量匹配。具体的,在获取多个空闲处理核时,需要从众核系统中筛选多个处于空闲状态的动态核;其中,动态核为未固化的处理核。由于动态核的状态包括空闲状态以及非空闲状态,因此,需要从动态核中筛选当前处于空闲状态的处理核。若筛选得到的处于空闲状态的动态核的数量不小于配置动态处理簇所需的数量,则执行后续步骤;若筛选得到的处于空闲状态的动态核的数量小于配置动态处理簇所需的数量,则需要继续监测各个动态核的状态,直至处于空闲状态的动态核的数量不小于配置动态处理簇所需的数量。
另外,若筛选得到的处于空闲状态的动态核的数量大于配置动态处理簇所需的数量,则可以灵活根据多种策略选择多个空闲处理核。例如,可以按照随机选择策略进行选择,该方式有助于提升处理速度。又如,还可以根据各个处于空闲状态的动态核的位置信息进行选择,该方式有助于降低路由拥堵概率。具体的,在后一种方式中,获取到各个处于空闲状态的动态核的位置信息之后,根据位置信息,从多个处于空闲状态的动态核中筛选得到多个空闲处理核。具体筛选方式可通过下述两种方式中的至少一种实现:
在第一种筛选方式中,结合目标任务的输入数据所对应的处理核的位置、和/或目标任务的输出数据所对应的处理核的位置,筛选得到多个空闲处理核。例如,将距离目标任务的输入数据所对应的处理核或距离目标任务的输出数据所对应的处理核较近的动态核筛选为空闲处理核。该方式能够确保空闲处理核在获取输入输出数据时路由跳数较少,从而有助于提升处理效率。
在第二种筛选方式中,将位于众核系统的指定区域(例如非中心区域)的动态核筛选为空闲处理核。
在一些可选的实施例中,相较于处于中心区域的两个处理核而言,处于非中心区域的两个处理核之间发生路由拥堵的概率更低,因此,将位于众核系统的非中心区域的动态核筛选为空闲处理核有助于降低路由拥堵率。此处的非中心区域不一定是物理位置上的非中心区域,还可以是路由角度的非中心区域。例如,通常情况下,如两个处理核之间的路径未经过芯片的中心区域,则路由拥堵概率较低;如两个处理核之间的路径经过芯片的中心区域,则路由拥堵概率较高。因此,在该方式中,可以从防止路由拥堵的角度进行筛选。
另外,在筛选空闲处理核时,还可以根据多个处于空闲状态的动态核的位置分布情况,筛选多个相互之间距离较近的动态核作为一组空闲处理核,从而有助于降低动态处理簇内部的通信时延。
步骤S230:将动态处理簇配置为与目标任务相对应的可用处理簇。
具体的,需要设置动态处理簇与目标任务之间的对应关系,以使该动态处理簇成为可供目标任务调度的可用处理簇。该对应关系可以由众核系统中的控制器进行维护,总之,本公开不限定设置动态处理簇与目标任务之间的对应关系的具体实现方式,只要能够将动态处理簇分配给该目标任务即可。
在一种具体的实现方式中,将动态处理簇挂载至与目标任务相对应的任务调度装置,以供该任务调度装置根据动态处理簇对目标任务进行调度。其中,该任务调度装置可以设置在任一处理核中,例如,可以将任务调度装置设置在目标任务所对应的固化处理簇所包含的一个处理核中,也可以将任务调度装置设置在上述的动态核中。具体的,该目标任务所对应的各个固化处理簇已经预先挂载至该任务调度装置,在本步骤中,通过将动态处理簇挂载至该任务调度装置,能够使该任务调度装置根据各个固化处理簇以及动态处理簇灵活实现任务调度。
步骤S240:当接收到与目标任务相对应的任务处理请求时,根据固化处理簇以及动态处理簇,对该任务处理请求进行调度。
其中,与目标任务相对应的任务处理请求泛指与目标任务相关联的各类数据请求,例如,可以是目标任务的计算请求、分配请求、校验请求等各类请求。相应的,本步骤的执行主体可以是上述的任务调度装置。
具体的,检测固化处理簇的负载量以及动态处理簇的负载量;根据检测结果,将任务处理请求分配至固化处理簇和/或动态处理簇。具体实施时,可以从目标任务所对应的各个处理簇中选择一个处理簇分配任务处理请求,从而在每次接收到任务处理请求时按照各个处理簇的当前负载灵活分配;也可以将该任务处理请求同时分配给该目标任务所对应的各个处理簇,从而实现多个处理簇的并行化处理。
另外,在后一种方式中,又可以细分为如下两种情况:在第一种情况中,将任务处理请求划分为多个任务处理子请求,分别将各个任务处理子请求分配给该目标任务所对应的各个处理簇,从而通过各个处理簇的并行化处理实现提升处理效率的目的。由此可见,通过该方式,能够提升任务的执行算力,从而有助于更快、更好的执行任务。
在第二种情况中,将任务处理请求同时分配给该目标任务所对应的各个处理簇,并将各个处理簇返回的运行结果进行比对,从而筛选正确的处理结果,进而提升可靠性。例如,若多个处理簇分别返回了多个运行结果,则统计相同运行结果的出现次数,将出现次数较多的运行结果确定为正确的处理结果,该方式适用于任务可靠性要求较高的场景。
本公开不限定具体的调度方式。总之,在本实施例中,通过配置动态处理簇,能够使可供调度的处理簇数量增加,进而使任务调度过程更加灵活。
步骤S250:卸载上述的动态处理簇。
其中,本步骤为一个可选的步骤,若目标任务为长期性任务,则可以省略本步骤,从而使动态处理簇处于持续可用的状态。
具体的,本步骤限定的卸载操作的执行时机可根据具体业务灵活设定。例如,在对任务处理请求进行调度之后,进一步清空动态处理簇的负载信息并卸载该动态处理簇,将该动态处理簇中包含的各个处理核重置为空闲状态,以便于使动态处理簇中的处理核能够在后续过程中重新进行配置。
具体实施时,可以在检测到目标任务所对应的固化处理簇的负载量低于预设值时执行本步骤,也可以在目标任务处于业务低峰时段时执行本步骤。例如,可以在目标任务的业务高峰时段,借助动态处理簇提升任务处理质量,从而改善用户体验;而在业务低峰时段,卸载动态处理簇,从而节约系统资源。
综上可知,本申请针对动态核生成动态处理簇,以实现灵活调度的操作既可以是在任务负载紧张时执行,相应的,由动态核来承担该任务的部分负载;也可以是在任务负载不紧张,但任务的处理要求较高时执行,相应的,借助动态核构成的动态处理簇实现改善服务质量的目的。在后一种情况中,在任务负载不紧张时,通过动态核构成的动态处理簇能够实现以下效果中的至少一种:视频或图像的画质更好、通信误码率更低、延迟更低、压缩比更高。例如,本实施例中的方式能够应用于卷积码解码的应用场景,在该场景中,针对接收到的数据默认采用维特比硬解码方式。采用本公开提供的方式之后,可以实现软解码操作,相应的,路由中含有更多的概率,用软比特作为输入,通过维特比软解码的方式实现。其中,输入的待解码的比特信息为多值信息(即软比特)。相较于传统方式而言,本实施例中的方式运算量更大但误码率更低。由此可见,本实施例中的方式能够提供更高的算力,从而实现更佳的效果。
另外,本公开又一实施例还提供了一种基于众核系统的任务调度系统,图3示出了该系统的结构示意图,如图3所示,该系统包括:
动态配置模块31,适于获取目标任务所对应的固化处理簇的配置信息,将至少一个空闲处理核配置为与所述配置信息相匹配的动态处理簇;
调度模块32,适于当接收到与所述目标任务相对应的任务处理请求时,根据所述固化处理簇以及所述动态处理簇,对所述任务处理请求进行调度;
其中,所述目标任务包括:负载量大于预设值的第一类任务,和/或任务属性为预设属性的第二类任务。
可选地,所述动态配置模块具体适于:
获取多个空闲处理核;其中,所述多个空闲处理核的数量与所述固化处理簇中包含的处理核的数量匹配;
按照所述固化处理簇的配置信息,将所述多个空闲处理核配置为动态处理簇;
将所述固化处理簇中包含的任务依赖信息复制至所述动态处理簇。
可选地,所述动态配置模块具体适于:
从所述众核系统中筛选多个处于空闲状态的动态核;其中,所述动态核为未固化的处理核;
获取各个处于空闲状态的动态核的位置信息,根据所述位置信息,从多个处于空闲状态的动态核中筛选得到多个空闲处理核。
可选地,所述动态配置模块具体适于:
结合所述目标任务的输入数据所对应的处理核的位置、和/或所述目标任务的输出数据所对应的处理核的位置,筛选得到多个空闲处理核;或者,
将位于所述众核系统的指定区域的动态核筛选为空闲处理核。
可选地,所述动态配置模块进一步适于:
将所述动态处理簇配置为与所述目标任务相对应的可用处理簇。
可选地,所述调度模块进一步适于:清空所述动态处理簇的负载信息,将所述动态处理簇中包含的各个处理核重置为空闲状态。
可选地,所述调度模块具体适于:
检测所述固化处理簇的负载量以及所述动态处理簇的负载量;
根据检测结果,将所述任务处理请求分配至所述固化处理簇和/或所述动态处理簇。
可选地,所述动态配置模块进一步适于:
监测众核系统中的各个处理任务的负载量;
判断是否存在负载量大于预设值的第一类任务,若是,将所述第一类任务确定为所述目标任务;
若否,将任务属性为预设属性的第二类任务确定为所述目标任务;其中,所述任务属性包括:类型属性和/或时效属性。
其中,该系统包括多个处理核,上述的动态配置模块以及调度模块可集成在任一处理核中,具体执行逻辑可参照方法实施例中相应步骤的描述,此处不再赘述。
另外,参照图4,本公开实施例提供一种电子设备,其包括:
一个或多个处理器101;
存储器102,其上存储有一个或多个程序,当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现上述的任务调度方法。
一个或多个I/O接口103,连接在处理器与存储器之间,配置为实现处理器与存储器的信息交互。
其中,处理器101为具有数据处理能力的器件,其包括但不限于中央处理器(CPU)等;存储器102为具有数据存储能力的器件,其包括但不限于随机存取存储器(RAM,更具体如SDRAM、DDR等)、只读存储器(ROM)、带电可擦可编程只读存储器(EEPROM)、闪存(FLASH);I/O接口(读写接口)103连接在处理器101与存储器102间,能实现处理器101与存储器102的信息交互,其包括但不限于数据总线(Bus)等。
在一些实施例中,处理器101、存储器102和I/O接口103通过总线104相互连接,进而与计算设备的其它组件连接。
另外,参照图5,本公开实施例提供一种计算机可读介质,其上存储有计算机程序,程序被处理器执行时实现上述任一实施例提供的上述的任务调度方法。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其它数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光盘存储、磁盒、磁带、磁盘存储或其它磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其它的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其它传输机制之类的调制数据信号中的其它数据,并且可包括任何信息递送介质。
本文已经公开了示例实施例,并且虽然采用了具体术语,但它们仅用于并仅应当被解释为一般说明性含义,并且不用于限制的目的。在一些实例中,对本领域技术人员显而易见的是,除非另外明确指出,否则可单独使用与特定实施例相结合描述的特征、特性和/或元素,或可与其它实施例相结合描述的特征、特性和/或元件组合使用。因此,本领域技术人员将理解,在不脱离由所附的权利要求阐明的本公开的范围的情况下,可进行各种形式和细节上的改变。
Claims (11)
1.一种基于众核系统的任务调度方法,包括:
获取目标任务所对应的固化处理簇的配置信息,将至少一个空闲处理核配置为与所述配置信息相匹配的动态处理簇;
当接收到与所述目标任务相对应的任务处理请求时,根据所述固化处理簇以及所述动态处理簇,对所述任务处理请求进行调度;
其中,所述目标任务包括:负载量大于预设值的第一类任务,和/或任务属性为预设属性的第二类任务。
2.根据权利要求1所述的方法,其中,所述获取目标任务所对应的固化处理簇的配置信息,将至少一个空闲处理核配置为与所述配置信息相匹配的动态处理簇包括:
获取多个空闲处理核;其中,所述多个空闲处理核的数量与所述固化处理簇中包含的处理核的数量匹配;
按照所述固化处理簇的配置信息,将所述多个空闲处理核配置为动态处理簇;
将所述固化处理簇中包含的任务依赖信息复制至所述动态处理簇。
3.根据权利要求2所述的方法,其中,所述获取多个空闲处理核包括:
从所述众核系统中筛选多个处于空闲状态的动态核;其中,所述动态核为未固化的处理核;
获取各个处于空闲状态的动态核的位置信息,根据所述位置信息,从多个处于空闲状态的动态核中筛选得到多个空闲处理核。
4.根据权利要求3所述的方法,其中,所述根据所述位置信息,从多个处于空闲状态的动态核中筛选得到多个空闲处理核包括:
结合所述目标任务的输入数据所对应的处理核的位置、和/或所述目标任务的输出数据所对应的处理核的位置,筛选得到多个空闲处理核;或者,
将位于所述众核系统的指定区域的动态核筛选为空闲处理核。
5.根据权利要求1-4任一所述的方法,其中,所述将至少一个空闲处理核配置为与所述配置信息相匹配的动态处理簇之后,还包括:
将所述动态处理簇配置为与所述目标任务相对应的可用处理簇。
6.根据权利要求1-4任一所述的方法,其中,所述对所述任务处理请求进行调度之后,还包括:清空所述动态处理簇的负载信息,将所述动态处理簇中包含的各个处理核重置为空闲状态。
7.根据权利要求1-4任一所述的方法,其中,所述根据所述固化处理簇以及所述动态处理簇,对所述任务处理请求进行调度包括:
检测所述固化处理簇的负载量以及所述动态处理簇的负载量;
根据检测结果,将所述任务处理请求分配至所述固化处理簇和/或所述动态处理簇。
8.根据权利要求1-4任一所述的方法,其中,所述获取目标任务所对应的固化处理簇的配置信息之前,还包括:
监测众核系统中的各个处理任务的负载量;
判断是否存在负载量大于预设值的第一类任务,若是,将所述第一类任务确定为所述目标任务;
若否,将任务属性为预设属性的第二类任务确定为所述目标任务;其中,所述任务属性包括:类型属性和/或时效属性。
9.一种基于众核系统的任务调度系统,包括:
动态配置模块,适于获取目标任务所对应的固化处理簇的配置信息,将至少一个空闲处理核配置为与所述配置信息相匹配的动态处理簇;
调度模块,适于当接收到与所述目标任务相对应的任务处理请求时,根据所述固化处理簇以及所述动态处理簇,对所述任务处理请求进行调度;
其中,所述目标任务包括:负载量大于预设值的第一类任务,和/或任务属性为预设属性的第二类任务。
10.一种电子设备,其包括:
一个或多个处理器;
存储装置,其上存储有一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现根据权利要求1至8中任意一项所述的基于众核系统的任务调度方法。
11.一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现以下方法中的至少一者:
根据权利要求1至8中任意一项所述的基于众核系统的任务调度方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111264399.0A CN116048740A (zh) | 2021-10-28 | 2021-10-28 | 基于众核系统的任务调度方法、系统、电子设备及介质 |
PCT/CN2022/126931 WO2023071969A1 (zh) | 2021-10-28 | 2022-10-24 | 基于众核系统的任务调度方法、系统、电子设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111264399.0A CN116048740A (zh) | 2021-10-28 | 2021-10-28 | 基于众核系统的任务调度方法、系统、电子设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116048740A true CN116048740A (zh) | 2023-05-02 |
Family
ID=86122354
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111264399.0A Pending CN116048740A (zh) | 2021-10-28 | 2021-10-28 | 基于众核系统的任务调度方法、系统、电子设备及介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN116048740A (zh) |
WO (1) | WO2023071969A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116755864A (zh) * | 2023-08-14 | 2023-09-15 | 南京翼辉信息技术有限公司 | 一种避免大小核处理器激进迁移的控制方法 |
CN117472448B (zh) * | 2023-12-28 | 2024-03-26 | 山东省计算中心(国家超级计算济南中心) | 一种申威众核处理器从核簇加速并行方法、设备及介质 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101354664B (zh) * | 2008-08-19 | 2011-12-28 | 中兴通讯股份有限公司 | 多核处理器中断负载均衡方法和装置 |
CN103870322B (zh) * | 2012-12-17 | 2017-06-30 | 联发科技股份有限公司 | 控制任务转移的方法、非暂时性计算机可读介质、异构多核系统 |
US10198262B2 (en) * | 2015-08-05 | 2019-02-05 | Sonicwall Inc. | Adaptive core grouping |
US9891935B2 (en) * | 2015-08-13 | 2018-02-13 | Altera Corporation | Application-based dynamic heterogeneous many-core systems and methods |
CN110968415B (zh) * | 2018-09-29 | 2022-08-05 | Oppo广东移动通信有限公司 | 多核处理器的调度方法、装置及终端 |
CN112835719B (zh) * | 2021-02-10 | 2023-10-31 | 北京灵汐科技有限公司 | 任务处理的方法和装置、众核系统、计算机可读介质 |
CN112925525A (zh) * | 2021-03-26 | 2021-06-08 | 北京灵汐科技有限公司 | 编译方法、映射方法、服务器、芯片、装置、介质 |
-
2021
- 2021-10-28 CN CN202111264399.0A patent/CN116048740A/zh active Pending
-
2022
- 2022-10-24 WO PCT/CN2022/126931 patent/WO2023071969A1/zh unknown
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116755864A (zh) * | 2023-08-14 | 2023-09-15 | 南京翼辉信息技术有限公司 | 一种避免大小核处理器激进迁移的控制方法 |
CN117472448B (zh) * | 2023-12-28 | 2024-03-26 | 山东省计算中心(国家超级计算济南中心) | 一种申威众核处理器从核簇加速并行方法、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2023071969A1 (zh) | 2023-05-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8307370B2 (en) | Apparatus and method for balancing load in multi-core processor system | |
WO2023071969A1 (zh) | 基于众核系统的任务调度方法、系统、电子设备及介质 | |
CN110737534A (zh) | 任务的处理方法、装置和服务器 | |
US20110119679A1 (en) | Method and system of an i/o stack for controlling flows of workload specific i/o requests | |
CN113504985B (zh) | 一种任务处理方法以及网络设备 | |
US10691375B2 (en) | Memory network to prioritize processing of a memory access request | |
CN109450803B (zh) | 流量调度方法、装置和系统 | |
CN107368367B (zh) | 资源分配的处理方法、装置及电子设备 | |
US20130081045A1 (en) | Apparatus and method for partition scheduling for manycore system | |
CN112860387A (zh) | 分布式任务调度方法、装置、计算机设备及存储介质 | |
CN110795234A (zh) | 一种资源调度方法及装置 | |
CN116414542B (zh) | 任务调度方法、装置、设备及存储介质 | |
CN116248699B (zh) | 多副本场景下的数据读取方法、装置、设备及存储介质 | |
CN111831408A (zh) | 异步任务处理方法、装置、电子设备及介质 | |
CN116483547A (zh) | 资源调度方法、装置、计算机设备和存储介质 | |
US9678752B2 (en) | Scheduling apparatus and method of dynamically setting the size of a rotating register | |
CN113127179A (zh) | 资源调度方法、装置、电子设备及计算机可读介质 | |
CN110704182A (zh) | 深度学习的资源调度方法、装置及终端设备 | |
CN114090199A (zh) | 基于soc智能网卡的多租户应用程序隔离方法和装置 | |
WO2021077747A1 (zh) | 一种实现应用加载的方法、装置、计算机存储介质及终端 | |
CN114077493A (zh) | 一种资源分配方法及相关设备 | |
CN111524059A (zh) | 一种图像缓存时内存利用方法、系统、终端和存储介质 | |
CN111949438A (zh) | 多媒体数据备份方法、装置、服务器和介质 | |
US20230195527A1 (en) | Workload distribution by utilizing unused central processing unit capacity in a distributed computing system | |
CN117493048B (zh) | 消息动态处理方法、装置、设备和介质 |
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 |