CN106354552A - 并行计算任务分配方法和装置 - Google Patents

并行计算任务分配方法和装置 Download PDF

Info

Publication number
CN106354552A
CN106354552A CN201510419975.2A CN201510419975A CN106354552A CN 106354552 A CN106354552 A CN 106354552A CN 201510419975 A CN201510419975 A CN 201510419975A CN 106354552 A CN106354552 A CN 106354552A
Authority
CN
China
Prior art keywords
task
thread
assigned
item
sequence
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
CN201510419975.2A
Other languages
English (en)
Other versions
CN106354552B (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.)
Ningbo Sumscope Rongxun Technology Co Ltd
Original Assignee
Ningbo Sumscope Rongxun Technology 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 Ningbo Sumscope Rongxun Technology Co Ltd filed Critical Ningbo Sumscope Rongxun Technology Co Ltd
Priority to CN201510419975.2A priority Critical patent/CN106354552B/zh
Publication of CN106354552A publication Critical patent/CN106354552A/zh
Application granted granted Critical
Publication of CN106354552B publication Critical patent/CN106354552B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Multi Processors (AREA)

Abstract

本发明公开了一种并行计算任务分配方法和装置,包括:步骤A:将N项任务按照计算其所需的执行时间由大到小的顺序进行排序得到任务序列;步骤B:将任务序列的前M项任务依序分配到线程1至线程M;步骤C:从线程M到线程1分配任务,将任务序列的第M+1项任务分配到线程M,如果线程M的当前执行时间≤线程M-1的执行时间,则将第M+2项任务分配到线程M,否则将第M+2项任务分配到线程M-1;继续分配任务序列中剩余的任务,直到线程1再次被分配到任务或者任务被分配完毕;步骤D:如果任务没有被分配完,则按照步骤C的分配原则将剩余的任务依序分配到线程1至线程M;步骤E:重复执行步骤C和步骤D,直到全部任务被分配完毕。

Description

并行计算任务分配方法和装置
技术领域
本发明涉及一种并行计算任务分配方法和装置。
背景技术
与传统的多线程串行计算相比,多线程并行计算能够更加高效的处理给定的多个任务或工作。
例如,给定9个工作(j1-j9)以及3个线程,这9个工作所用时间如表1所示:
表1
j1 1000
j2 10
j3 4
j4 999
j5 8
j6 6
j7 998
j8 2
j9 1
如果按照串行式分配,将全部9个工作分配至一个线程处理,如表2和表3所示,将全部9个工作分配至线程1处理,则总消耗时间为3028。
表2
线程1 j1 j2 j3 j4 j5 j6 j7 j8 j9
线程2
线程3
表3
线程1 1000 10 4 999 8 6 998 2 1
线程2
线程3
如果按照并行式分配,将全部9个工作由3个线程并行分配处理,如表4和表3所示,则总消耗时间为2997。
表4
线程1 j1 j4 j7
线程2 j2 j5 j8
线程3 j3 j6 j9
表5
线程1 1000 999 998
线程2 10 8 2
线程3 4 6 1
通过上述比较可知,虽然现有技术的并行式分配能够节省计算时间,但是,节省的时间有限,并不能够大幅度节省时间,不能够满足用户需求。
发明内容
本发明的主要目的在于提供一种并行计算任务分配方法和装置,以解决现有技术存在的上述问题。
为解决上述问题,根据本发明实施例提供了一种并行计算任务分配方法,用于将N项任务分配给M个线程,其中N>M,所述方法包括:
步骤(A):将N项任务按照计算其所需的执行时间由大到小的顺序进行排序得到任务序列;
步骤(B):将任务序列的前M项任务依序分配到线程1至线程M;
步骤(C):从线程M到线程1分配任务,将任务序列的第M+1项任务分配到线程M,如果线程M的当前执行时间小于或等于线程M-1的执行时间,则将第M+2项任务分配到线程M,否则将第M+2项任务分配到线程M-1;按照上述分配原则依序分配任务序列中剩余的任务,直到线程1再次被分配到任务或者任务被分配完毕;
步骤(D):如果任务没有被分配完,则按照步骤(C)的分配原则将任务序列中剩余的任务依序分配到线程1至线程M;
步骤(E):重复执行步骤(C)和步骤(D),直到任务序列中的全部任务被分配完毕。
其中,所述任务序列包括:
(j1,t1)、(j2,t2)、...、(jN,tN);
其中,j1、j2、...、jN为任务,t1、t2、...、tN为计算相对应的任务所需的执行时间,且t1≥t2≥...≥tN。
其中,所述将任务序列的前M项任务依序分配到线程1至线程M,包括:
将任务j1分配到线程1、将任务j2分配到线程2、...、将任务jM分配到线程M;
对于执行前M项任务,各个线程所花费的执行时间分别为:T1=t1、T2=t2、...、TM=tM。
其中,所述将任务序列的第M+1项任务分配到线程M,如果线程M的当前执行时间小于或等于线程M-1的执行时间,则将第M+2项任务分配到线程M,否则将第M+2项任务分配到线程M-1,包括:
将任务j(M+1)分配给线程M,线程M的当前执行时间为:TM=tM+t(M+1);
如果TM≤T(M-1),则将任务j(M+2)也分配到线程M执行;如果TM>T(M-1),则将任务j(M+2)分配到线程M-1。
根据本发明实施例还提供一种并行计算任务分配装置,用于将N项任务分配给M个线程,其中N>M,所述装置包括:
排序模块,用于将N项任务按照计算其所需的执行时间由大到小的顺序进行排序得到任务序列;
第一分配模块,用于将任务序列的前M项任务依序分配到线程1至线程M;
第二分配模块,用于从线程M到线程1分配任务,将任务序列的第M+1项任务分配到线程M,如果线程M的当前执行时间小于或等于线程M-1的执行时间,则将第M+2项任务分配到线程M,否则将第M+2项任务分配到线程M-1;按照上述分配原则依序分配任务序列中剩余的任务,直到线程1再次被分配到任务或者任务被分配完毕;
第三分配模块,用于如果任务没有被分配完,则按照第二分配模块使用的分配原则将任务序列中剩余的任务依序分配到线程1至线程M;
重复执行第二分配模块和第三分配模块,直到任务序列中的全部任务被分配完毕。
其中,所述任务序列包括:
(j1,t1)、(j2,t2)、...、(jN,tN);
其中,j1、j2、...、jN为任务,t1、t2、...、tN为计算相对应的任务所需的执行时间,且t1≥t2≥...≥tN。
其中,所述第一分配模块还用于,将任务j1分配到线程1、将任务j2分配到线程2、...、将任务jM分配到线程M;对于执行前M项任务,各个线程所花费的执行时间分别为:T1=t1、T2=t2、...、TM=tM。
其中,所述第二分配模块还用于,将任务j(M+1)分配给线程M,线程M的当前执行时间为:TM=tM+t(M+1);如果TM≤T(M-1),则将任务j(M+2)也分配到线程M执行;如果TM>T(M-1),则将任务j(M+2)分配到线程M-1。
与现有技术相比,根据本发明的技术方案,通过按照任务的执行时间对任务进行多线程并行分配计算,能够明显缩短线程的计算执行时间,显著提高了线程的计算效率。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是本发明一个实施例的并行计算任务分配方法的流程图;
图2是本发明另一实施例的并行计算任务分配方法的流程图;
图3是本发明实施例的并行计算任务分配装置的结构框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
根据本发明的实施例,提供了一种并行计算任务分配方法。一般情况下,任务的数量大于执行线程的数量,例如将N项任务分配给M个线程,且N>M。
图1是本发明一个实施例的并行计算任务分配方法的流程图,如图1所述,该方法包括:
步骤S102,将N项任务按照计算其所需的执行时间由大到小的顺序进行排序得到任务序列;
所述任务序列为:(j1,t1)、(j2,t2)、...、(jN,tN);
其中,j1、j2、...、jN为任务,t1、t2、...、tN为计算相对应的任务所需的执行时间,且t1≥t2≥...≥tN。
步骤S104,将任务序列的前M项任务依序分配到线程1至线程M;
将任务j1分配到线程1、将任务j2分配到线程2、...、将任务jM分配到线程M;
对于执行前M项任务,各个线程所花费的执行时间分别为:T1=t1、T2=t2、...、TM=tM。
步骤S106,从线程M到线程1分配任务,将任务序列的第M+1项任务分配到线程M,如果线程M的当前执行时间小于或等于线程M-1的执行时间,则将第M+2项任务分配到线程M,否则将第M+2项任务分配到线程M-1;按照上述分配原则依序分配任务序列中剩余的任务,直到线程1再次被分配到任务或者任务被分配完毕;
将任务j(M+1)分配给线程M,线程M的当前执行时间为:TM=tM+t(M+1);如果TM≤T(M-1),则将任务j(M+2)也分配到线程M执行;如果TM>T(M-1),则将任务j(M+2)分配到线程M-1。
步骤S108,如果任务没有被分配完,则按照步骤S106的分配原则将任务序列中剩余的任务依序分配到线程1至线程M;
步骤S110,重复执行步骤S106和步骤S108,直到任务序列中的全部任务被分配完毕。
下面结合图2详细描述本发明实施例。图2是本发明另一实施例的并行计算任务分配方法的流程图,如图2所述,该方法包括:
步骤S202,将N项任务按照计算其所需的执行时间由大到小的顺序进行排序得到任务序列:;
步骤S204,将任务序列的前M项任务依序分配到线程1至线程M;
具体地,将任务j1分配到线程1、将任务j2分配到线程2、...、将任务jM分配到线程M;对于执行前M项任务,各个线程所花费的执行时间分别为:T1=t1、T2=t2、...、TM=tM。
步骤S206,从线程M到线程1进行分配;
将任务j(M+1)分配到线程M,此时线程M执行任务jM和j(M+1),也就是说,线程M的当前执行时间包括执行任务jM的执行时间和执行任务j(M+1)的执行时间,即TM=tM+t(M+1)。
步骤S208,判断TM≤T(M-1)?如果是则执行步骤S210,否则执行步骤S212。
步骤S210,将任务j(M+2)分配到线程M执行。
步骤S212,将任务j(M+2)分配到线程M-1。
步骤S214,按照上述的分配原则依序继续分配任务序列中剩余的任务,直到线程1被再次分配到任务执行步骤S216。
步骤S216,按照上述的分配原则依序继续分配任务序列中剩余的任务,从线程1到线程M进行分配。
步骤S218,jN被分配完后,表示任务被分配完毕,流程结束。
下面结合具体实例描述本发明实施例。参考表6和表7,按照表1中给定的数据,根据本发明提供的新的分配方法,总消耗时间为1010。与现有技术相比,提速3倍。
表6
线程1 j1 j6 j3
线程2 j4 j5 j8
线程3 j7 j2 j9
表7
线程1 1000 6 4
线程2 999 8 2
线程3 998 10 1
根据本发明的实施例,还提供了一种并行计算任务分配装置。如图3所述,所述装置包括:
排序模块310,用于将N项任务按照计算其所需的执行时间由大到小的顺序进行排序得到任务序列;
所述任务序列包括:(j1,t1)、(j2,t2)、...、(jN,tN);
其中,j1、j2、...、jN为任务,t1、t2、...、tN为计算相对应的任务所需的执行时间,且t1≥t2≥...≥tN。
第一分配模块320,用于将任务序列的前M项任务依序分配到线程1至线程M;进一步地,所述第一分配模块320将任务j1分配到线程1、将任务j2分配到线程2、...、将任务jM分配到线程M;对于执行前M项任务,各个线程所花费的执行时间分别为:T1=t1、T2=t2、...、TM=tM。
第二分配模块330,用于从线程M到线程1分配任务,将任务序列的第M+1项任务分配到线程M,如果线程M的当前执行时间小于或等于线程M-1的执行时间,则将第M+2项任务分配到线程M,否则将第M+2项任务分配到线程M-1;按照上述分配原则依序分配任务序列中剩余的任务,直到线程1再次被分配到任务或者任务被分配完毕;进一步地,所述第二分配模块330将任务j(M+1)分配给线程M,线程M的当前执行时间为:TM=tM+t(M+1);如果TM≤T(M-1),则将任务j(M+2)也分配到线程M执行;如果TM>T(M-1),则将任务j(M+2)分配到线程M-1。
第三分配模块340,用于如果任务没有被分配完,则按照第二分配模块使用的分配原则将任务序列中剩余的任务依序分配到线程1至线程M;
重复执行第二分配模块330和第三分配模块340,直到任务序列中的全部任务被分配完毕。
本发明的方法的操作步骤与装置的结构特征对应,可以相互参照,不再一一赘述。
综上所述,根据本发明的技术方案,通过按照任务的执行时间对任务进行多线程并行分配计算,能够明显缩短线程的计算执行时间,显著提高了线程的计算效率。
以上所述仅为本发明的实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。

