CN110688204A - 分布式计算系统任务分配方法及相关设备 - Google Patents

分布式计算系统任务分配方法及相关设备 Download PDF

Info

Publication number
CN110688204A
CN110688204A CN201910731711.9A CN201910731711A CN110688204A CN 110688204 A CN110688204 A CN 110688204A CN 201910731711 A CN201910731711 A CN 201910731711A CN 110688204 A CN110688204 A CN 110688204A
Authority
CN
China
Prior art keywords
task
tasks
computing device
processed
difference
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
Application number
CN201910731711.9A
Other languages
English (en)
Other versions
CN110688204B (zh
Inventor
王涛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ping An Technology Shenzhen Co Ltd
Original Assignee
Ping An Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ping An Technology Shenzhen Co Ltd filed Critical Ping An Technology Shenzhen Co Ltd
Priority to CN201910731711.9A priority Critical patent/CN110688204B/zh
Priority to PCT/CN2019/117418 priority patent/WO2021022706A1/zh
Publication of CN110688204A publication Critical patent/CN110688204A/zh
Application granted granted Critical
Publication of CN110688204B publication Critical patent/CN110688204B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation 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/5038Allocation 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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)
  • Multi Processors (AREA)

Abstract

本发明提供了一种分布式计算系统任务分配方法及相关设备。所述方法包括:获取多个待处理任务;根据多个待处理任务的属性值对多个待处理任务进行排序;将多个待处理任务分配给分布式计算系统的多个计算设备;计算每个计算设备的已分配任务的属性值之和,计算最大的属性值之和与最小的属性值之和的第一差值;计算第一计算设备的每个已分配任务的属性值与第二计算设备的每个已分配任务的属性值的第二差值;交换第一待交换任务与第二待交换任务;若第一差值满足预设条件,将取得第一差值的任务分配表作为最终的分配结果;将待处理任务下发给所述多个计算设备。本发明能够将多个任务根据其属性值均衡分配给分布式计算系统的多个计算设备。

Description

分布式计算系统任务分配方法及相关设备
技术领域
本发明涉及计算机技术领域,具体涉及一种分布式计算系统任务分配方法、装置、计算机装置及计算机存储介质。
背景技术
随着信息技术的飞速发展,基于数据处理和数据分析的应用受到了广泛的欢迎和关注。对数据(如海量数据)进行复杂计算已经远远超过单台计算机的处理能力,由此推动了对分布式系统及其关键技术的研究。分布式计算中把需要进行复杂计算的数据切分成小块后,分交由多个计算设备并行处理,并将局部计算结果整合得出最终结果。因此,如何合理地对分布式计算系统的资源进行分配,使得分布式计算系统的资源的利用率最大化,同时减少处理任务的开销时间,成了亟待解决的问题。
发明内容
鉴于以上内容,有必要提出一种分布式计算系统任务分配方法、装置、计算机装置及计算机存储介质,其可以将待处理任务均衡分配给所述分布式计算系统中的多个计算设备。
本申请的第一方面提供一种分布式计算系统任务分配方法,所述方法包括:
获取分布式计算系统的多个待处理任务;
根据所述多个待处理任务的属性值对所述多个待处理任务进行排序;
将所述多个待处理任务按照排序后的顺序分配给所述分布式计算系统的多个计算设备,得到所述多个计算设备的任务分配表;
根据所述任务分配表计算每个计算设备的已分配任务的属性值之和,计算最大的属性值之和与最小的属性值之和的第一差值M(n),其中n为循环变量,初始值为1;
将具有所述最大的属性值之和的计算设备作为第一计算设备,将具有所述最小的属性值之和的计算设备作为第二计算设备,计算所述第一计算设备的每个已分配任务的属性值与所述第二计算设备的每个已分配任务的属性值的第二差值
Figure BDA0002160809400000022
是所述第一计算设备的第i个已分配任务的属性值与所述第二计算设备的第j个已分配任务的属性值的第二差值;
根据所述第一差值M(n)与所述第二差值
Figure BDA0002160809400000023
确定所述第一计算设备的第一待交换任务和所述第二计算设备的第二待交换任务;
在所述任务分配表中交换所述第一待交换任务与所述第二待交换任务;
判断所述第一差值M(n)是否满足预设条件,若所述第一差值M(n)不满足预设条件,则n=n+1,返回所述根据所述任务分配表计算每个计算设备的已分配任务的属性值之和,计算最大的属性值之和与最小的属性值之和的第一差值M(n)的步骤;
若所述第一差值M(n)满足预设条件,则将取得第一差值M(n-1)的任务分配表作为最终的分配结果;
根据所述任务分配表将所述待处理任务下发给所述多个计算设备,使得所述多个计算设备对分配的待处理任务进行处理。
另一种可能的实现方式中,所述待处理任务为音频修正任务,所述属性值为音频修正计算量,所述音频修正计算量包括语音特征提取计算量、语音识别计算量、模板匹配计算量、变声计算量。
另一种可能的实现方式中,在所述将所述多个待处理任务按照排序后的顺序分配给所述分布式计算系统中的多个计算设备之前,所述方法还包括:
判断所述多个待处理任务的数量是否为所述多个计算设备的数量的整数倍;
若所述多个待处理任务的数量不是所述多个计算设备的数量的整数倍,则从排序后的所述多个待处理任务中选取数量为所述多个计算设备的数量的整数倍的待处理任务进行分配。
另一种可能的实现方式中,所述根据所述第一差值M(n)与所述第二差值
Figure BDA0002160809400000031
确定所述第一计算设备的第一待交换任务和所述第二计算设备的第二待交换任务包括:
计算由所述第一差值M(n)与所述第二差值
Figure BDA0002160809400000032
确定的第三差值
Figure BDA0002160809400000033
Figure BDA0002160809400000034
从所有
Figure BDA0002160809400000035
中确定大于0的最小值
Figure BDA0002160809400000036
将所述第一计算设备的第a个已分配任务作为所述第一计算设备的第一待交换任务,将所述第二计算设备的第b个已分配任务作为所述第二计算设备的第二待交换任务。
另一种可能的实现方式中,所述第一差值M(n)满足预设条件包括:
n≥2且M(n)>M(n-1);或者
M(n)小于或等于预设阈值。
另一种可能的实现方式中,所述方法还包括:
采集所述多个计算设备的任务负载情况;
根据所述多个计算设备的任务负载情况判断所述多个计算设备当前的任务负载是否均衡;
若所述多个计算设备当前的任务负载均衡,则执行所述根据所述任务分配表将所述待处理任务下发给所述多个计算设备。
另一种可能的实现方式中,所述方法还包括:
接收所述多个计算设备对所述分配的待处理任务的处理结果;
将所述多个计算设备对所述分配的待处理任务的处理结果合成为整体处理结果。
本申请的第二方面提供一种分布式计算系统任务分配装置,所述装置包括:
获取模块,用于获取分布式计算系统的多个待处理任务;
排序模块,用于根据所述多个待处理任务的属性值对所述多个待处理任务进行排序;
分配模块,用于将所述多个待处理任务按照排序后的顺序分配给所述分布式计算系统的多个计算设备,得到所述多个计算设备的任务分配表;
第一计算模块,用于根据所述任务分配表计算每个计算设备的已分配任务的属性值之和,计算最大的属性值之和与最小的属性值之和的第一差值M(n),其中n为循环变量,初始值为1;
第二计算模块,用于将具有所述最大的属性值之和的计算设备作为第一计算设备,将具有所述最小的属性值之和的计算设备作为第二计算设备,计算所述第一计算设备的每个已分配任务的属性值与所述第二计算设备的每个已分配任务的属性值的第二差值
Figure BDA0002160809400000041
Figure BDA0002160809400000042
是所述第一计算设备的第i个已分配任务的属性值与所述第二计算设备的第j个已分配任务的属性值的第二差值;
第一确定模块,用于根据所述第一差值M(n)与所述第二差值
Figure BDA0002160809400000043
确定所述第一计算设备的第一待交换任务和所述第二计算设备的第二待交换任务;
交换模块,用于在所述任务分配表中交换所述第一待交换任务与所述第二待交换任务;
判断模块,用于判断所述第一差值M(n)是否满足预设条件,若所述第一差值M(n)不满足预设条件,则n=n+1;
第二确定模块,用于若所述第一差值M(n)满足预设条件,则将取得第一差值M(n-1)的任务分配表作为最终的分配结果;
下发模块,用于根据所述任务分配表将所述待处理任务下发给所述多个计算设备,使得所述多个计算设备对分配的待处理任务进行处理。
本申请的第三方面提供一种计算机装置,所述计算机装置包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现所述分布式计算系统任务分配方法。
本申请的第四方面提供一种计算机存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现所述分布式计算系统任务分配方法。
本发明获取分布式计算系统的多个待处理任务;根据所述多个待处理任务的属性值对所述多个待处理任务进行排序;将所述多个待处理任务按照排序后的顺序分配给所述分布式计算系统的多个计算设备,得到所述多个计算设备的任务分配表;根据所述任务分配表计算每个计算设备的已分配任务的属性值之和,计算最大的属性值之和与最小的属性值之和的第一差值M(n),n为循环变量,初始值为1;将具有所述最大的属性值之和的计算设备作为第一计算设备,将具有所述最小的属性值之和的计算设备作为第二计算设备,计算所述第一计算设备的每个已分配任务的属性值与所述第二计算设备的每个已分配任务的属性值的第二差值
Figure BDA0002160809400000051
Figure BDA0002160809400000052
是所述第一计算设备的第i个已分配任务的属性值与所述第二计算设备的第j个已分配任务的属性值的第二差值;根据所述第一差值M(n)与所述第二差值
Figure BDA0002160809400000053
确定所述第一计算设备的第一待交换任务和所述第二计算设备的第二待交换任务;在所述任务分配表中交换所述第一待交换任务与所述第二待交换任务;判断所述第一差值M(n)是否满足预设条件,若所述第一差值M(n)不满足预设条件,则n=n+1,返回所述根据所述任务分配表计算每个计算设备的已分配任务的属性值之和,计算最大的属性值之和与最小的属性值之和的第一差值M(n)的步骤;若所述第一差值M(n)满足预设条件,则将取得第一差值M(n-1)的任务分配表作为最终的分配结果;根据所述任务分配表将所述待处理任务下发给所述多个计算设备,使得所述多个计算设备对分配的待处理任务进行处理。本发明实现了将待处理任务均衡分配给分布式计算系统中的多个计算设备。
附图说明
图1是本发明实施例提供的分布式计算系统任务分配方法的流程图。
图2是本发明实施例提供的分布式计算系统任务分配装置的结构图。
图3是本发明实施例提供的计算机装置的示意图。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施例对本发明进行详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。
优选地,本发明的分布式计算系统任务分配方法应用在一个或者多个计算机装置中。所述计算机装置是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、可编程门阵列(Field-Programmable Gate Array,FPGA)、数字处理器(Digital Signal Processor,DSP)、嵌入式设备等。
所述计算机装置可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述计算机装置可以与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。
实施例一
图1是本发明实施例一提供的分布式计算系统任务分配方法的流程图。所述分布式计算系统任务分配方法应用于计算机装置。所述分布式计算系统任务分配方法能够将待处理任务均衡分配给分布式计算系统中的多个计算设备。
如图1所示,所述分布式计算系统任务分配方法包括:
101,获取分布式计算系统的多个待处理任务。
所述待处理任务可以是各种类型的任务,例如音频处理任务、图像处理任务、文本处理任务等。
每个待处理任务具有一个属性值,所述属性值用于衡量任务分配是否均衡。
在本实施例中,所述属性值可以是待处理任务的计算量。例如,所述方法用于进行音频修正的任务分配,所述待处理任务为音频修正任务,所述音频修正任务的属性值为音频修正计算量,所述音频修正计算量可以包括语音特征提取计算量、语音识别计算量、模板匹配计算量、变声计算量。
在另一实施例中,所述属性值可以是待处理任务的数据量。例如,所述方法用于进行文本处理的任务分配,所述待处理任务为文本处理任务,所述文本处理任务的属性值为文本大小。
在一具体实施例中,可以将复杂计算任务划分为多个独立计算任务,将所述多个独立计算任务作为所述待处理任务。例如,所述方法用于进行音频修正的任务分配,将长音频音频修正任务划分为多个短音频音频修正任务作为所述待处理任务。
102,根据所述多个待处理任务的属性值对所述多个待处理任务进行排序。
例如,所述多个待处理任务包括50个音频修正任务,根据所述50个音频修正任务的计算量对所述50个音频修正任务进行排序。
可以根据所述多个待处理任务的属性值对所述多个待处理任务进行升序排序或降序排序。例如,根据所述50个音频修正任务的计算量对所述50个音频修正任务进行降序排序,得到计算量从大到小排列的所述50个音频修正任务。又如,根据所述50个音频修正任务的计算量对所述50个音频修正任务进行升序排序,得到计算量从小到大排列的所述50个音频修正任务。
103,将所述多个待处理任务按照排序后的顺序分配给所述分布式计算系统中的多个计算设备,得到所述多个计算设备的任务分配表。
在本实施例中,可以判断所述多个待处理任务的数量是否为所述多个计算设备的数量的整数倍,若所述多个待处理任务的数量不是所述多个计算设备的数量的整数倍,则从排序后的所述多个待处理任务中选取数量为所述多个计算设备的数量的整数倍的待处理任务进行分配,保证每个计算设备分配得到相同数量的任务。
例如,所述多个计算设备的数量为4,所述多个待处理任务为50个音频修正任务,根据所述50个音频修正任务的计算量对所述50个音频修正任务进行降序排序后,将前48(4*12)个音频修正任务分配给所述4个计算设备。余下的2个音频修正任务可以在下一次任务分配中进行分配。
在将所述多个待处理任务按照排序后的顺序分配给所述多个计算设备时,每次获取与所述多个计算设备相同数量的待处理任务,将获取的与所述多个计算设备相同数量的所述待处理任务依次分配给所述多个计算设备,直到所有的待处理任务分配完毕。
例如,排序后的16个音频修正任务为T1、T2、T3、...、T16,将16个音频修正任务分配给4个计算设备A1、A2、A3、A4:第一次获取4个音频修正任务T1、T2、T3、T4,分别分配给4个计算设备A1、A2、A3、A4,其中音频修正任务T1分配给计算设备A1,音频修正任务T2计算设备A2,音频修正任务T3计算设备A3,音频修正任务T4计算设备A4;第二次获取4个音频修正任务T5、T6、T7、T8,分别分配给4个计算设备A1、A2、A3、A4,其中音频修正任务T5分配给计算设备A1,音频修正任务T6计算设备A2,音频修正任务T7计算设备A3,音频修正任务T8计算设备A4;第三次获取4个音频修正任务T9、T10、T11、T12,分别分配给4个计算设备A1、A2、A3、A4,其中音频修正任务T9分配给计算设备A1,音频修正任务T10计算设备A2,音频修正任务T11计算设备A3,音频修正任务T12计算设备A4;第四次获取4个音频修正任务T13、T14、T15、T16,分别分配给4个计算设备A1、A2、A3、A4,其中音频修正任务T13分配给计算设备A1,音频修正任务T14计算设备A2,音频修正任务T15计算设备A3,音频修正任务T16计算设备A4。得到的任务分配表如表1所示:
A1 A2 A3 A4
1 T1 T2 T3 T4
2 T5 T6 T7 T8
3 T9 T10 T11 T12
4 T13 T14 T15 T16
表1
上表中第一列表示计算设备的已分配任务的序号。例如,第一列中的“1”表示计算设备的第1个已分配任务,第一列中的“2”表示计算设备的第2个已分配任务.
可以在任务分配表用属性值表示已分配任务。例如,降序排序后的16个音频修正任务的计算量分别为597、585、513、435、424、363、340、339、323、281、269、240、190、71、32、25,得到的任务分配表如表2所示:
A1 A2 A3 A4
1 597 585 513 435
2 424 363 340 339
3 323 281 269 240
4 190 71 32 25
表2
104,根据所述任务分配表计算每个计算设备的已分配任务的属性值之和,计算最大的属性值之和与最小的属性值之和的第一差值M(n),n为循环变量,初始值为1。
例如,参阅表2所示,计算设备A1的已分配任务的属性值之和为597+424+323+190=1534,计算设备A2的已分配任务的属性值之和为585+363+281+71=1300,计算设备A3的已分配任务的属性值之和为513+340+269+32=1154,计算设备A4的已分配任务的属性值之和为435+339+240+25=1039,最大的属性值之和(计算设备A1的已分配任务的属性值之和)与最小的属性值之和(计算设备A4的已分配任务的属性值之和)的第一差值M(1)=1534-1039=495。
105,将具有所述最大的属性值之和的计算设备作为第一计算设备,将具有所述最小的属性值之和的计算设备作为第二计算设备,计算所述第一计算设备的每个已分配任务的属性值与所述第二计算设备的每个已分配任务的属性值的第二差值
Figure BDA0002160809400000091
Figure BDA0002160809400000092
是所述第一计算设备的第i个已分配任务的属性值与所述第二计算设备的第j个已分配任务的属性值的第二差值。
例如,参阅表2所示,将具有所述最大的属性值之和的计算设备A1作为第一计算设备,将具有所述最小的属性值之和的计算设备A4作为第二计算设备,计算第一计算设备A1的每个已分配任务的属性值(即597、424、323、190)与第二计算设备A4的每个已分配任务的属性值(即435、339、240、25)的第二差值。
Figure BDA0002160809400000093
表示第一计算设备的第i个已分配任务的属性值与第二计算设备的第j个已分配任务的属性值的第二差值。例如,表2所示第一计算设备A1的每个已分配任务的属性值与第二计算设备A4的每个已分配任务的属性值的第二差值为:
106,根据所述第一差值M(n)与所述第二差值
Figure BDA0002160809400000103
确定所述第一计算设备的第一待交换任务和所述第二计算设备的第二待交换任务。
在一具体实施例中,计算由所述第一差值M(n)与所述第二差值
Figure BDA0002160809400000104
确定的第三差值
Figure BDA0002160809400000105
Figure BDA0002160809400000106
从所有中确定大于0的最小值
Figure BDA0002160809400000108
将所述第一计算设备的第a个已分配任务作为所述第一计算设备的第一待交换任务,将所述第二计算设备的第b个已分配任务作为所述第二计算设备的第二待交换任务。
例如,表2所示的例子中,
Figure BDA0002160809400000109
Figure BDA00021608094000001010
Figure BDA00021608094000001011
Figure BDA00021608094000001012
中大于0的最小值为(即127),因此,确定第一计算设备A1的第2个已分配任务(即属性值为424的已分配任务)为第一计算设备A1的第一待交换任务,第二计算设备A4的第3个已分配任务(即属性值为240的已分配任务)为第二计算设备A4的第二待交换任务。
107,在所述任务分配表中交换所述第一待交换任务与所述第二待交换任务。
交换所述第一待交换任务与所述第二待交换任务就是将所述第一待交换任务从分配给所述第一计算设备更改为分配给所述第二计算设备,将所述第二待交换任务从分配给所述第二计算设备更改为分配给所述第一计算设备。
例如,交换第一计算设备A1的第2个已分配任务(即属性值为424的已分配任务)和第二计算设备A4的第3个已分配任务(即属性值为240的已分配任务),得到表3所示的任务分配表:
A1 A2 A3 A4
1 597 585 513 435
2 240 363 340 339
3 323 281 269 424
4 190 71 32 25
表3
通过交换所述第一待交换任务与所述第二待交换任务,可以在具有最小的属性值之和的计算设备和具有最大的属性值之和的计算设备之间进行调整,使得任务分配更快达到均衡。
108,判断所述第一差值M(n)是否满足预设条件,若所述第一差值M(n)不满足预设条件,则n=n+1,返回104。
在本实施例中,所述第一差值M(n)满足预设条件为:
n≥2且M(n)>M(n-1)
在另一实施例中,所述第一差值M(n)满足预设条件为:M(n)小于或等于预设阈值(例如10)。
109,若所述第一差值M(n)满足预设条件,则将取得第一差值M(n-1)的任务分配表作为最终的分配结果。
例如,根据初始的任务分配表得到的第一差值M(1)为495,根据第一次更新后的任务分配表得到的第一差值M(2)为196,根据第二次更新后的任务分配表得到的第一差值M(3)为77,根据第三次更新后的任务分配表得到的第一差值M(4)为19,根据第四次更新后的任务分配表得到的第一差值M(5)为99,则第一差值M(5)满足预设条件,将取得第一差值M(4)的任务分配表作为最终的分配结果。
通过重复执行104-108,可以将分配给所述多个计算设备的已分配任务进行再分配,以达到任务均衡分配的目的。
110,根据所述任务分配表将所述待处理任务下发给所述多个计算设备,使得所述多个计算设备对分配的待处理任务进行处理。
例如,根据所述任务分配表将48个音频修正任务分配给4个计算设备,使得4个多个计算设备对分配的音频修正任务进行处理。在本实施例中,可以控制所述多个计算设备对分配的音频修正任务进行并行处理。
实施例一的分布式计算系统任务分配方法将待处理任务均衡分配给分布式计算系统中的多个计算设备,使得分布式计算系统的资源的利用率最大化,同时减少处理任务的开销时间。
在另一实施例中,所述方法还包括:
接收所述多个计算设备对所述分配的待处理任务的处理结果;
将所述多个计算设备对所述分配的待处理任务的处理结果合成为整体处理结果。
例如,接收4个计算设备对分配的音频修正任务的音频修正结果,将4个计算设备的音频修正结果按照各个音频修正任务对应的时间组合为整体音频修正结果。
在另一实施例中,所述方法还包括:
采集所述多个计算设备的任务负载情况;
根据所述多个计算设备的任务负载情况判断所述多个计算设备当前的任务负载是否均衡;
若所述多个计算设备当前的任务负载均衡,则执行所述根据所述任务分配表将所述待处理任务下发给所述多个计算设备。
实施例二
图2是本发明实施例二提供的分布式计算系统任务分配装置的结构图。所述分布式计算系统任务分配装置20应用于计算机装置,用于将待处理任务均衡分配给分布式计算系统中的多个计算设备。
如图2所示,所述装置20包括获取模块201、排序模块202、分配模块203、第一计算模块204、第二计算模块205、第一确定模块206、交换模块207、判断模块208、第二确定模块209、下发模块210。
获取模块201,用于获取分布式计算系统的多个待处理任务。
所述待处理任务可以是各种类型的任务,例如音频处理任务、图像处理任务、文本处理任务等。
每个待处理任务具有一个属性值,用于衡量任务分配是否均衡。
在本实施例中,所述属性值可以是待处理任务的计算量。例如,所述方法用于进行音频修正的任务分配,所述待处理任务为音频修正任务,所述音频修正任务的属性值为音频修正计算量,所述音频修正计算量可以包括语音特征提取计算量、语音识别计算量、模板匹配计算量、变声计算量。
在另一实施例中,所述属性值可以是待处理任务的数据量。例如,所述方法用于进行文本处理的任务分配,所述待处理任务为文本处理任务,所述文本处理任务的属性值为文本大小。
在一具体实施例中,可以将复杂计算任务划分为多个独立计算任务,将所述多个独立计算任务作为所述待处理任务。例如,所述方法用于进行音频修正的任务分配,将长音频音频修正任务划分为多个短音频音频修正任务作为所述待处理任务。
排序模块202,用于根据所述多个待处理任务的属性值对所述多个待处理任务进行排序。
例如,所述多个待处理任务包括50个音频修正任务,根据所述50个音频修正任务的计算量对所述50个音频修正任务进行排序。
可以根据所述多个待处理任务的属性值对所述多个待处理任务进行升序排序或降序排序。例如,根据所述50个音频修正任务的计算量对所述50个音频修正任务进行降序排序,得到计算量从大到小排列的所述50个音频修正任务。又如,根据所述50个音频修正任务的计算量对所述50个音频修正任务进行升序排序,得到计算量从小到大排列的所述50个音频修正任务。
分配模块203,用于将所述多个待处理任务按照排序后的顺序分配给所述分布式计算系统的多个计算设备,得到所述多个计算设备的任务分配表。
在本实施例中,可以判断所述多个待处理任务的数量是否为所述多个计算设备的数量的整数倍,若所述多个待处理任务的数量不是所述多个计算设备的数量的整数倍,则从排序后的所述多个待处理任务中选取数量为所述多个计算设备的数量的整数倍的待处理任务进行分配,保证每个计算设备分配得到相同数量的任务。
例如,所述多个计算设备的数量为4,所述多个待处理任务为50个音频修正任务,根据所述50个音频修正任务的计算量对所述50个音频修正任务进行降序排序后,将前48(4*12)个音频修正任务分配给所述4个计算设备。余下的2个音频修正任务可以在下一次任务分配中进行分配。
在将所述多个待处理任务按照排序后的顺序分配给所述多个计算设备时,每次获取与所述多个计算设备相同数量的待处理任务,将获取的与所述多个计算设备相同数量的所述待处理任务依次分配给所述多个计算设备,直到所有的待处理任务分配完毕。
例如,排序后的16个音频修正任务为T1、T2、T3、...、T16,将16个音频修正任务分配给4个计算设备A1、A2、A3、A4:第一次获取4个音频修正任务T1、T2、T3、T4,分别分配给4个计算设备A1、A2、A3、A4,其中音频修正任务T1分配给计算设备A1,音频修正任务T2计算设备A2,音频修正任务T3计算设备A3,音频修正任务T4计算设备A4;第二次获取4个音频修正任务T5、T6、T7、T8,分别分配给4个计算设备A1、A2、A3、A4,其中音频修正任务T5分配给计算设备A1,音频修正任务T6计算设备A2,音频修正任务T7计算设备A3,音频修正任务T8计算设备A4;第三次获取4个音频修正任务T9、T10、T11、T12,分别分配给4个计算设备A1、A2、A3、A4,其中音频修正任务T9分配给计算设备A1,音频修正任务T10计算设备A2,音频修正任务T11计算设备A3,音频修正任务T12计算设备A4;第四次获取4个音频修正任务T13、T14、T15、T16,分别分配给4个计算设备A1、A2、A3、A4,其中音频修正任务T13分配给计算设备A1,音频修正任务T14计算设备A2,音频修正任务T15计算设备A3,音频修正任务T16计算设备A4。得到的任务分配表如表1所示:
A1 A2 A3 A4
1 T1 T2 T3 T4
2 T5 T6 T7 T8
3 T9 T10 T11 T12
4 T13 T14 T15 T16
表1
上表中第一列表示计算设备的已分配任务的序号。例如,第一列中的“1”表示计算设备的第1个已分配任务,第一列中的“2”表示计算设备的第2个已分配任务。
可以在任务分配表用属性值表示已分配任务。例如,降序排序后的16个音频修正任务的计算量分别为597、585、513、435、424、363、340、339、323、281、269、240、190、71、32、25,得到的任务分配表如表2所示:
A1 A2 A3 A4
1 597 585 513 435
2 424 363 340 339
3 323 281 269 240
4 190 71 32 25
表2
第一计算模块204,用于根据所述任务分配表计算每个计算设备的已分配任务的属性值之和,计算最大的属性值之和与最小的属性值之和的第一差值M(n),n为循环变量,初始值为1。
例如,参阅表2所示,计算设备A1的已分配任务的属性值之和为597+424+323+190=1534,计算设备A2的已分配任务的属性值之和为585+363+281+71=1300,计算设备A3的已分配任务的属性值之和为513+340+269+32=1154,计算设备A4的已分配任务的属性值之和为435+339+240+25=1039,最大的属性值之和(计算设备A1的已分配任务的属性值之和)与最小的属性值之和(计算设备A4的已分配任务的属性值之和)的第一差值M(1)=1534-1039=495。
第二计算模块205,用于将具有所述最大的属性值之和的计算设备作为第一计算设备,将具有所述最小的属性值之和的计算设备作为第二计算设备,计算所述第一计算设备的每个已分配任务的属性值与所述第二计算设备的每个已分配任务的属性值的第二差值
Figure BDA0002160809400000152
是所述第一计算设备的第i个已分配任务的属性值与所述第二计算设备的第j个已分配任务的属性值的第二差值。
例如,参阅表2所示,将具有所述最大的属性值之和的计算设备A1作为第一计算设备,将具有所述最小的属性值之和的计算设备A4作为第二计算设备,计算第一计算设备A1的每个已分配任务的属性值(即597、424、323、190)与第二计算设备A4的每个已分配任务的属性值(即435、339、240、25)的第二差值。
表示第一计算设备的第i个已分配任务的属性值与第二计算设备的第j个已分配任务的属性值的第二差值。例如,表2所示第一计算设备A1的每个已分配任务的属性值与第二计算设备A4的每个已分配任务的属性值的第二差值为:
Figure BDA0002160809400000162
第一确定模块206,用于根据所述第一差值M(n)与所述第二差值
Figure BDA0002160809400000164
确定所述第一计算设备的第一待交换任务和所述第二计算设备的第二待交换任务。
在一具体实施例中,计算由所述第一差值M(n)与所述第二差值
Figure BDA0002160809400000165
确定的第三差值
Figure BDA0002160809400000166
Figure BDA0002160809400000167
从所有
Figure BDA0002160809400000168
中确定大于0的最小值其中,a为i的子集,b为j的子集;
将所述第一计算设备的第a个已分配任务作为所述第一计算设备的第一待交换任务,将所述第二计算设备的第b个已分配任务作为所述第二计算设备的第二待交换任务。
例如,表2所示的例子中,
Figure BDA00021608094000001613
中大于0的最小值为
Figure BDA00021608094000001614
(即127),因此,确定第一计算设备A1的第2个已分配任务(即属性值为424的已分配任务)为第一计算设备A1的第一待交换任务,第二计算设备A4的第3个已分配任务(即属性值为240的已分配任务)为第二计算设备A4的第二待交换任务。
交换模块207,用于在所述任务分配表中交换所述第一待交换任务与所述第二待交换任务。
交换所述第一待交换任务与所述第二待交换任务就是将所述第一待交换任务从分配给所述第一计算设备更改为分配给所述第二计算设备,将所述第二待交换任务从分配给所述第二计算设备更改为分配给所述第一计算设备。
例如,交换第一计算设备A1的第2个已分配任务(即属性值为424的已分配任务)和第二计算设备A4的第3个已分配任务(即属性值为240的已分配任务),得到表3所示的任务分配表:
A1 A2 A3 A4
1 597 585 513 435
2 240 363 340 339
3 323 281 269 424
4 190 71 32 25
表3
通过交换所述第一待交换任务与所述第二待交换任务,可以在具有最小的属性值之和的计算设备和具有最大的属性值之和的计算设备之间进行调整,使得任务分配更快达到均衡。
判断模块208,用于判断所述第一差值M(n)是否满足预设条件,若所述第一差值M(n)不满足预设条件,则n=n+1。
在循环次数n递增后,第一计算模块204、第二计算模块205、第一确定模块206、交换模块207、判断模块208,从而实现将分配给所述多个计算设备的已分配任务进行再分配,以达到任务均衡分配的目的。例如,第一计算模式204重新根据所述任务分配表计算每个计算设备的已分配任务的属性值之和,计算最大的属性值之和与最小的属性值之和的第一差值M(n)
在本实施例中,所述第一差值M(n)满足预设条件为:
n≥2且M(n)>M(n-1)
在另一实施例中,所述第一差值M(n)满足预设条件为:M(n)小于或等于预设阈值(例如10)。
第二确定模块209,用于若所述第一差值M(n)满足预设条件,则将取得第一差值M(n -1)的任务分配表作为最终的分配结果。
例如,根据初始的任务分配表得到的第一差值M(1)为495,根据第一次更新后的任务分配表得到的第一差值M(2)为196,根据第二次更新后的任务分配表得到的第一差值M(3)为77,根据第三次更新后的任务分配表得到的第一差值M(4)为19,根据第四次更新后的任务分配表得到的第一差值M(5)为99,则第一差值M(5)满足预设条件,将取得第一差值M(4)的任务分配表作为最终的分配结果。
下发模块210,用于根据所述任务分配表将所述待处理任务下发给所述多个计算设备,使得所述多个计算设备对分配的待处理任务进行处理。
例如,根据所述任务分配表将48个音频修正任务分配给4个计算设备,使得4个多个计算设备对分配的音频修正任务进行处理。在本实施例中,可以控制所述多个计算设备对分配的音频修正任务进行并行处理。
实施例二的分布式计算系统任务分配装置20所述任务将待处理任务均衡分配给分布式计算系统中的多个计算设备,使得分布式计算系统的资源的利用率最大化,同时减少处理任务的开销时间。
在另一实施例中,所述分布式计算系统任务分配装置20还可以包括:合成模块,用于接收所述多个计算设备对所述分配的待处理任务的处理结果,将所述多个计算设备对所述分配的待处理任务的处理结果合成为整体处理结果。
例如,接收4个计算设备对分配的音频修正任务的音频修正结果,将4个计算设备的音频修正结果按照各个音频修正任务对应的时间组合为整体音频修正结果。
在另一实施例中,所述分布式计算系统任务分配装置20还可以包括:采集模块,用于采集所述多个计算设备的任务负载情况,根据所述多个计算设备的任务负载情况判断所述多个计算设备当前的任务负载是否均衡。若所述多个计算设备当前的任务负载均衡,则下发模块210根据所述任务分配表将所述待处理任务下发给所述多个计算设备。
实施例三
本实施例提供一种计算机存储介质,该计算机存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述分布式计算系统任务分配方法实施例中的步骤,例如图1所示的步骤101-110:
101,获取分布式计算系统的多个待处理任务;
102,根据所述多个待处理任务的属性值对所述多个待处理任务进行排序;
103,将所述多个待处理任务按照排序后的顺序分配给所述分布式计算系统的多个计算设备,得到所述多个计算设备的任务分配表;
104,根据所述任务分配表计算每个计算设备的已分配任务的属性值之和,计算最大的属性值之和与最小的属性值之和的第一差值M(n),其中n为循环变量,初始值为1;
105,将具有所述最大的属性值之和的计算设备作为第一计算设备,将具有所述最小的属性值之和的计算设备作为第二计算设备,计算所述第一计算设备的每个已分配任务的属性值与所述第二计算设备的每个已分配任务的属性值的第二差值
Figure BDA0002160809400000191
Figure BDA0002160809400000192
是所述第一计算设备的第i个已分配任务的属性值与所述第二计算设备的第j个已分配任务的属性值的第二差值;
106,根据所述第一差值M(n)与所述第二差值确定所述第一计算设备的第一待交换任务和所述第二计算设备的第二待交换任务;
107,在所述任务分配表中交换所述第一待交换任务与所述第二待交换任务;
108,判断所述第一差值M(n)是否满足预设条件,若所述第一差值M(n)不满足预设条件,则n=n+1,返回104;
109,若所述第一差值M(n)满足预设条件,则将取得第一差值M(n-1)的任务分配表作为最终的分配结果;
110,根据所述任务分配表将所述待处理任务下发给所述多个计算设备,使得所述多个计算设备对分配的待处理任务进行处理。
或者,该计算机程序被处理器执行时实现上述装置实施例中各模块的功能,例如图2中的模块201-210:
获取模块201,用于获取分布式计算系统的多个待处理任务;
排序模块202,用于根据所述多个待处理任务的属性值对所述多个待处理任务进行排序;
分配模块203,用于将所述多个待处理任务按照排序后的顺序分配给所述分布式计算系统的多个计算设备,得到所述多个计算设备的任务分配表;
第一计算模块204,用于根据所述任务分配表计算每个计算设备的已分配任务的属性值之和,计算最大的属性值之和与最小的属性值之和的第一差值M(n),n为循环变量,初始值为1;
第二计算模块205,用于将具有所述最大的属性值之和的计算设备作为第一计算设备,将具有所述最小的属性值之和的计算设备作为第二计算设备,计算所述第一计算设备的每个已分配任务的属性值与所述第二计算设备的每个已分配任务的属性值的第二差值
Figure BDA0002160809400000203
是所述第一计算设备的第i个已分配任务的属性值与所述第二计算设备的第j个已分配任务的属性值的第二差值;
第一确定模块206,用于根据所述第一差值M(n)与所述第二差值
Figure BDA0002160809400000201
确定所述第一计算设备的第一待交换任务和所述第二计算设备的第二待交换任务;
交换模块207,用于在所述任务分配表中交换所述第一待交换任务与所述第二待交换任务;
判断模块208,用于判断所述第一差值M(n)是否满足预设条件,若所述第一差值M(n)不满足预设条件,则n=n+1;
第二确定模块209,用于若所述第一差值M(n)满足预设条件,则将取得第一差值M(n -1)的任务分配表作为最终的分配结果;
下发模块210,用于根据所述任务分配表将所述待处理任务下发给所述多个计算设备,使得所述多个计算设备对分配的待处理任务进行处理。
实施例四
图3为本发明实施例四提供的计算机装置的示意图。所述计算机装置30包括存储器301、处理器302以及存储在所述存储器301中并可在所述处理器302上运行的计算机程序303,例如分布式计算系统任务分配程序。所述处理器302执行所述计算机程序303时实现上述分布式计算系统任务分配方法实施例中的步骤,例如图1所示的步骤101-110:
101,获取分布式计算系统的多个待处理任务;
102,根据所述多个待处理任务的属性值对所述多个待处理任务进行排序;
103,将所述多个待处理任务按照排序后的顺序分配给所述分布式计算系统的多个计算设备,得到所述多个计算设备的任务分配表;
104,根据所述任务分配表计算每个计算设备的已分配任务的属性值之和,计算最大的属性值之和与最小的属性值之和的第一差值M(n),n为循环变量,初始值为1;
105,将具有所述最大的属性值之和的计算设备作为第一计算设备,将具有所述最小的属性值之和的计算设备作为第二计算设备,计算所述第一计算设备的每个已分配任务的属性值与所述第二计算设备的每个已分配任务的属性值的第二差值
Figure BDA0002160809400000212
是所述第一计算设备的第i个已分配任务的属性值与所述第二计算设备的第j个已分配任务的属性值的第二差值;
106,根据所述第一差值M(n)与所述第二差值
Figure BDA0002160809400000213
确定所述第一计算设备的第一待交换任务和所述第二计算设备的第二待交换任务;
107,在所述任务分配表中交换所述第一待交换任务与所述第二待交换任务;
108,判断所述第一差值M(n)是否满足预设条件,若所述第一差值M(n)不满足预设条件,则n=n+1,返回104;
109,若所述第一差值M(n)满足预设条件,则将取得第一差值M(n-1)的任务分配表作为最终的分配结果;
110,根据所述任务分配表将所述待处理任务下发给所述多个计算设备,使得所述多个计算设备对分配的待处理任务进行处理。
或者,该计算机程序被处理器执行时实现上述装置实施例中各模块的功能,例如图2中的模块201-210:
获取模块201,用于获取分布式计算系统的多个待处理任务;
排序模块202,用于根据所述多个待处理任务的属性值对所述多个待处理任务进行排序;
分配模块203,用于将所述多个待处理任务按照排序后的顺序分配给所述分布式计算系统的多个计算设备,得到所述多个计算设备的任务分配表;
第一计算模块204,用于根据所述任务分配表计算每个计算设备的已分配任务的属性值之和,计算最大的属性值之和与最小的属性值之和的第一差值M(n),n为循环变量,初始值为1;
第二计算模块205,用于将具有所述最大的属性值之和的计算设备作为第一计算设备,将具有所述最小的属性值之和的计算设备作为第二计算设备,计算所述第一计算设备的每个已分配任务的属性值与所述第二计算设备的每个已分配任务的属性值的第二差值
Figure BDA0002160809400000221
Figure BDA0002160809400000222
是所述第一计算设备的第i个已分配任务的属性值与所述第二计算设备的第j个已分配任务的属性值的第二差值;
第一确定模块206,用于根据所述第一差值M(n)与所述第二差值
Figure BDA0002160809400000223
确定所述第一计算设备的第一待交换任务和所述第二计算设备的第二待交换任务;
交换模块207,用于在所述任务分配表中交换所述第一待交换任务与所述第二待交换任务;
判断模块208,用于判断所述第一差值M(n)是否满足预设条件,若所述第一差值M(n)不满足预设条件,则n=n+1;
第二确定模块209,用于若所述第一差值M(n)满足预设条件,则将取得第一差值M(n -1)的任务分配表作为最终的分配结果;
下发模块210,用于根据所述任务分配表将所述待处理任务下发给所述多个计算设备,使得所述多个计算设备对分配的待处理任务进行处理。
示例性的,所述计算机程序303可以被分割成一个或多个模块,所述一个或者多个模块被存储在所述存储器301中,并由所述处理器302执行,以完成本方法。所述一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序303在所述计算机装置30中的执行过程。例如,所述计算机程序303可以被分割成图2中的获取模块201、排序模块202、分配模块203、第一计算模块204、第二计算模块205、第一确定模块206、交换模块207、判断模块208、第二确定模块209、下发模块210,各模块具体功能参见实施例二。
所述计算机装置30可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。本领域技术人员可以理解,所述示意图3仅仅是计算机装置30的示例,并不构成对计算机装置30的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述计算机装置30还可以包括输入输出设备、网络接入设备、总线等。
所称处理器302可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器302也可以是任何常规的处理器等,所述处理器302是所述计算机装置30的控制中心,利用各种接口和线路连接整个计算机装置30的各个部分。
所述存储器301可用于存储所述计算机程序303,所述处理器302通过运行或执行存储在所述存储器301内的计算机程序或模块,以及调用存储在存储器301内的数据,实现所述计算机装置30的各种功能。所述存储器301可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据计算机装置30的使用所创建的数据(比如音频数据)等。此外,存储器301可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
所述计算机装置30集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
上述以软件功能模块的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附关联图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他模块或步骤,单数不排除复数。系统权利要求中陈述的多个模块或装置也可以由一个模块或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。

Claims (10)

1.一种分布式计算系统任务分配方法,其特征在于,所述方法包括:
获取分布式计算系统的多个待处理任务;
根据所述多个待处理任务的属性值对所述多个待处理任务进行排序;
将所述多个待处理任务按照排序后的顺序分配给所述分布式计算系统的多个计算设备,得到所述多个计算设备的任务分配表;
根据所述任务分配表计算每个计算设备的已分配任务的属性值之和,计算最大的属性值之和与最小的属性值之和的第一差值M(n),其中n为循环变量,初始值为1;
将具有所述最大的属性值之和的计算设备作为第一计算设备,将具有所述最小的属性值之和的计算设备作为第二计算设备,计算所述第一计算设备的每个已分配任务的属性值与所述第二计算设备的每个已分配任务的属性值的第二差值
Figure FDA0002160809390000011
Figure FDA0002160809390000012
是所述第一计算设备的第i个已分配任务的属性值与所述第二计算设备的第j个已分配任务的属性值的第二差值;
根据所述第一差值M(n)与所述第二差值
Figure FDA0002160809390000013
确定所述第一计算设备的第一待交换任务和所述第二计算设备的第二待交换任务;
在所述任务分配表中交换所述第一待交换任务与所述第二待交换任务;
判断所述第一差值M(n)是否满足预设条件,若所述第一差值M(n)不满足预设条件,则n=n+1,返回所述根据所述任务分配表计算每个计算设备的已分配任务的属性值之和,计算最大的属性值之和与最小的属性值之和的第一差值M(n)的步骤;
若所述第一差值M(n)满足预设条件,则将取得第一差值M(n-1)的任务分配表作为最终的分配结果;
根据所述任务分配表将所述待处理任务下发给所述多个计算设备,使得所述多个计算设备对分配的待处理任务进行处理。
2.如权利要求1所述的方法,其特征在于,所述待处理任务为音频修正任务,所述属性值为音频修正计算量,所述音频修正计算量包括语音特征提取计算量、语音识别计算量、模板匹配计算量、变声计算量。
3.如权利要求1所述的方法,其特征在于,在所述将所述多个待处理任务按照排序后的顺序分配给所述分布式计算系统中的多个计算设备之前,所述方法还包括:
判断所述多个待处理任务的数量是否为所述多个计算设备的数量的整数倍;
若所述多个待处理任务的数量不是所述多个计算设备的数量的整数倍,则从排序后的所述多个待处理任务中选取数量为所述多个计算设备的数量的整数倍的待处理任务进行分配。
4.如权利要求1所述的方法,其特征在于,所述根据所述第一差值M(n)与所述第二差值
Figure FDA0002160809390000021
确定所述第一计算设备的第一待交换任务和所述第二计算设备的第二待交换任务包括:
计算由所述第一差值M(n)与所述第二差值
Figure FDA0002160809390000022
确定的第三差值
Figure FDA0002160809390000023
Figure FDA0002160809390000024
从所有
Figure FDA0002160809390000025
中确定大于0的最小值
Figure FDA0002160809390000026
将所述第一计算设备的第a个已分配任务作为所述第一计算设备的第一待交换任务,将所述第二计算设备的第b个已分配任务作为所述第二计算设备的第二待交换任务。
5.如权利要求1所述的方法,其特征在于,所述第一差值M(n)满足预设条件包括:
n≥2且M(n)>M(n-1);或者
M(n)小于或等于预设阈值。
6.如权利要求1-5中任一项所述的方法,其特征在于,所述方法还包括:
采集所述多个计算设备的任务负载情况;
根据所述多个计算设备的任务负载情况判断所述多个计算设备当前的任务负载是否均衡;
若所述多个计算设备当前的任务负载均衡,则执行所述根据所述任务分配表将所述待处理任务下发给所述多个计算设备。
7.如权利要求1-5中任一项所述的方法,其特征在于,所述方法还包括:
接收所述多个计算设备对所述分配的待处理任务的处理结果;
将所述多个计算设备对所述分配的待处理任务的处理结果合成为整体处理结果。
8.一种分布式计算系统任务分配装置,其特征在于,所述装置包括:
获取模块,用于获取分布式计算系统的多个待处理任务;
排序模块,用于根据所述多个待处理任务的属性值对所述多个待处理任务进行排序;
分配模块,用于将所述多个待处理任务按照排序后的顺序分配给所述分布式计算系统的多个计算设备,得到所述多个计算设备的任务分配表;
第一计算模块,用于根据所述任务分配表计算每个计算设备的已分配任务的属性值之和,计算最大的属性值之和与最小的属性值之和的第一差值M(n),其中n为循环变量,初始值为1;
第二计算模块,用于将具有所述最大的属性值之和的计算设备作为第一计算设备,将具有所述最小的属性值之和的计算设备作为第二计算设备,计算所述第一计算设备的每个已分配任务的属性值与所述第二计算设备的每个已分配任务的属性值的第二差值
Figure FDA0002160809390000031
Figure FDA0002160809390000032
是所述第一计算设备的第i个已分配任务的属性值与所述第二计算设备的第j个已分配任务的属性值的第二差值;
第一确定模块,用于根据所述第一差值M(n)与所述第二差值确定所述第一计算设备的第一待交换任务和所述第二计算设备的第二待交换任务;
交换模块,用于在所述任务分配表中交换所述第一待交换任务与所述第二待交换任务;
判断模块,用于判断所述第一差值M(n)是否满足预设条件,若所述第一差值M(n)不满足预设条件,则n=n+1;
第二确定模块,用于若所述第一差值M(n)满足预设条件,则将取得第一差值M(n-1)的任务分配表作为最终的分配结果;
下发模块,用于根据所述任务分配表将所述待处理任务下发给所述多个计算设备,使得所述多个计算设备对分配的待处理任务进行处理。
9.一种计算机装置,其特征在于:所述计算机装置包括处理器,所述处理器用于执行存储器中存储的计算机程序以实现如权利要求1-7中任一项所述分布式计算系统任务分配方法。
10.一种计算机存储介质,所述计算机存储介质上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现如权利要求1-7中任一项所述分布式计算系统任务分配方法。
CN201910731711.9A 2019-08-08 2019-08-08 分布式计算系统任务分配方法及相关设备 Active CN110688204B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201910731711.9A CN110688204B (zh) 2019-08-08 2019-08-08 分布式计算系统任务分配方法及相关设备
PCT/CN2019/117418 WO2021022706A1 (zh) 2019-08-08 2019-11-12 分布式计算系统任务分配方法及相关设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910731711.9A CN110688204B (zh) 2019-08-08 2019-08-08 分布式计算系统任务分配方法及相关设备

