CN110858159A - 电子装置和用于多核处理器中的负载均衡的方法 - Google Patents
电子装置和用于多核处理器中的负载均衡的方法 Download PDFInfo
- Publication number
- CN110858159A CN110858159A CN201910781807.6A CN201910781807A CN110858159A CN 110858159 A CN110858159 A CN 110858159A CN 201910781807 A CN201910781807 A CN 201910781807A CN 110858159 A CN110858159 A CN 110858159A
- Authority
- CN
- China
- Prior art keywords
- task
- jobs
- individual
- core
- electronic device
- 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
-
- 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
- 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
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5094—Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/483—Multiproc
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供一种电子装置和用于多核处理器中的负载均衡的方法,方法包含:由电子装置将第一任务和至少一个第二任务划分成多个任务工作;由电子装置来确定用于多个任务工作中的每一个的至少一个核心配置;由电子装置基于至少一个核心配置调度多核处理器的至少一个核心上的多个任务工作中的每一个以产生执行计划表;以及由多核处理器根据执行计划表来执行多个任务工作。
Description
相关申请案的交叉引用
本申请案主张2018年8月24日在印度知识产权局申请的印度临时专利申请案第201841031838号的优先权,所述申请案的公开内容以全文引用的方式并入本文中。
技术领域
本公开涉及多核环境中的负载均衡,且更具体地说,涉及用于第5代(5thGeneration;5G)和后第5代(Beyond 5th Generation;B5G)多核用户设备的能量感知实时负载均衡器的方法和电子装置。
背景技术
第三代合作伙伴计划(third generation partnership project;3GPP)已发展称作第5代新无线电(5th Generation New Radio;5G NR)的新一代的无线电技术以提供具有较高吞吐量和超可靠低时延通信(Ultra-Reliable Low Latency Communications;URLLC)的增强移动宽带(enhanced Mobile Broadband;eMBB)。将多核架构并入到用户设备(UserEquipment;UE)中已视为是提供与5G NR相关联的增大计算的适合解决方案。举例来说,多核架构可包含多核处理器(multi-core processor;MP)架构(例如,对称多处理(SymmetricMulti-Processing;SMP)或不对称多处理(Asymmetric Multi-Processing;AMP))。
支持多核架构涉及一些挑战,如用于最大化或改善多核利用率的软件分区和数据同步。实时操作系统(Real-time Operating Systems;RTOS)通过使编程器能够控制任务与具体核心的结合或通过使RTOS控制任务与具体核心的结合(例如,通过执行软件指令)来与多核架构一起使用。相比于多核架构的广泛采用,在从单核架构转向多核架构时,关于自动化软件分区和数据同步技术几乎没有改进。
虽然允许编程器写入调适用于多核架构的代码的编译时技术(如开放多处理(Open Multi-Processing;OpenMP))可用,但此类编译时技术很大程度上依赖平台。为了实现多核处理器的高性能,每一核心应以其最大效率或高效率利用。这可通过使用跨核心均匀地分配任务的负载均衡器(load balancer;LB)来得以实现。负载均衡器通过工作负载的离线分析静态地或通过工作负载的在线分析实时地执行任务分配。
用于多核处理器系统100的架构绘示于图1中。多核处理器系统100包含N数目个核心102(例如,核心1、核心2…核心N)且执行RTOS。RTOS配置成调度各种任务108(例如,任务1、任务2…任务M)。每一任务具有三个主特性:任务优先级、核心亲和性以及资源可用性/分配。多核处理器系统100包含操作系统(OS)调度器104,所述OS调度器配置成基于所述特性来将任务分派到核心102的核心上。多核处理器系统100包含负载均衡器106,所述负载均衡器106配置成保持了解任务108的执行次序和依赖性。负载均衡106配置成动态地控制各种任务的核心亲和性,以便基于任务108的执行次序和/或依赖性来完成(例如,处理)工作负载。
升级与多核架构一起使用的旧式软件涉及软件的分析、重新设计以及开发。在长期演进(Long Term Evolution;LTE)和新无线电(NR)调制解调器基带软件(basebandsoftware;BBS)和协议堆栈(Protocol Stack;PS)开发中,任务中的每一个设计为处理在非接入层(Non Access Stratum;NAS)层、无线电资源控制(Radio Resource Control;RRC)层、包数据汇聚协议(Packet Data Convergence Protocol;PDCP)层、无线电链路控制(Radio Link Control;RLC)层、媒体存取控制(Medium Access Control;MAC)层或物理层中处理程序。单核实施方案不能用载波聚合(Carrier Aggregation;CA)扩展用于较高阶多入多出技术(Multiple Input Multiple Output;MIMO)。单核实施方案涉及使多核软件架构稳定且校正所述多核软件架构,以实现最佳或所需性能。在总执行时间和能量消耗方面定义性能,且实现最佳性或改进是一项困难、反复和耗时的工作。因此,期望的是通过支持采用多核架构来减少耗时任务,而无需BBS和PS软件开发人员的大量工作。
因此,期望的是解决上述缺点或其它缺点或至少提供有用的替代方案。
发明内容
一些示例性实施例提供用于实时地用于5G和B5G网路的多核处理器系统中的能量感知负载均衡的方法。
一些示例性实施例提供将多个任务中的每一个划分成多个任务工作。
一些示例性实施例提供基于至少一个核心配置来调度多核处理器系统的至少一个核心上的任务工作中的每一个。
一些示例性实施例提供集聚任务工作中的每一个的输出。
一些示例性实施例提供获得至少一个任务的简档数据。
因此,一些示例性实施例提供用于电子装置的多核处理器中的负载均衡的方法。方法包含:由电子装置将第一任务和至少一个第二任务划分成多个任务工作;由电子装置来确定用于多个任务工作中的每一个的至少一个核心配置;由电子装置基于至少一个核心配置来调度多核处理器的至少一个核心上的多个任务工作中的每一个以产生执行计划表;以及由多核处理器根据执行计划表来执行多个任务工作。
在一些示例性实施例中,将第一任务和至少一个第二任务划分成多个任务工作包含:由电子装置获得第一任务和至少一个第二任务的简档数据,所述简档数据包含以下中的至少一个:第一任务和至少一个第二任务的个别进入点、第一任务和至少一个第二任务的个别离开点、第一任务和至少一个第二任务的个别执行时间、第一任务和至少一个第二任务的个别抢占状态、第一任务与至少一个第二任务之间的任务间通信类型、第一任务与至少一个第二任务之间的任务间通信度量或交互度量;以及由电子装置基于简档数据来将第一任务和至少一个第二任务划分成多个任务工作。
划分进一步包含分析第一任务和至少一个第二任务的执行流程,其中执行流程包含以下中的至少一个:第一任务和至少一个第二任务的执行时间和/或第一任务和至少一个第二任务的耗用执行。划分还包含分析第一任务和至少一个第二任务的简档数据,以及基于简档数据分析和执行流程分析将第一任务和至少一个第二任务划分成多个任务工作。
在一些示例性实施例中,用于负载均衡的方法进一步包含由电子装置来执行以下操作中的至少一个:基于多个任务工作的简档数据来集聚多个任务工作以形成至少一个新任务,或基于简档数据来集聚第一任务和至少一个第二任务以形成至少一个新任务。
在一些示例性实施例中,简档数据包含交互度量和任务间通信度量,交互度量是交互成本,且任务间通信度量是第一任务与至少一个第二任务之间的任务间通信成本。
在一些示例性实施例中,确定用于多个任务工作中的每一个的至少一个核心配置包含:由电子装置来确定多核处理器的多个核心中的每一个的利用率水平;由电子装置来确定多个任务工作当中的两个或大于两个任务工作之间的个别交互度量和两个或大于两个任务工作之间的个别通信度量;由电子装置来确定多个任务工作中的每一个的总执行时间;以及由电子装置基于利用率水平、个别交互度量、个别通信度量以及多个任务工作中的每一个的总执行时间来确定至少一个核心配置。
在一些示例性实施例中,其中至少一个核心配置识别多个任务工作以及将在其上调度并执行多个任务工作的多核处理器的至少一个核心。
在一些示例性实施例中,个别交互度量是两个或大于两个任务工作之间的个别交互成本,且个别通信度量是两个或大于两个任务工作之间的个别通信成本,且确定至少一个核心配置包含:基于个别交互度量和个别通信度量来确定多个任务工作当中具有最高依赖性的个别任务工作;以及指定个别任务工作及多个任务工作当中所述个别任务工作所依赖在多个核心当中的单个核心上执行的任务工作。
一些示例性实施例提供包含用于负载均衡的多核环境的电子装置。电子装置包含:多核处理器,配置成根据执行计划表来执行多个任务工作;以及处理电路,配置成将第一任务和至少一个第二任务划分成多个任务工作、确定用于多个任务工作中的每一个的至少一个核心配置、以及基于至少一个核心配置来调度多核处理器的至少一个核心上的多个任务工作中的每一个以产生执行计划表。
当结合以下描述和附图考虑时,将更好地了解和理解一些示例性实施例的这些和其它方面。然而,应理解,以下描述在指示一些示例性实施例和其许多特定细节时以说明方式给出且不具有限制性。在不脱离示例性实施例的精神的情况下,可在一些示例性实施例的范围内进行许多改变和修改,且一些示例性实施例包含所有此类修改。
附图说明
一些示例性实施例示出于附图中,贯穿所述附图,相同参考标号指示各图中的对应部件。参考图式根据以下描述将更好地理解本文中的一些示例性实施例,其中:
图1是具有负载均衡器和OS调度器的常规多核处理器架构的框图。
图2是根据一些示例性实施例的用于电子装置的多核处理器中的负载均衡的电子装置的框图。
图3是根据一些示例性实施例的用于负载均衡的多核处理器的框图。
图4是根据一些示例性实施例的示出任务工作模型的示意图。
图5是根据一些示例性实施例的示出任务工作的执行时间的示例性计算的示意图。
图6是根据一些示例性实施例的示出各种任务工作的运行时间和通信成本的有向无环图(directed acyclic graph;DAG)。
图7是根据一些示例性实施例的示出任务工作的d值的计算的DAG。
图8是根据一些示例性实施例的示出任务工作的分组的DAG。
具体实施方式
参考非限制性实施例解释本文中的一些示例性实施例以及其各种特征和有利细节,所述非限制性实施例在附图中示出且在以下描述中详述。可省略对熟知组件和处理技术的描述以避免不必要地混淆一些示例性实施例。此外,本文中所描述的一些示例性实施例未必相互排斥,这是因为一些示例性实施例可与一或多个其它示例性实施例组合,从而形成新的实施例。除非另外指示,否则如本文中所使用的术语“或”是指非排他性或。本文中所使用的实例仅意图促进对本文中的一些示例性实施例可实践的方式的理解,且进一步使得本领域的技术人员能够实践一些示例性实施例。因此,实例不应理解为限制一些示例性实施例的范围。
如领域中传统的,可就执行所描述的一或多种功能的区块而言描述和示出一些示例性实施例。在本文中可称为管理器、单元、模块、硬件组件或类似物的这些块可由处理电路以物理方式实施。如本公开中所使用的术语‘处理电路’可指例如包含逻辑电路的硬件;硬件/软件组合,如处理器执行软件;或其组合。举例来说,处理电路更具体地可包含但不限于中央处理单元(central processing unit;CPU)、算术逻辑单元(arithmetic logicunit;ALU)、数字信号处理器、微计算机、现场可编程门阵列(field programmable gatearray;FPGA)、片上系统(System-on-Chip;SoC)、可编程逻辑单元、微处理器、专用集成电路(application-specific integrated circuit;ASIC)等。根据一些示例性实施例,块可由模拟和/或数字电路以物理方式实施和/或可由固件和软件任选地驱动,所述模拟和/或数字电路如逻辑门、集成电路、微处理器、微控制器、存储器电路、无源电子组件、有源电子组件、光学组件、固线式电路和/或类似物。举例来说,电路可实施于一或多个半导体芯片中和/或如印刷电路板和/或类似物的基底支撑件上。构成块的电路可由专用硬件或由处理器(例如,一或多个已编程微处理器和相关电路)或由专用硬体的组合实施以执行块和处理器的一些功能,从而执行块的其它功能。每一所描述和/或所说明块可在不脱离本公开的范围的情况下物理地分离成两个或大于两个交互且离散的块。同样地,所描述和/或所说明块可在不脱离本公开的范围的情况下物理地组合成更复杂的块。
附图用于帮助容易地理解各种技术特征,且应理解,本文中呈现的一些示例性实施例不受附图限制。如此,除附图中确切阐述的那些以外,本公开应理解为延伸到任何变化、等效物以及替代。尽管术语第一、第二等可在本文中用于描述各种元件,但这些元件不应受这些术语的限制。这些术语大体上仅用于将一个元件与另一元件区分开。
因此,一些示例性实施例提供用于多核处理器中的负载均衡的方法。方法包含将至少一个任务划分成多个任务工作。方法进一步包含确定用于任务工作中的每一个的至少一个核心配置。方法还包含基于至少一个核心配置来调度多核处理器系统的至少一个核心上的任务工作中的每一个。方法进一步包含集聚任务工作中的每一个的输出。
不同于常规方法,所提出的用于MP上运行的RTOS的负载均衡器在维持多个核心上的平均或均衡的计算负载时最小化或减小能量消耗。根据一些示例性实施例,负载均衡器配置成确保可用核心上的任务的最佳或所需分布,其方式为使得计算负载在核心当中是均衡的且核心的能量消耗是最小化或低的。核心的能量消耗与任务的总运行时间成比例。因此,最小化或减少所有任务的总运行时间引起最小化或减少能量消耗。
现参看图式,且更确切地说,参看图2到图8(其中类似参考标号表示一致地贯穿图式的对应特征),绘示一些示例性实施例。
图2是根据一些示例性实施例的电子装置200的框图。在一些示例性实施例中,电子装置200包含存储器210、多核处理器220和/或通信器230。多核处理器220包含多个核心(例如,核心-1 220A、核心-2 220B、…核心-N220N)。多核处理器220配置成执行存储于存储器210中的指令且执行各种处理。通信器230配置成在内部硬件组件之间内部地通信和/或经由一或多个网络与外部装置通信。
存储器210可配置成存储待由多核处理器220执行的指令。存储器210可包含非易失性存储元件。此类非易失性存储元件的实例可包含磁性硬盘、光盘、软盘、快闪存储器和/或多种形式的可擦可编程存储器(erasable programmable memories;EPROM)和/或电可擦且可编程只读存储器(electrically erasable and programmable read only memories;EEPROM)。另外,在一些实例中,存储器210可视为非暂时性存储媒体。术语“非暂时性”可指示存储媒体未实施于载波或传播信号中。然而,术语“非暂时性”不应解译为意指存储器210是非可移动的。在一些实例中,存储器210可配置成存储比存储器更大量的信息(例如,随时间,存储器210可通过删除先前存储的数据且存储新数据来存储超过存储器210的容量的数据量)。在某些实例中,非暂时性存储媒体可存储可随时间变化的数据(例如,在随机存取存储器(Random Access Memory;RAM)和/或高速缓冲存储器中)。
在一些示例性实施例中,电子装置200可包含配置成实时地执行能量感知负载均衡的处理电路。
虽然图2绘示电子装置200的各种硬件组件,但应理解,一些示例性实施例不限于此。在一些示例性实施例中,电子装置200可包含更少或更多组件。此外,所述组件的标识或名称仅出于说明性目的使用且并不限制一些示例性实施例的范围。
图3是用于均衡任务的负载均衡器的框图。根据一些示例性实施例,负载均衡器300可包含在电子装置200中。根据一些示例性实施例,负载均衡器300可包含在多核处理器220中。根据一些示例性实施例,任务可以是软件过程、线程、操作等。负载均衡器300可配置成均衡多核处理器220上的负载以用于有效工作。负载均衡器300包含任务划分器310、任务简档形成器320、简档形成器分析器330和/或任务工作调度器340。在一些示例性实施例中,多核处理器220包含(例如,接收和/或存储)用于执行的数个任务。任务划分器310可基于任务的简档数据将任务划分成多个任务工作。根据一些实例实施例,任务工作可以是任务的子过程,例如,软件循环、功能、数学计算等。简档数据可由任务简档形成器320获得。简档形成器分析器330可基于简档数据来产生示出(例如,组织)多个任务工作的图形。根据一些示例性实施例,本文中描述的操作由于由电子装置200、负载均衡器300、任务划分器310、任务简档形成器320、简档形成器分析器330和/或任务工作调度器340执行,因此可由处理电路执行。
在产生图形后,任务工作调度器340可将任务调度到多个核心(例如,核心-1220A、核心-2 220B、…核心-N 220N)上以进行有效执行。在一些示例性实施例中,负载均衡器300可确定用于任务工作中的每一个的至少一个核心配置。在一些示例性实施例中,负载均衡器300可形成用于每一任务工作的新动态任务,其中在不同核心上分配来自同一亲代任务或类似亲代任务的两个或大于两个任务工作。根据一些示例性实施例,负载均衡器300可确定多核处理器的核心中的每一个的利用率水平,确定交互度量(例如,多个任务工作之间的交互成本)和通信度量(例如,多个任务工作之间的通信成本),确定任务工作中的每一个的总执行时间,且基于利用率水平、交互度量、通信度量以及总执行时间来确定至少一个核心配置(例如,将在其上调度且执行多个任务工作的至少一个核心)。根据一些示例性实施例,负载均衡器300可基于交互度量和通信度量来确定多个任务工作当中具有最高依赖性的个别任务工作,且确定至少一个核心配置使得指定(例如,配置、指派和/或调度)具有最高依赖性的个别任务工作(例如,具有最高数目的其所依赖的其它任务工作的任务工作)和所述个别任务工作所依赖的任务工作在同一核心或类似核心上执行。
图4是任务工作模型的示意图。如图4中所见,任务可由任务划分器310划分成多个任务工作:工作-1、工作-2…工作-K。在一些示例性实施例中,可由任务简档形成器320获得用于每一任务的简档数据,所述每一任务将划分成多个任务工作。待获得的简档数据可包含任务的进入点、任务的离开点、任务的执行时间、任务的抢占状态、任务与另一任务之间的任务间通信类型、任务与另一任务之间的通信的任务间通信度量(例如,任务间通信成本)和/或交互度量(例如,任务与另一任务之间的交互成本)。任务间通信成本可对应于用于在任务之间通信的任务和另一任务的时间。在获得简档数据后,简档形成器分析器330可对获得的简档数据执行简档形成器分析。基于简档形成器分析,任务划分器310可将任务划分成多个任务工作。
在一些示例性实施例中,简档形成器分析器330可基于简档数据来产生有向无环图(DAG)。负载均衡器300可基于产生的DAG来计算任务工作度量。任务工作度量可包含开始时间和/或多个任务工作之间的通信时间。基于DAG中的值,负载均衡器300可计算用于多个任务工作的任务工作执行时间和/或任务工作间通信时间。任务工作执行时间和/或任务工作间通信时间可由负载均衡器300基于当前任务工作的开始时间(触发当前任务工作与下一任务工作之间的通信时的时间)和/或下一任务工作的开始时间(例如,如DAG中所提供)来计算。
图5是根据一些示例性实施例的示出用于计算任务工作的执行时间的实例的示意图。如图5中所见,任务工作T1在时间‘t1=0’微秒(us)处开始,且在时间‘t2=150’微秒处将消息M12发送到任务工作T2。随后T2在时间‘t3=200’微秒处开始。因此,用于T1的执行时间=(t2-t1)=150微秒,且T1到T2之间的任务工作间通信时间是(t3-t2)=50微秒。基于任务工作的执行时间和任务工作间通信时间,任务工作调度器340可将多个任务工作调度到多核处理器220的一或多个核心。
在一些示例性实施例中,定义用于所产生DAG的时期。时期是预定义或定义的单个时间单元,在此期间负载均衡器300可操作。
图6绘示根据一些示例性实施例的示出用于各种任务工作的运行时间(例如,执行时间)和通信成本(例如,任务工作间通信时间)的计算的DAG。在图6中,V是节点的集合,E且是边缘的集合。在每一节点处,Tu表示任务工作标识。根据Tu的值表示对应任务工作标识的任务工作的运行时间μ(u)。两个任务工作Tu与Tv之间的交互度量或通信成本由边缘γ(u,v)表示。有向边缘意谓任务工作Tv可仅在任务工作Tu完成且待由任务工作Tv使用的数据准备好(例如,依赖性)后开始。此外,边缘γ(u,v)上的值表示当Tu和Tv在不同核心上(例如,由不同核心执行)时的通信成本。当Tu和Tv在同一核心或类似核心上时,通信成本γ(u,v)按比例缩小取决于下伏处理器架构的恒定倍数α,其中0≤α≤1。
此外,如果两个任务工作之间的通信成本充分高于两个任务工作的总执行时间(例如,高临限量),那么任务工作调度器340可不在不同核心上调度两个任务工作(例如,以用于并行化)。DAG可分割成与核心数目一样多的群组(例如,分区)使得:所有群组具有相同或几乎相同的执行时间,且群组之间的通信成本减小到最小或低成本。
实例DAG绘示于图6中。DAG包含根节点和宿节点。根节点是并不具有任何亲代的任务工作。举例来说,在图6中,T1和T2是根节点。宿节点是具有亲代但不具有子代的任务工作。举例来说,在图6中,T8、T9以及T10是宿节点。此外,任务工作的开始时间是从根节点到自身的最长路径。数学上,假设s(v)是Tv的开始时间,且由等式(1)提供。
s(v)=max{s(u)+μ(u)+γ(u,v)|(u,v)∈E} 等式(1)
给定任务工作Tv的d值d(v)是从Tv到当前分区中的宿节点的最长路径。给定任务工作Tv的t值t(v)是当给定任务工作是当前分区的部分时,给定任务工作Tv完成执行所耗费的总时间。数学上,假设t(v)如等式(2)中所给出的定义。
t(v)=s(v)+d(v) 等式(2)
首先,对于图形中的每一节点Tv,(例如,通过任务工作调度器340)计算s(v)、d(v)和t(v)。任务工作调度器340基于用于任务工作的t(v)来将任务工作分组成给定群集(例如,群组和/或分区)。任务工作调度器340可通过将每一宿节点v放到其自身群组(例如,分区和/或群集)中而开始。随后,任务工作调度器340可考虑对每一此类节点u分组,所述节点的全部直接子代已指派到群组。此类节点称作新任务工作。对于每一新任务工作u,可如等式(3)中所所提供的计算d(u),其中v表示新任务工作u的每一直接子代任务工作。
d(u)=max{μ(u)+γ(u,v)+d(v)} 等式(3)
界定d(u)的直接子代称作最佳子代,且可在分组时由任务工作调度器340使用。在一些示例性实施例中,两个或大于两个新任务工作可具有同一主导子代或类似主导子代。在计算用于所有新任务工作的d值d(u)后,计算对应t值。
图7绘示示出用于新任务工作的d值的计算的示意图。在图7中,T2和T3由于其所有子代已分组,因此是新任务工作。然而,T1不是新任务工作,因为其子代T3仍未分组。可如max{μ(T2)+γ(T2,T4)+d(T4),μ(T2)+γ(T2,T5)+d(T5)}=max{50+40+170,50+90+80}=260计算T2的d值。个别地,对于新任务工作T2,确定直接子代任务工作T5是最佳子代。在计算所有新任务工作的t值后,按其t值的递减次序布置新任务工作。
对于新任务工作u,在最大(例如,最高)t(u)情况下,假设v是最佳子代。此外,假设v是群组Gv的部分。如果指派将减小d(u)或d(Gv)(在本文中称为条件(A)),但将不增大这两者,且所组合群组的t值将不超出临限值(例如,使用等式(4)判定的临限值),那么任务工作调度器340可将新任务工作u指派到群组Gv。在等式(4)中,N是多核处理器上的核心的数目。
如果不满足上述两个条件(即条件(A)和等式(4)),那么任务工作调度器340可完全单独地将新任务工作u指派到群组。当新任务工作加入群组时,新任务工作与群组之间的通信成本按比例缩小倍数α。考虑分组新任务工作的实例,其中α=0.5。从图7,观测到如果T3合并到T4的群组中,那么d(T3)从320减小到285。此外,d(T4)保持不变。然而,s(T4)从330减小到300。类似地,T2可不合并到T4的群组中,这是因为合并将增大d(T2)。图8绘示所合并群组。
如上文所论述的调度任务工作、合并群组以及处理DAG的过程可持续直到图形的所有节点得到处理为止。根据一些示例性实施例,一旦将新任务工作指派到群组后,最近指派任务工作的亲代任务工作可变成新任务工作,且过程可相对于新任务工作而重复。根据一些示例性实施例,负载均衡器300(例如,简档形成器分析器330)可基于两个或大于两个任务工作的简档数据的分析来集聚两个或大于两个任务工作以形成至少一个新任务。
在一些示例性实施例中,由所提出方法输出的群组的数目可大于核心的数目。在此类情形中,可合并群组。设想群组G1在所有群组当中具有最小或最低工作负载,且群组G2在所有群组当中也具有最小或最低工作负载,或第二最低工作负载,随后在此情况下,可合并群组G1和群组G2。因此,一些示例性实施例提供负载均衡器,所述负载均衡器配置成将配置用于单核处理器的软件任务分割到子任务的群组中以在多核处理器上执行,从而提供跨多核处理器的核心的平均或几乎平均的负载。通过提供跨多核处理器的核心的平均或几乎平均的负载,负载均衡器减少多核处理器的处理时间,同时减少多核处理器的能量消耗。
可使用处理电路来实施本文中所公开的一些示例性实施例。举例来说,可使用在至少一个硬件装置上运行且执行网络管理功能以控制元件的至少一个软件程序来实施本文中所公开的一些示例性实施例。
一些示例性实施例的前文描述将如此完全揭示示例性实施例的一般性质,以至于通过利用当前知识,他人可容易地修改这些示例性实施例和/或使这些示例性实施例适应各种申请案而不脱离通用概念,且因此,这些适应和修改应当且意欲包括在一些示例性实施例的等效物的含义和范围内。应理解,本文中的措词或术语是出于描述而非限制的目的。因此,虽然已在实例方面描述了本文中的一些示例性实施例,但所属领域的技术人员将认识到,可在如本文中所描述的一些示例性实施例的精神和范围内在修改的情况下来实践一些示例性实施例。
Claims (14)
1.一种用于电子装置的多核处理器中的负载均衡的方法,所述方法包括:
由所述电子装置将第一任务和至少一个第二任务划分成多个任务工作;
由所述电子装置来确定用于所述多个任务工作中的每一个的至少一个核心配置;
由所述电子装置基于所述至少一个核心配置来调度所述多核处理器的至少一个核心上的所述多个任务工作中的每一个以产生执行计划表;以及
由所述多核处理器根据所述执行计划表来执行所述多个任务工作。
2.根据权利要求1所述的方法,其中所述划分包括:
由所述电子装置获得所述第一任务和所述至少一个第二任务的简档数据,所述简档数据包含以下中的至少一个:所述第一任务和所述至少一个第二任务的个别进入点、所述第一任务和所述至少一个第二任务的个别离开点、所述第一任务和所述至少一个第二任务的个别执行时间、所述第一任务和所述至少一个第二任务的个别抢占状态、所述第一任务与所述至少一个第二任务之间的任务间通信类型、所述第一任务与所述至少一个第二任务之间的任务间通信度量、或交互度量;以及
由所述电子装置基于所述简档数据来将所述第一任务和所述至少一个第二任务划分成所述多个任务工作。
3.根据权利要求1所述的方法,还包括:
由所述电子装置执行以下中的至少一个:
基于所述多个任务工作的简档数据来集聚所述多个任务工作以形成至少一个新任务,或
基于所述简档数据来集聚所述第一任务和所述至少一个第二任务以形成所述至少一个新任务。
4.根据权利要求2所述的方法,其中所述简档数据包含所述交互度量和所述任务间通信度量,所述交互度量是交互成本,且所述任务间通信度量是所述第一任务与所述至少一个第二任务之间的任务间通信成本。
5.根据权利要求1所述的方法,其中确定至少一个核心配置包括:
由所述电子装置来确定所述多核处理器的多个核心中的每一个的利用率水平;
由所述电子装置来确定所述多个任务工作当中的两个或大于两个任务工作之间的个别交互度量以及所述两个或大于两个任务工作之间的个别通信度量;
由所述电子装置来确定所述多个任务工作中的每一个的总执行时间;以及
由所述电子装置基于所述利用率水平、所述个别交互度量、所述个别通信度量以及所述多个任务工作中的每一个的所述总执行时间来确定所述至少一个核心配置。
6.根据权利要求1所述的方法,其中所述至少一个核心配置识别所述多个任务工作以及将在其上调度并执行所述多个任务工作的所述多核处理器的所述至少一个核心。
7.根据权利要求5所述的方法,其中
所述个别交互度量是所述两个或大于两个任务工作之间的个别交互成本,且所述个别通信度量是所述两个或大于两个任务工作之间的个别通信成本;且
确定所述至少一个核心配置包含:
基于所述个别交互度量和所述个别通信度量来确定所述多个任务工作当中具有最高依赖性的个别任务工作,以及
指定所述个别任务工作及所述多个任务工作当中所述个别任务工作所依赖在所述多个核心当中的单个核心上执行的任务工作。
8.一种包含用于负载均衡的多核环境的电子装置,所述电子装置包括:
多核处理器,配置成根据执行计划表来执行多个任务工作;以及
处理电路,配置成:
将第一任务和至少一个第二任务划分成所述多个任务工作,
确定用于所述多个任务工作中的每一个的至少一个核心配置,且
基于所述至少一个核心配置来调度所述多核处理器的至少一个核心上的所述多个任务工作中的每一个以产生所述执行计划表。
9.根据权利要求8所述的电子装置,其中所述处理电路配置成通过以下操作来将所述第一任务和所述至少一个第二任务划分成多个任务工作:
获得所述第一任务和所述至少一个第二任务的简档数据,所述简档数据包含以下中的至少一个:所述第一任务和所述至少一个第二任务的个别进入点、所述第一任务和所述至少一个第二任务的个别离开点、所述第一任务和所述至少一个第二任务的个别执行时间、所述第一任务和所述至少一个第二任务的个别抢占状态、所述第一任务与所述至少一个第二任务之间的任务间通信类型、所述第一任务与所述至少一个第二任务之间的任务间通信度量、或交互度量;以及
基于所述简档数据将所述第一任务和所述至少一个第二任务划分成所述多个任务工作。
10.根据权利要求8所述的电子装置,其中所述处理电路配置成执行以下中的至少一个:
基于所述多个任务工作的简档数据来集聚所述多个任务工作以形成至少一个新任务;或
基于多个任务的简档形成器数据来集聚所述多个任务以形成所述至少一个新任务。
11.根据权利要求9所述的电子装置,其中所述简档数据包含所述交互度量和所述任务间通信度量,所述交互度量是交互成本,且所述任务间通信度量是所述第一任务与所述至少一个第二任务之间的任务间通信成本。
12.根据权利要求8所述的电子装置,其中所述处理电路配置成通过以下操作来确定用于所述多个任务工作中的每一个的至少一个核心配置:
确定所述多核处理器的多个核心中的每一个的利用率水平;
确定所述多个任务工作当中的两个或大于两个任务工作之间的个别交互度量以及所述两个或大于两个任务工作之间的个别通信度量;
确定所述多个任务工作中的每一个的总执行时间;以及
基于所述利用率水平、所述个别交互度量、所述个别通信度量以及所述多个任务工作中的每一个的所述总执行时间来确定所述至少一个核心配置。
13.根据权利要求8所述的电子装置,其中所述至少一个核心配置识别所述多个任务工作以及将在其上调度并执行所述多个任务工作的所述多核处理器的所述至少一个核心。
14.根据权利要求12所述的电子装置,其中
所述个别交互度量是所述两个或大于两个任务工作之间的个别交互成本,且所述个别通信度量是所述两个或大于两个任务工作之间的个别通信成本;且
确定所述至少一个核心配置包含:
基于所述个别交互度量和所述个别通信度量来确定所述多个任务工作当中具有最高依赖性的个别任务工作,以及
指定所述个别任务工作及所述多个任务工作当中所述个别任务工作所依赖在所述多个核心当中的单个核心上执行的任务工作。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
IN201841031838 | 2018-08-24 | ||
IN201841031838 | 2018-08-24 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110858159A true CN110858159A (zh) | 2020-03-03 |
Family
ID=69586191
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910781807.6A Pending CN110858159A (zh) | 2018-08-24 | 2019-08-23 | 电子装置和用于多核处理器中的负载均衡的方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11392415B2 (zh) |
CN (1) | CN110858159A (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112256425B (zh) * | 2020-10-19 | 2023-10-20 | 聚好看科技股份有限公司 | 负载均衡方法及系统、计算机集群、信息编辑方法及终端 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8756044B2 (en) * | 2005-05-31 | 2014-06-17 | The Mathworks, Inc. | Graphical partitioning for parallel execution of executable block diagram models |
US8041773B2 (en) * | 2007-09-24 | 2011-10-18 | The Research Foundation Of State University Of New York | Automatic clustering for self-organizing grids |
KR100962531B1 (ko) | 2007-12-11 | 2010-06-15 | 한국전자통신연구원 | 동적 로드 밸런싱을 지원하는 멀티 쓰레딩 프레임워크를 수행하는 장치 및 이를 이용한 프로세싱 방법 |
CN105446816B (zh) | 2015-11-11 | 2018-12-11 | 华南理工大学 | 一种面向异构平台的能耗优化调度方法 |
CN107333282B (zh) * | 2017-06-05 | 2021-02-19 | 惠州Tcl移动通信有限公司 | 一种基于gpp的5g终端通用平台优化方法及系统 |
-
2019
- 2019-08-23 US US16/549,289 patent/US11392415B2/en active Active
- 2019-08-23 CN CN201910781807.6A patent/CN110858159A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US20200065147A1 (en) | 2020-02-27 |
US11392415B2 (en) | 2022-07-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8707314B2 (en) | Scheduling compute kernel workgroups to heterogeneous processors based on historical processor execution times and utilizations | |
US8028286B2 (en) | Methods and apparatus for scheduling threads on multicore processors under fair distribution of cache and other shared resources of the processors | |
Bailey et al. | Finding the limits of power-constrained application performance | |
EP2466460B1 (en) | Compiling apparatus and method for a multicore device | |
Lee et al. | Orchestrating multiple data-parallel kernels on multiple devices | |
Pietri et al. | Energy-aware workflow scheduling using frequency scaling | |
Stavrinides et al. | Energy-aware scheduling of real-time workflow applications in clouds utilizing DVFS and approximate computations | |
Chen et al. | Adaptive workload-aware task scheduling for single-ISA asymmetric multicore architectures | |
Wu et al. | Optimizing the performance of big data workflows in multi-cloud environments under budget constraint | |
CN110300959B (zh) | 用于动态运行时任务管理的方法、系统、设备、装置和介质 | |
JP2016042284A (ja) | 並列計算機システム、管理装置、並列計算機システムの制御方法及び管理装置の制御プログラム | |
JP6778130B2 (ja) | 仮想計算機システムおよびそのリソース割当て方法 | |
Padoin et al. | Saving energy by exploiting residual imbalances on iterative applications | |
Yoosefi et al. | A clustering algorithm for communication-aware scheduling of task graphs on multi-core reconfigurable systems | |
Pathania et al. | Optimal greedy algorithm for many-core scheduling | |
Sena et al. | Autonomic malleability in iterative mpi applications | |
Zahaf et al. | A C-DAG task model for scheduling complex real-time tasks on heterogeneous platforms: preemption matters | |
US10162679B2 (en) | Method and system for assigning a computational block of a software program to cores of a multi-processor system | |
CN114579284A (zh) | 任务调度方法及装置 | |
Padoin et al. | Managing power demand and load imbalance to save energy on systems with heterogeneous CPU speeds | |
Cai et al. | ABSS: An Adaptive Batch-Stream Scheduling Module for Dynamic Task Parallelism on Chiplet-based Multi-Chip Systems | |
US11392415B2 (en) | Electronic devices and methods for 5G and B5G multi-core load balancing | |
Pilla et al. | Asymptotically optimal load balancing for hierarchical multi-core systems | |
Andrade et al. | Efficient execution of microscopy image analysis on CPU, GPU, and MIC equipped cluster systems | |
Zahaf et al. | Contention-aware GPU partitioning and task-to-partition allocation for real-time workloads |
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 |