Claims (8)

1.一种并行计算任务分配方法,用于将N项任务分配给M个线程,其中N>M,其特征在于,所述方法包括:
步骤(A):将N项任务按照计算其所需的执行时间由大到小的顺序进行排序得到任务序列;
步骤(B):将任务序列的前M项任务依序分配到线程1至线程M;
步骤(C):从线程M到线程1分配任务,将任务序列的第M+1项任务分配到线程M,如果线程M的当前执行时间小于或等于线程M-1的执行时间,则将第M+2项任务分配到线程M,否则将第M+2项任务分配到线程M-1;按照上述分配原则依序分配任务序列中剩余的任务,直到线程1再次被分配到任务或者任务被分配完毕;
步骤(D):如果任务没有被分配完,则按照步骤(C)的分配原则将任务序列中剩余的任务依序分配到线程1至线程M;
步骤(E):重复执行步骤(C)和步骤(D),直到任务序列中的全部任务被分配完毕。
2.根据权利要求1所述的方法,其特征在于,所述任务序列包括:
(j1,t1)、(j2,t2)、...、(jN,tN);
其中,j1、j2、...、jN为任务,t1、t2、...、tN为计算相对应的任务所需的执行时间,且t1≥t2≥...≥tN。
3.根据权利要求2所述的方法,其特征在于,所述将任务序列的前M项任务依序分配到线程1至线程M,包括:
将任务j1分配到线程1、将任务j2分配到线程2、...、将任务jM分配到线程M;
对于执行前M项任务,各个线程所花费的执行时间分别为:T1=t1、T2=t2、...、TM=tM。
4.根据权利要求3所述的方法,其特征在于,所述将任务序列的第M+1项任务分配到线程M,如果线程M的当前执行时间小于或等于线程M-1的执行时间,则将第M+2项任务分配到线程M,否则将第M+2项任务分配到线程M-1,包括:
将任务j(M+1)分配给线程M,线程M的当前执行时间为:TM=tM+t(M+1);
如果TM≤T(M-1),则将任务j(M+2)也分配到线程M执行;如果TM>T(M-1),则将任务j(M+2)分配到线程M-1。
5.一种并行计算任务分配装置,用于将N项任务分配给M个线程,其中N>M,其特征在于,所述装置包括:
排序模块,用于将N项任务按照计算其所需的执行时间由大到小的顺序进行排序得到任务序列;
第一分配模块,用于将任务序列的前M项任务依序分配到线程1至线程M;
第二分配模块,用于从线程M到线程1分配任务,将任务序列的第M+1项任务分配到线程M,如果线程M的当前执行时间小于或等于线程M-1的执行时间,则将第M+2项任务分配到线程M,否则将第M+2项任务分配到线程M-1;按照上述分配原则依序分配任务序列中剩余的任务,直到线程1再次被分配到任务或者任务被分配完毕;
第三分配模块,用于如果任务没有被分配完,则按照第二分配模块使用的分配原则将任务序列中剩余的任务依序分配到线程1至线程M;
重复执行第二分配模块和第三分配模块,直到任务序列中的全部任务被分配完毕。
6.根据权利要求5所述的装置,其特征在于,所述任务序列包括:
(j1,t1)、(j2,t2)、...、(jN,tN);
其中,j1、j2、...、jN为任务,t1、t2、...、tN为计算相对应的任务所需的执行时间,且t1≥t2≥...≥tN。
7.根据权利要求6所述的装置,其特征在于,所述第一分配模块还用于,将任务j1分配到线程1、将任务j2分配到线程2、...、将任务jM分配到线程M;对于执行前M项任务,各个线程所花费的执行时间分别为:T1=t1、T2=t2、...、TM=tM。
8.根据权利要求7所述的装置,其特征在于,所述第二分配模块还用于,将任务j(M+1)分配给线程M,线程M的当前执行时间为:TM=tM+t(M+1);如果TM≤T(M-1),则将任务j(M+2)也分配到线程M执行;如果TM>T(M-1),则将任务j(M+2)分配到线程M-1。
CN201510419975.2A 2015-07-17 2015-07-17 并行计算任务分配方法和装置 Active CN106354552B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510419975.2A CN106354552B (zh) 2015-07-17 2015-07-17 并行计算任务分配方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510419975.2A CN106354552B (zh) 2015-07-17 2015-07-17 并行计算任务分配方法和装置

Publications (2)

Publication Number Publication Date
CN106354552A true CN106354552A (zh) 2017-01-25
CN106354552B CN106354552B (zh) 2019-08-06

Family

ID=57842217

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510419975.2A Active CN106354552B (zh) 2015-07-17 2015-07-17 并行计算任务分配方法和装置

Country Status (1)

Country Link
CN (1) CN106354552B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107704322A (zh) * 2017-09-30 2018-02-16 上海添锡信息技术有限公司 请求分配方法及装置
CN107958349A (zh) * 2017-12-19 2018-04-24 金蝶软件(中国)有限公司 任务分配方法、装置、计算机设备和存储介质
CN108132834A (zh) * 2017-12-08 2018-06-08 西安交通大学 多级共享高速缓冲存储器架构下的任务分配方法和系统
CN109947559A (zh) * 2019-02-03 2019-06-28 百度在线网络技术(北京)有限公司 优化MapReduce计算的方法、装置、设备和计算机存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6085215A (en) * 1993-03-26 2000-07-04 Cabletron Systems, Inc. Scheduling mechanism using predetermined limited execution time processing threads in a communication network
CN101719079A (zh) * 2009-12-17 2010-06-02 中国电力科学研究院 一种处理任务的方法及装置
CN103530742A (zh) * 2013-10-28 2014-01-22 金蝶软件(中国)有限公司 提高排程运算速度的方法及装置
CN103677751A (zh) * 2012-09-06 2014-03-26 阿里巴巴集团控股有限公司 任务并行处理方法和装置
CN103870327A (zh) * 2012-12-18 2014-06-18 华为技术有限公司 一种实时多任务调度方法和装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6085215A (en) * 1993-03-26 2000-07-04 Cabletron Systems, Inc. Scheduling mechanism using predetermined limited execution time processing threads in a communication network
CN101719079A (zh) * 2009-12-17 2010-06-02 中国电力科学研究院 一种处理任务的方法及装置
CN103677751A (zh) * 2012-09-06 2014-03-26 阿里巴巴集团控股有限公司 任务并行处理方法和装置
CN103870327A (zh) * 2012-12-18 2014-06-18 华为技术有限公司 一种实时多任务调度方法和装置
CN103530742A (zh) * 2013-10-28 2014-01-22 金蝶软件(中国)有限公司 提高排程运算速度的方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
王华君: "RING算法_基于环结构的并行调度算法的研究", 《福建电脑》 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107704322A (zh) * 2017-09-30 2018-02-16 上海添锡信息技术有限公司 请求分配方法及装置
CN107704322B (zh) * 2017-09-30 2020-08-25 上海大象金泰科技有限公司 请求分配方法及装置
CN108132834A (zh) * 2017-12-08 2018-06-08 西安交通大学 多级共享高速缓冲存储器架构下的任务分配方法和系统
CN108132834B (zh) * 2017-12-08 2020-08-18 西安交通大学 多级共享高速缓冲存储器架构下的任务分配方法和系统
CN107958349A (zh) * 2017-12-19 2018-04-24 金蝶软件(中国)有限公司 任务分配方法、装置、计算机设备和存储介质
CN107958349B (zh) * 2017-12-19 2021-03-30 金蝶软件(中国)有限公司 任务分配方法、装置、计算机设备和存储介质
CN109947559A (zh) * 2019-02-03 2019-06-28 百度在线网络技术(北京)有限公司 优化MapReduce计算的方法、装置、设备和计算机存储介质
CN109947559B (zh) * 2019-02-03 2021-11-23 百度在线网络技术(北京)有限公司 优化MapReduce计算的方法、装置、设备和计算机存储介质

Also Published As

Publication number Publication date
CN106354552B (zh) 2019-08-06

Similar Documents

Publication Publication Date Title
WO2016169286A1 (zh) 一种离散制造系统的车间布局方法
CN105320561B (zh) 任务管理方法和系统
WO2016173351A1 (zh) 一种数据处理方法及装置
CN106354552A (zh) 并行计算任务分配方法和装置
Chen et al. An escheduler-based data dependence analysis and task scheduling for parallel circuit simulation
CN103064745B (zh) 一种任务分配处理的方法及系统
Jin et al. Core maintenance in dynamic graphs: A parallel approach based on matching
CN102799467B (zh) 一种任务分配的方法及系统
CN110930091B (zh) 基于邻域搜索模拟退火算法的快递末端网点优化整合方法
US20150227586A1 (en) Methods and Systems for Dynamically Allocating Resources and Tasks Among Database Work Agents in an SMP Environment
CN103235742A (zh) 多核集群服务器上基于依赖度的并行任务分组调度方法
CN107656813A (zh) 一种负载调度的方法、装置及终端
CN106373030B (zh) 一种流域梯级水电站优化调度的方法
CN108762921A (zh) 一种Spark集群系统的在线优化分区的任务调度方法及装置
Huynh et al. An efficient approach for mining sequential patterns using multiple threads on very large databases
CN104462302A (zh) 一种分布式数据处理协调方法及系统
CN103677960A (zh) 一种能耗约束的虚拟机博弈重放置方法
CN107145216A (zh) 一种调度方法
CN102306205A (zh) 一种事务分配方法和装置
CN107967650A (zh) 一种核心银行系统的批量账务数据处理方法及装置
CN107704322A (zh) 请求分配方法及装置
CN107807854A (zh) 一种自动调度节点机的方法及渲染任务处理方法
CN106293947A (zh) 虚拟化云环境下gpu‑cpu混合资源分配系统和方法
CN105528253A (zh) 一种异构众核系统上的流水式通信并行方法
CN107370783A (zh) 一种云计算集群资源的调度方法及装置

Legal Events

Date Code Title Description
C06 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