Publications (2)

Publication Number Publication Date
CN110688204A true CN110688204A (zh) 2020-01-14
CN110688204B CN110688204B (zh) 2022-08-26

Family

ID=69108189

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910731711.9A Active CN110688204B (zh) 2019-08-08 2019-08-08 分布式计算系统任务分配方法及相关设备

Country Status (2)

Country Link
CN (1) CN110688204B (zh)
WO (1) WO2021022706A1 (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04177457A (ja) * 1990-11-08 1992-06-24 Nec Corp 多資源システムスケジューリング方式
CN104331321A (zh) * 2014-10-09 2015-02-04 冷明 基于禁忌搜索和负载均衡的云计算任务调度方法
US20150160965A1 (en) * 2013-12-05 2015-06-11 International Business Machines Corporation Constructing A Logical Tree Topology In A Parallel Computer
US20150215394A1 (en) * 2012-08-10 2015-07-30 Hitachi, Ltd. Load distribution method taking into account each node in multi-level hierarchy
CN105159762A (zh) * 2015-08-03 2015-12-16 冷明 基于贪心策略的启发式云计算任务调度方法
CN107329815A (zh) * 2017-06-26 2017-11-07 浙江工业大学 一种基于BP‑Tabu搜索的云任务负载均衡调度方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105975334A (zh) * 2016-04-25 2016-09-28 深圳市永兴元科技有限公司 任务分布式调度方法及系统
US11625738B2 (en) * 2016-08-28 2023-04-11 Vmware, Inc. Methods and systems that generated resource-provision bids in an automated resource-exchange system
CN107958349B (zh) * 2017-12-19 2021-03-30 金蝶软件(中国)有限公司 任务分配方法、装置、计算机设备和存储介质
CN109684080A (zh) * 2018-12-10 2019-04-26 平安科技(深圳)有限公司 集中式任务调度方法、系统及存储介质
CN109710407A (zh) * 2018-12-21 2019-05-03 浪潮电子信息产业股份有限公司 分布式系统实时任务调度方法、装置、设备及存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04177457A (ja) * 1990-11-08 1992-06-24 Nec Corp 多資源システムスケジューリング方式
US20150215394A1 (en) * 2012-08-10 2015-07-30 Hitachi, Ltd. Load distribution method taking into account each node in multi-level hierarchy
US20150160965A1 (en) * 2013-12-05 2015-06-11 International Business Machines Corporation Constructing A Logical Tree Topology In A Parallel Computer
CN104331321A (zh) * 2014-10-09 2015-02-04 冷明 基于禁忌搜索和负载均衡的云计算任务调度方法
CN105159762A (zh) * 2015-08-03 2015-12-16 冷明 基于贪心策略的启发式云计算任务调度方法
CN107329815A (zh) * 2017-06-26 2017-11-07 浙江工业大学 一种基于BP‑Tabu搜索的云任务负载均衡调度方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
徐洪智 等: "基于QoS的任务分类调度算法", 《计算机应用》 *

Also Published As

Publication number Publication date
WO2021022706A1 (zh) 2021-02-11
CN110688204B (zh) 2022-08-26

Similar Documents

Publication Publication Date Title
CN109634801B (zh) 数据趋势分析方法、系统、计算机装置及可读存储介质
CN103853618A (zh) 基于截止日期驱动的云系统代价最小化资源分配方法
CN112148468A (zh) 一种资源调度方法、装置、电子设备及存储介质
CN111782359A (zh) 分布式计算系统任务分配方法及相关设备
CN111984414B (zh) 一种数据处理的方法、系统、设备及可读存储介质
CN106339802A (zh) 任务分配的方法和装置、电子设备
CN110969172A (zh) 一种文本的分类方法以及相关设备
CN111476225A (zh) 基于人工智能的车内人脸识别方法、装置、设备及介质
CN112214515A (zh) 数据自动匹配方法、装置、电子设备及存储介质
CN109544347B (zh) 尾差分配方法、计算机可读存储介质及尾差分配系统
CN111813517A (zh) 任务队列的分配方法、装置、计算机设备及介质
CN113672375A (zh) 资源分配预测方法、装置、设备及存储介质
CN110688204B (zh) 分布式计算系统任务分配方法及相关设备
CN115035017A (zh) 细胞密度分群方法、装置、电子设备及存储介质
CN109583579A (zh) 计算装置及相关产品
CN112860850A (zh) 人机交互方法、装置、设备及存储介质
CN111679959A (zh) 计算机性能数据确定方法、装置、计算机设备及存储介质
CN111400440A (zh) 一种意图识别的方法及装置
CN113434273B (zh) 数据处理方法、装置、系统及存储介质
CN111915115A (zh) 执行策略设置方法和装置
CN114331198A (zh) 工单分配方法、设备及存储介质
CN113327144A (zh) 一种用于并发生成电子发票ofd版式文件的方法和系统
CN112329715A (zh) 一种人脸识别方法、装置、设备及存储介质
CN112308440A (zh) 工单处理方法、装置、计算机设备及计算机可读存储介质
CN111857991A (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
GR01 Patent grant
GR01 Patent grant