CN112579299A - 资源调度方法、电子设备及存储介质 - Google Patents
资源调度方法、电子设备及存储介质 Download PDFInfo
- Publication number
- CN112579299A CN112579299A CN202011577008.6A CN202011577008A CN112579299A CN 112579299 A CN112579299 A CN 112579299A CN 202011577008 A CN202011577008 A CN 202011577008A CN 112579299 A CN112579299 A CN 112579299A
- Authority
- CN
- China
- Prior art keywords
- processor
- mode
- workload
- threshold
- current workload
- 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.)
- Granted
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
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5018—Thread allocation
-
- 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)
- Power Sources (AREA)
Abstract
本申请实施例提供一种资源调度方法、电子设备及存储介质,涉及计算机领域,该方法包括:获取一个或多个待处理任务;检测处理器的运行状况;基于运行状况确定处理器的工作负荷;基于工作负荷确定工作模式;基于确定的工作模式对一个或多个待处理任务分配资源。本申请实施例提供的方法,能够对SMT架构的处理器在性能和功耗之间进行平衡,以达到用户的预期。
Description
技术领域
本申请实施例涉及计算机领域,尤其涉及一种资源调度方法、电子设备及存储介质。
背景技术
随着信息技术的快速发展,处理器(例如,CPU或GPU)的应用越来越广泛。处理器可以包括具有同步执行的指令的多个硬件线程,此类处理器被称为实施同步多线程(Simultaneous Multi Threading,SMT)。该SMT是用于通过允许多个独立执行线程更好地利用由处理器架构提供的资源来改进处理器总体效率的技术。
然而,在支持SMT的处理器架构中,处理器对资源的调度通常达不到预期效果,例如,上述处理器通常不能在性能和功耗之间达到平衡。
发明内容
本申请实施例提供了一种资源调度方法、电子设备及存储介质,以提供一种资源调度的方式。
第一方面,本申请实施例提供了一种资源调度方法,应用于电子设备,所述电子设备包括处理器,包括:
获取一个或多个待处理任务;
检测所述处理器的运行状况;
基于所述运行状况确定所述处理器的当前工作负荷;
基于所述处理器的当前工作负荷确定工作模式;
基于所述确定的工作模式对一个或多个所述待处理任务分配资源。
其中一种可能的实现方式中,所述处理器包括多个内核,每个所述内核包括多个线程,所述检测所述处理器的运行状况包括:
检测每个内核中每个线程的运行状态。
其中一种可能的实现方式中,所述基于所述运行状况确定所述处理器的当前工作负荷包括:
判断每个所述线程的运行状态;
获取每个处于运行中的线程的当前工作负荷;
对每个所述处于运行中的线程的当前工作负荷进行统计,得到所述处理器的当前工作负荷。
其中一种可能的实现方式中,所述工作模式包括第一模式及第二模式,所述基于所述处理器的当前工作负荷确定工作模式包括:
将所述处理器的当前工作负荷与预设第一阈值进行比较,以及将所述处理器的当前工作负荷及一个或多个所述待处理任务的工作负荷累计得到的预测总工作负荷与所述第一阈值进行比较;
若所述处理器的当前工作负荷小于所述第一阈值,且所述预测总工作负荷小于所述第一阈值,则所述确定的工作模式为所述第一模式;
若所述处理器的当前工作负荷大于或等于所述第一阈值,或所述预测总工作负荷大于或等于所述第一阈值,则所述确定的工作模式为所述第二模式。
其中一种可能的实现方式中,所述工作模式包括第一模式及第二模式,所述基于所述处理器的当前工作负荷确定工作模式包括:
将所述处理器的当前工作负荷与预设第一阈值进行比较,以及将所述处理器的当前工作负荷及一个或多个所述待处理任务的工作负荷累计得到的预测总工作负荷与预设第二阈值进行比较;其中,所述第一阈值与所述第二阈值不相等;
若所述处理器的当前工作负荷小于所述第一阈值,且所述预测总工作负荷小于所述第二阈值,则所述确定的工作模式为所述第一模式;
若所述处理器的当前工作负荷大于或等于所述第一阈值,或所述预测总工作负荷大于或等于所述第二阈值,则所述确定的工作模式为所述第二模式。
其中一种可能的实现方式中,所述基于所述确定的工作模式对一个或多个所述待处理任务分配资源包括:
获取每个所述内核的运行状态,基于所述确定的工作模式及每个所述内核的运行状态确定内核;
将所述确定的内核中的空闲线程分配给一个或多个所述待处理任务。
其中一种可能的实现方式中,所述内核的运行状态包括第一状态及第二状态,所述基于所述确定的工作模式及每个所述内核的运行状态确定内核包括:
若所述确定的工作模式为第一模式,则确定所述内核为所述运行状态为所述第一状态的内核;
若所述确定的工作模式为第二模式,则确定所述内核为所述运行状态为所述第二状态的内核。
第二方面,本申请实施例提供一种资源调度装置,包括:
获取模块,用于获取一个或多个待处理任务;
检测模块,用于检测所述处理器的运行状况;
统计模块,用于基于所述运行状况确定所述处理器的当前工作负荷;
确定模块,用于基于所述处理器的当前工作负荷确定工作模式;
调度模块,用于基于所述确定的工作模式对一个或多个所述待处理任务分配资源。
其中一种可能的实现方式中,所述处理器包括多个内核,每个所述内核包括多个线程,上述检测模块还用于检测每个内核中每个线程的运行状态。
其中一种可能的实现方式中,上述统计模块还用于判断每个所述线程的运行状态;获取每个处于运行中的线程的当前工作负荷;对每个所述处于运行中的线程的当前工作负荷进行统计,得到所述处理器的当前工作负荷。
其中一种可能的实现方式中,所述工作模式包括第一模式及第二模式,上述确定模块还用于将所述处理器的当前工作负荷与预设第一阈值进行比较,以及将所述处理器的当前工作负荷及一个或多个所述待处理任务的工作负荷累计得到的预测总工作负荷与所述第一阈值进行比较;若所述处理器的当前工作负荷小于所述第一阈值,且所述预测总工作负荷小于所述第一阈值,则所述确定的工作模式为所述第一模式;若所述处理器的当前工作负荷大于或等于所述第一阈值,或所述预测总工作负荷大于或等于所述第一阈值,则所述确定的工作模式为所述第二模式。
其中一种可能的实现方式中,所述工作模式包括第一模式及第二模式,上述确定模块还用于将所述处理器的当前工作负荷与预设第一阈值进行比较,以及将所述处理器的当前工作负荷及一个或多个所述待处理任务的工作负荷累计得到的预测总工作负荷与预设第二阈值进行比较;其中,所述第一阈值与所述第二阈值不相等;若所述处理器的当前工作负荷小于所述第一阈值,且所述预测总工作负荷小于所述第二阈值,则所述确定的工作模式为所述第一模式;若所述处理器的当前工作负荷大于或等于所述第一阈值,或所述预测总工作负荷大于或等于所述第二阈值,则所述确定的工作模式为所述第二模式。
其中一种可能的实现方式中,上述调度模块还用于获取每个所述内核的运行状态,基于所述确定的工作模式及每个所述内核的运行状态确定内核;将所述确定的内核中的空闲线程分配给一个或多个所述待处理任务。
其中一种可能的实现方式中,所述内核的运行状态包括第一状态及第二状态,上述调度模块还用于若所述确定的工作模式为第一模式,则确定所述内核为所述运行状态为所述第一状态的内核;若所述确定的工作模式为第二模式,则确定所述内核为所述运行状态为所述第二状态的内核。
第三方面,本申请实施例提供一种电子设备,包括:
存储器,上述存储器用于存储计算机程序代码,上述计算机程序代码包括指令,当上述电子设备从上述存储器中读取上述指令,以使得上述电子设备执行以下步骤:
获取一个或多个待处理任务;
检测所述处理器的运行状况;
基于所述运行状况确定所述处理器的当前工作负荷;
基于所述处理器的当前工作负荷确定工作模式;
基于所述确定的工作模式对一个或多个所述待处理任务分配资源。
其中一种可能的实现方式中,所述处理器包括多个内核,每个所述内核包括多个线程,上述指令被上述电子设备执行时,使得上述电子设备执行检测所述处理器的运行状况的步骤包括:
检测每个内核中每个线程的运行状态。
其中一种可能的实现方式中,上述指令被上述电子设备执行时,使得上述电子设备执行基于所述运行状况确定所述处理器的当前工作负荷的步骤包括:
判断每个所述线程的运行状态;
获取每个处于运行中的线程的当前工作负荷;
对每个所述处于运行中的线程的当前工作负荷进行统计,得到所述处理器的当前工作负荷。
其中一种可能的实现方式中,所述工作模式包括第一模式及第二模式,上述指令被上述电子设备执行时,使得上述电子设备执行基于所述处理器的当前工作负荷确定工作模式的步骤包括:
将所述处理器的当前工作负荷与预设第一阈值进行比较,以及将所述处理器的当前工作负荷及一个或多个所述待处理任务的工作负荷累计得到的预测总工作负荷与所述第一阈值进行比较;
若所述处理器的当前工作负荷小于所述第一阈值,且所述预测总工作负荷小于所述第一阈值,则所述确定的工作模式为所述第一模式;
若所述处理器的当前工作负荷大于或等于所述第一阈值,或所述预测总工作负荷大于或等于所述第一阈值,则所述确定的工作模式为所述第二模式。
其中一种可能的实现方式中,所述工作模式包括第一模式及第二模式,上述指令被上述电子设备执行时,使得上述电子设备执行基于所述处理器的当前工作负荷确定工作模式的步骤包括:
将所述处理器的当前工作负荷与预设第一阈值进行比较,以及将所述处理器的当前工作负荷及一个或多个所述待处理任务的工作负荷累计得到的预测总工作负荷与预设第二阈值进行比较;其中,所述第一阈值与所述第二阈值不相等;
若所述处理器的当前工作负荷小于所述第一阈值,且所述预测总工作负荷小于所述第二阈值,则所述确定的工作模式为所述第一模式;
若所述处理器的当前工作负荷大于或等于所述第一阈值,或所述预测总工作负荷大于或等于所述第二阈值,则所述确定的工作模式为所述第二模式。
其中一种可能的实现方式中,上述指令被上述电子设备执行时,使得上述电子设备执行基于所述确定的工作模式对一个或多个所述待处理任务分配资源的步骤包括:
获取每个所述内核的运行状态,基于所述确定的工作模式及每个所述内核的运行状态确定内核;
将所述确定的内核中的空闲线程分配给一个或多个所述待处理任务。
其中一种可能的实现方式中,所述内核的运行状态包括第一状态及第二状态,上述指令被上述电子设备执行时,使得上述电子设备执行基于所述确定的工作模式及每个所述内核的运行状态确定内核的步骤包括:
若所述确定的工作模式为第一模式,则确定所述内核为所述运行状态为所述第一状态的内核;
若所述确定的工作模式为第二模式,则确定所述内核为所述运行状态为所述第二状态的内核。
第四方面,本申请实施例提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,当其在计算机上运行时,使得计算机执行如第一方面所述的方法。
第五方面,本申请实施例提供一种计算机程序,当上述计算机程序被计算机执行时,用于执行第一方面所述的方法。
在一种可能的设计中,第五方面中的程序可以全部或者部分存储在与处理器封装在一起的存储介质上,也可以部分或者全部存储在不与处理器封装在一起的存储器上。
附图说明
图1为本申请实施例提供的处理器架构示意图;
图2为本申请实施例提供的资源调度方法的流程图;
图3为本申请实施例提供的资源调度的效果示意图;
图4为本申请实施例提供的资源调度装置的结构示意图;
图5为本申请实施例提供的电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。其中,在本申请实施例的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本申请实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
目前,改进计算机系统性能的方法是通过使用多个处理器,这些处理器通过并行的执行一个计算机程序的多个部分或者多个不同的计算机程序来分担处理负荷。另一种改进计算机系统性能的方法是通过使多个线程(Thread)能够在每个处理器上执行,其中,每个线程处理一个不同的工作负荷或者一个或多个工作负荷的不同部分。
通常来说,处理器对资源调度的最小单位为内核(Core),例如,内核1、内核2等。然而,在支持SMT的处理器上,处理器对资源调度的最小单位由内核变为内核中的线程,其中,每个内核可以有多个线程,线程之间可以共享内核的资源,且可以并行工作,以加快处理器的处理速度。但是,由于线程之间对内核资源的共享,由此也会导致性能的损失,例如,调用一个内核的资源产生的性能要低于调用两个内核产生的资源产生的性能。此外,虽然一个内核的性能要低于两个内核,但是一个内核运行的功耗要低于两个内核运行的功耗。因此,为了平衡性能和功耗之间的问题,调度策略对处理器来说显得至关重要。
基于上述问题,本申请实施例提出了一种资源调度方法。
现结合图1-图3对本申请实施例提供的资源调度方法进行说明。
图1为本申请实施例提供的处理器100的架构示意图,如图1所示,上述处理器100可以包括多个内核(例如,内核110、内核120等),其中,每个内核可以包括多个线程,示例性的,内核110可以包括线程111、线程112、线程113等,内核120可以包括线程121、线程122、线程123等。需要说明的是,上述内核的数目和线程的数目仅是示例性说明,并不构成对本申请实施例的限定。
图2为本申请实施例提供的资源调度方法一个实施例的流程示意图,该资源调度方法可以应用于电子设备,该电子设备可以包括一个或多个处理器。其中,该电子设备可以是以计算机的形式体现,也可以是其他形式,本申请实施例对电子设备的具体形式不作特殊限定,该资源调度方法包括:
步骤101,获取一个或多个待处理任务。
具体地,该待处理任务可以是一个计算机程序,可以是一个计算机程序中的一个或多个部分,也可以是其他类型的任务,例如,计算任务等。本申请实施例对此不作特殊限定。
步骤102,检测处理器100中每个线程的运行状态。
具体地,该处理器100的类型可以是中央处理器(CPU),可以是图形处理器(GPU),也可以是其他类型的处理器,本申请对处理器100的类型不作特殊限定。
该运行状态可以包括处理器100中每个内核的每个线程的运行状态。该运行状态用于表征每个线程中的任务运行状态,例如,线程111中是否有任务在运行。在具体实现时,每个线程的运行状态可以标记为“是”或“否”,若任一线程的运行状态标记为“是”,则可以确定该线程有任务在运行;若任一线程的运行状态标记为“否”,则可以确定该线程无任务在运行。
步骤103,基于每个线程的运行状态确定处理器100的工作负荷。
具体地,当获取到每个线程的运行状态后,可以获取每个线程的工作负荷。其中,每个任务占用一个线程,每个线程的工作负荷与上述任务对应。接着,可以基于上述每个线程的工作负荷统计处理器100的工作负荷。该处理器100的工作负荷用于表征处理器100的当前的任务量。通过该工作负荷,可以获知该处理器100当前的工作强度,由此可以基于该工作负荷分配合理的资源给待处理任务,进而可以使得该处理器100在性能和功耗之间平衡。
在具体实现时,可以统计运行状态标记为“是”的线程的工作负荷,由此可以获取处理器100的工作负荷。举例说明,假设该处理器100包含2个内核,例如,内核110及内核120。每个内核包含2个线程,例如,内核110包含线程111及线程112,内核120包含线程121及线程122。假设线程111的工作负荷为20,线程112的工作负荷为30,线程121的工作负荷为50,线程122的工作负荷为70,则处理器100当前的工作负荷20+30+50+70=170。
步骤104,基于处理器100当前的工作负荷确定处理器100的工作模式。
具体地,当获取到处理器100当前的工作负荷后,可以基于该工作负荷确定处理器100的工作模式。在具体实现时,该工作模式可以包括性能优先模式及省电优先模式,其中,该性能优先模式可以用于表征以处理器100的性能优先,该省电优先模式可以用于表征以处理器100的功耗优先。
具体来说,可以将处理器100当前的工作负荷与预设第一阈值进行比较,以及将处理器100当前的工作负荷及待处理任务的预测累计工作负荷与预设第二阈值进行比较。
若处理器100当前的工作负荷小于预设第一阈值,且处理器100当前的工作负荷及待处理任务的预测累计工作负荷小于预设第二阈值,则可以确定工作模式为省电优先模式。由于对待处理任务处理前的处理器100的总工作负荷较小,且对待处理任务处理时的处理器100的预测总工作负荷也较小,因此,可以采用省电优先模式,由此可以达到节能的目的。
若处理器100当前的工作负荷大于或等于预设第一阈值,或处理器100当前的工作负荷及待处理任务的预测累计工作负荷大于或等于预设第二阈值,则可以确定工作模式为性能优先模式。也就是说,若待处理任务处理前的处理器100的总工作负荷较大,则待处理任务处理时的处理器100的预测总工作负荷会更大,因此,确定工作模式为性能优先模式;或若待处理任务处理时的处理器100的预测总工作负荷较大,则无论待处理任务处理前的处理器100的总工作负荷多大,都确定工作模式为性能优先模式。
举例说明,假设处理器100当前的工作负荷为110。此时,若获取到1个待处理任务,该待处理任务的工作负荷为30,则预测处理器100的总工作负荷为110+40=150。
若预设第一阈值为130,预设第二阈值为160,由于处理器100的当前工作负荷小于预设第一阈值,且该处理器100的预测总工作负荷小于预设第二阈值,则可以确定工作模式为省电优先模式。
若预设第一阈值为130,预设第二阈值为145,虽然处理器100的当前工作负荷小于预设第一阈值,但是,由于该处理器100的预测总工作负荷大于预设第二阈值,此时,可以确定工作模式为性能优先模式。
若预设第一阈值为100,预设第二阈值为160,由于该处理器100的当前工作负荷大于预设第一阈值,则可以确定工作模式为性能优先模式。
以上示例仅示例性示出了处理器100的工作负荷与预设第一阈值及预设第二阈值之间的比较过程。可以理解的是,以上处理器100的内核数、处理器100的线程数、工作负荷、预设第一阈值及预设第二阈值的数值并不构成对本申请实施例的限定,在一些实施例中,上述处理器100的内核数、处理器100的线程数、工作负荷、预设第一阈值及预设第二阈值还可以是其他任意数值。
可选地,在一些实施例中,上述预设第一阈值和上述预设第二阈值可以为同一数值。示例性的,可以将处理器100当前的工作负荷与预设第一阈值进行比较,以及将处理器100当前的工作负荷及待处理任务的预测累计工作负荷与预设第一阈值进行比较。具体的比较过程可以参考通过预设第一阈值及预设第二阈值的比较方式,在此不再赘述。
步骤105,基于工作模式进行资源调度。
具体地,当确定工作模式后,可以基于该工作模式进行资源调度。其中,该资源调度可以是将上述待处理任务分配给线程进行任务处理。
在具体实现时,可以获取处理器100中每个内核的运行状态。其中,该内核的运行状态可以通过上述线程的运行状态获得。示例性的,可以根据每个线程的运行状态确定内核的运行状态。若任一内核中的所有线程都没有任务运行,则该内核的运行状态可以标记为“否”,若任一内核中的任一线程有任务运行,则该内核的运行状态可以标记为“是”。
接着,可以基于每个内核的运行状态及工作模式进行资源调度。示例性的,若工作模式为省电优先模式,则可以获取运行状态标记为“是”的第一内核,并将待处理任务分配给该第一内核中的空闲线程进行任务处理,由此可以达到节能的目的。其中,该空闲线程可以是运行状态标记为“否”的线程。
进一步地,若存在多个运行状态标记为“是”的第一内核,则可以获取每个第一内核的工作负荷。接着,可以基于上述每个第一内核的工作负荷进行任务处理时间的预测,其中,上述任务处理时间用于表征处理完内核中的任务所需的时间。并可以将该预测的任务处理时间与预设第三阈值进行比较,若任一第一内核的预测任务处理时间小于或等于预设第三阈值,则无需将上述待处理任务分配给该第一内核处理。若所有第一内核的预测任务处理时间均大于预设第三阈值,此时,可以将上述待处理任务分配给工作负荷最高的第一内核的空闲线程进行任务处理。
若工作模式为性能优先模式,则可以获取运行状态标记为“否”的第二内核,并将待处理任务分配给该第二内核中的线程进行任务处理,由此可以提高处理器100的运算效率。
进一步地,若不存在运行状态标记为“否”的第二内核,例如,只存在多个运行状态标记为“是”的第一内核。此时,可以将上述待处理任务分配给工作负荷最低的第一内核的空闲线程进行任务处理。
现结合图3进行说明。图3为资源调度的示意图,如图3所示,模式310为性能优先模式,模式320为省电优先模式。参考图3,处理器100包括内核110及内核120,其中,内核110包括线程111、线程112、线程113及线程114,内核120包括线程121、线程122、线程123及线程124。内核110中的线程111及线程112的运行状态标记为“是”,内核110中的线程113及线程114的运行状态标记为“否”,以及内核120中的线程121、线程122、线程123及线程114的运行状态标记为“否”。
此时,若确定工作模式为性能优先模式,由于内核120中的所有线程(例如,线程121、线程122、线程123及线程124)的运行状态标记为“否”,则内核120的运行状态标记也为“否”,也就是说,内核120为空闲状态,则可以将待处理任务300通过模式310分配给内核120中的线程进行处理,由此可以提高处理器100的运算速度。可以理解的是,上述实施例中的待处理任务300仅示例性的示出了一个任务,上述任务的个数并不构成对本申请实施例的限定。在一些实施例中,上述待处理任务300可以是多个任务,在对多个任务进行分配时,可以将上述多个任务分配给多个线程。
若确定工作模式为省电优先模式,由于内核110中的线程111及线程112的运行状态标记为“是”,则内核110的运行状态标记也为“是”,也就是说,内核110为运行状态。此时,可以将待处理任务300通过模式320分配给内核110中的空闲线程(例如,线程123及线程124)进行处理,由此可以节省处理器100的功耗。
本实施例中,通过检测处理器的工作负荷,基于工作负荷进行资源调度,以将调度的资源分配给待处理任务进行处理,由此可以在功耗和性能之间达到平衡,满足用户的预期。
图4为本申请资源调度装置一个实施例的结构示意图,如图4所示,上述资源调度装置40可以包括:获取模块41、检测模块42、统计模块43、确定模块44及调度模块45;
获取模块41,用于获取一个或多个待处理任务;
检测模块42,用于检测所述处理器的运行状况;
统计模块43,用于基于所述运行状况确定所述处理器的当前工作负荷;
确定模块44,用于基于所述处理器的当前工作负荷确定工作模式;
调度模块45,用于基于所述确定的工作模式对一个或多个所述待处理任务分配资源。
其中一种可能的实现方式中,所述处理器包括多个内核,每个所述内核包括多个线程,上述检测模块42还用于检测每个内核中每个线程的运行状态。
其中一种可能的实现方式中,上述统计模块43还用于
判断每个所述线程的运行状态;
获取每个处于运行中的线程的当前工作负荷;
对每个所述处于运行中的线程的当前工作负荷进行统计,得到所述处理器的当前工作负荷。
其中一种可能的实现方式中,所述工作模式包括第一模式及第二模式,上述确定模块44还用于将所述处理器的当前工作负荷与预设第一阈值进行比较,以及将所述处理器的当前工作负荷及一个或多个所述待处理任务的工作负荷累计得到的预测总工作负荷与所述第一阈值进行比较;若所述处理器的当前工作负荷小于所述第一阈值,且所述预测总工作负荷小于所述第一阈值,则所述确定的工作模式为所述第一模式;若所述处理器的当前工作负荷大于或等于所述第一阈值,或所述预测总工作负荷大于或等于所述第一阈值,则所述确定的工作模式为所述第二模式。
其中一种可能的实现方式中,所述工作模式包括第一模式及第二模式,上述确定模块44还用于将所述处理器的当前工作负荷与预设第一阈值进行比较,以及将所述工作负荷及一个或多个所述待处理任务的工作负荷累计得到的预测总工作负荷与预设第二阈值进行比较;其中,所述第一阈值与所述第二阈值不相等;若所述处理器的当前工作负荷小于所述第一阈值,且所述预测总工作负荷小于所述第二阈值,则所述确定的工作模式为所述第一模式;若所述处理器的当前工作负荷大于或等于所述第一阈值,或所述预测总工作负荷大于或等于所述第二阈值,则所述确定的工作模式为所述第二模式。
其中一种可能的实现方式中,上述调度模块45还用于获取每个所述内核的运行状态,基于所述确定的工作模式及每个所述内核的运行状态确定内核;将所述确定的内核中的空闲线程分配给一个或多个所述待处理任务。
其中一种可能的实现方式中,所述内核的运行状态包括第一状态及第二状态,上述调度模块45还用于若所述确定的工作模式为第一模式,则确定所述内核为所述运行状态为所述第一状态的内核;若所述确定的工作模式为第二模式,则确定所述内核为所述运行状态为所述第二状态的内核。
应理解,以上图4所示的资源调度装置的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分模块以软件通过处理元件调用的形式实现,部分模块通过硬件的形式实现。例如,检测模块可以为单独设立的处理元件,也可以集成在电子设备的某一个芯片中实现。其它模块的实现与之类似。此外这些模块全部或部分可以集成在一起,也可以独立实现。在实现过程中,上述方法的各步骤或以上各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。
例如,以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit;以下简称:ASIC),或,一个或多个微处理器(Digital Singnal Processor;以下简称:DSP),或,一个或者多个现场可编程门阵列(Field Programmable Gate Array;以下简称:FPGA)等。再如,这些模块可以集成在一起,以片上系统(System-On-a-Chip;以下简称:SOC)的形式实现。
图5为本申请电子设备500一个实施例的结构示意图;如图5所示,上述电子设备500可以是数据处理设备,也可以是内置于上述数据处理设备的电路设备。该电子设备500可以用于执行本申请图1-图3所示实施例提供的方法中的功能/步骤。
如图5所示,电子设备500以通用计算设备的形式表现。
上述电子设备500可以包括:一个或多个处理器510;通信接口520;存储器530;连接不同系统组件(包括存储器530和处理器510)的通信总线540,数据库550;以及一个或多个计算机程序。
其中,上述一个或多个计算机程序被存储在上述存储器中,上述一个或多个计算机程序包括指令,当上述指令被上述电子设备执行时,使得上述电子设备执行以下步骤:
获取一个或多个待处理任务;
检测所述处理器的运行状况;
基于所述运行状况确定所述处理器的当前工作负荷;
基于所述处理器的当前工作负荷确定工作模式;
基于所述确定的工作模式对一个或多个所述待处理任务分配资源。
其中一种可能的实现方式中,所述处理器包括多个内核,每个所述内核包括多个线程,上述指令被上述电子设备执行时,使得上述电子设备执行检测所述处理器的运行状况的步骤包括:
检测每个内核中每个线程的运行状态。
其中一种可能的实现方式中,上述指令被上述电子设备执行时,使得上述电子设备执行基于所述运行状况确定所述处理器的当前工作负荷的步骤包括:
判断每个所述线程的运行状态;
获取每个处于运行中的线程的当前工作负荷;
对每个所述处于运行中的线程的当前工作负荷进行统计,得到所述处理器的当前工作负荷。
其中一种可能的实现方式中,所述工作模式包括第一模式及第二模式,上述指令被上述电子设备执行时,使得上述电子设备执行基于所述处理器的当前工作负荷确定工作模式的步骤包括:
将所述处理器的当前工作负荷与预设第一阈值进行比较,以及将所述处理器的当前工作负荷及一个或多个所述待处理任务的工作负荷累计得到的预测总工作负荷与所述第一阈值进行比较;
若所述处理器的当前工作负荷小于所述第一阈值,且所述预测总工作负荷小于所述第一阈值,则所述确定的工作模式为所述第一模式;
若所述处理器的当前工作负荷大于或等于所述第一阈值,或所述预测总工作负荷大于或等于所述第一阈值,则所述确定的工作模式为所述第二模式。
其中一种可能的实现方式中,所述工作模式包括第一模式及第二模式,上述指令被上述电子设备执行时,使得上述电子设备执行基于所述处理器的当前工作负荷确定工作模式的步骤包括:
将所述处理器的当前工作负荷与预设第一阈值进行比较,以及将所述处理器的当前工作负荷及一个或多个所述待处理任务的工作负荷累计得到的预测总工作负荷与预设第二阈值进行比较;其中,所述第一阈值与所述第二阈值不相等;
若所述处理器的当前工作负荷小于所述第一阈值,且所述预测总工作负荷小于所述第二阈值,则所述确定的工作模式为所述第一模式;
若所述处理器的当前工作负荷大于或等于所述第一阈值,或所述预测总工作负荷大于或等于所述第二阈值,则所述确定的工作模式为所述第二模式。
其中一种可能的实现方式中,上述指令被上述电子设备执行时,使得上述电子设备执行基于所述确定的工作模式对一个或多个所述待处理任务分配资源的步骤包括:
获取每个所述内核的运行状态,基于所述确定的工作模式及每个所述内核的运行状态确定内核;
将所述确定的内核中的空闲线程分配给一个或多个所述待处理任务。
其中一种可能的实现方式中,所述内核的运行状态包括第一状态及第二状态,上述指令被上述电子设备执行时,使得上述电子设备执行基于所述确定的工作模式及每个所述内核的运行状态确定内核的步骤包括:
若所述确定的工作模式为第一模式,则确定所述内核为所述运行状态为所述第一状态的内核;
若所述确定的工作模式为第二模式,则确定所述内核为所述运行状态为所述第二状态的内核。
可以理解的是,本申请实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备的结构限定。在本申请另一些实施例中,电子设备也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
可以理解的是,上述电子设备为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请实施例能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请实施例的范围。
本申请实施例可以根据上述方法示例对上述电子设备等进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请实施例各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:快闪存储器、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种资源调度方法,应用于电子设备,所述电子设备包括处理器,其特征在于,所述方法包括:
获取一个或多个待处理任务;
检测所述处理器的运行状况;
基于所述运行状况确定所述处理器的当前工作负荷;
基于所述处理器的当前工作负荷确定工作模式;
基于所述确定的工作模式对一个或多个所述待处理任务分配资源。
2.根据权利要求1所述的方法,其特征在于,所述处理器包括多个内核,每个所述内核包括多个线程,所述检测所述处理器的运行状况包括:
检测每个内核中每个线程的运行状态。
3.根据权利要求2所述的方法,其特征在于,所述基于所述运行状况确定所述处理器的当前工作负荷包括:
判断每个所述线程的运行状态;
获取每个处于运行中的线程的当前工作负荷;
对每个所述处于运行中的线程的当前工作负荷进行统计,得到所述处理器的当前工作负荷。
4.根据权利要求3所述的方法,其特征在于,所述工作模式包括第一模式及第二模式,所述基于所述处理器的当前工作负荷确定工作模式包括:
将所述处理器的当前工作负荷与预设第一阈值进行比较,以及将所述处理器的当前工作负荷及一个或多个所述待处理任务的工作负荷累计得到的预测总工作负荷与所述第一阈值进行比较;
若所述处理器的当前工作负荷小于所述第一阈值,且所述预测总工作负荷小于所述第一阈值,则所述确定的工作模式为所述第一模式;
若所述处理器的当前工作负荷大于或等于所述第一阈值,或所述预测总工作负荷大于或等于所述第一阈值,则所述确定的工作模式为所述第二模式。
5.根据权利要求3所述的方法,其特征在于,所述工作模式包括第一模式及第二模式,所述基于所述处理器的当前工作负荷确定工作模式包括:
将所述处理器的当前工作负荷与预设第一阈值进行比较,以及将所述处理器的当前工作负荷及一个或多个所述待处理任务的工作负荷累计得到的预测总工作负荷与预设第二阈值进行比较;其中,所述第一阈值与所述第二阈值不相等;
若所述处理器的当前工作负荷小于所述第一阈值,且所述预测总工作负荷小于所述第二阈值,则所述确定的工作模式为所述第一模式;
若所述处理器的当前工作负荷大于或等于所述第一阈值,或所述预测总工作负荷大于或等于所述第二阈值,则所述确定的工作模式为所述第二模式。
6.根据权利要求4或5所述的方法,其特征在于,所述基于所述确定的工作模式对一个或多个所述待处理任务分配资源包括:
获取每个所述内核的运行状态,基于所述确定的工作模式及每个所述内核的运行状态确定内核;
将所述确定的内核中的空闲线程分配给一个或多个所述待处理任务。
7.根据权利要求6所述的方法,其特征在于,所述内核的运行状态包括第一状态及第二状态,所述基于所述确定的工作模式及每个所述内核的运行状态确定内核包括:
若所述确定的工作模式为第一模式,则确定所述内核为所述运行状态为所述第一状态的内核;
若所述确定的工作模式为第二模式,则确定所述内核为所述运行状态为所述第二状态的内核。
8.一种电子设备,其特征在于,包括:存储器,所述存储器用于存储计算机程序代码,所述计算机程序代码包括指令,当所述电子设备从所述存储器中读取所述指令,以使得所述电子设备执行如权利要求1-7中任一项所述的方法。
9.一种计算机可读存储介质,其特征在于,包括计算机指令,当所述计算机指令在所述电子设备上运行时,使得所述电子设备执行如权利要求1-7中任一项所述的方法。
10.一种计算机程序产品,其特征在于,当所述计算机程序产品在计算机上运行时,使得所述计算机执行如权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011577008.6A CN112579299B (zh) | 2020-12-28 | 2020-12-28 | 资源调度方法、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011577008.6A CN112579299B (zh) | 2020-12-28 | 2020-12-28 | 资源调度方法、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112579299A true CN112579299A (zh) | 2021-03-30 |
CN112579299B CN112579299B (zh) | 2022-11-18 |
Family
ID=75140071
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011577008.6A Active CN112579299B (zh) | 2020-12-28 | 2020-12-28 | 资源调度方法、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112579299B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1985242A (zh) * | 2003-04-23 | 2007-06-20 | 国际商业机器公司 | 确定同时多线程(smt)处理器中每线程处理器资源利用的核算方法和逻辑 |
CN109815007A (zh) * | 2018-12-15 | 2019-05-28 | 平安科技(深圳)有限公司 | 基于云监控的线程控制方法、装置、电子设备及存储介质 |
CN109992366A (zh) * | 2017-12-29 | 2019-07-09 | 华为技术有限公司 | 任务调度方法及调度装置 |
CN111104208A (zh) * | 2019-11-15 | 2020-05-05 | 深圳市优必选科技股份有限公司 | 进程调度管理方法、装置、计算机设备及存储介质 |
-
2020
- 2020-12-28 CN CN202011577008.6A patent/CN112579299B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1985242A (zh) * | 2003-04-23 | 2007-06-20 | 国际商业机器公司 | 确定同时多线程(smt)处理器中每线程处理器资源利用的核算方法和逻辑 |
CN109992366A (zh) * | 2017-12-29 | 2019-07-09 | 华为技术有限公司 | 任务调度方法及调度装置 |
CN109815007A (zh) * | 2018-12-15 | 2019-05-28 | 平安科技(深圳)有限公司 | 基于云监控的线程控制方法、装置、电子设备及存储介质 |
CN111104208A (zh) * | 2019-11-15 | 2020-05-05 | 深圳市优必选科技股份有限公司 | 进程调度管理方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112579299B (zh) | 2022-11-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9632822B2 (en) | Multi-core device and multi-thread scheduling method thereof | |
CN109992366B (zh) | 任务调度方法及调度装置 | |
JP5564564B2 (ja) | 計算ユニットの性能を性能感度に従い不均等に変化させる方法及び装置 | |
US20110161978A1 (en) | Job allocation method and apparatus for a multi-core system | |
US20140089699A1 (en) | Power management system and method for a processor | |
JP5745038B2 (ja) | マルチスレッドアプリケーションのパフォーマンスを解析する方法及びシステム | |
US10176014B2 (en) | System and method for multithreaded processing | |
CN108664367B (zh) | 一种基于处理器的功耗控制方法及装置 | |
CN110941325A (zh) | 处理器的调频方法及装置、计算设备 | |
CN111078394B (zh) | 一种gpu线程负载均衡方法与装置 | |
US10452443B2 (en) | Dynamic tuning of multiprocessor/multicore computing systems | |
KR20120066189A (ko) | 매니코어 시스템에서 응용 프로그램의 상태를 동적으로 재구성하는 장치 및 방법 | |
US20180342227A1 (en) | Performance-Based Graphics Processing Unit Power Management | |
JPWO2013088519A1 (ja) | マルチコア・プロセッサ | |
US20230305880A1 (en) | Cluster distributed resource scheduling method, apparatus and device, and storage medium | |
EP3295276B1 (en) | Reducing power by vacating subsets of cpus and memory | |
US20030177163A1 (en) | Microprocessor comprising load monitoring function | |
CN103677997A (zh) | 多核心装置以及其多线程调度方法 | |
US20180225150A1 (en) | Scheduling heterogenous processors | |
CN111984402A (zh) | 一种线程池统一调度监控方法及系统 | |
US20210019258A1 (en) | Performance Telemetry Aided Processing Scheme | |
CN113485838A (zh) | 服务器分配方法及装置、电子设备和计算机可读存储介质 | |
CN112579299B (zh) | 资源调度方法、电子设备及存储介质 | |
KR101770234B1 (ko) | 소프트웨어 프로그램의 연산 블록을 멀티-프로세서 시스템의 코어에 할당하는 방법 및 시스템 | |
US20220300324A1 (en) | Thermal-aware task scheduling |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |