CN111443999A - 数据并行处理方法、执行器、计算机设备和存储介质 - Google Patents
数据并行处理方法、执行器、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN111443999A CN111443999A CN202010097661.6A CN202010097661A CN111443999A CN 111443999 A CN111443999 A CN 111443999A CN 202010097661 A CN202010097661 A CN 202010097661A CN 111443999 A CN111443999 A CN 111443999A
- Authority
- CN
- China
- Prior art keywords
- data
- processed
- task instruction
- actuators
- distributed manager
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 21
- 238000012545 processing Methods 0.000 claims abstract description 67
- 238000013467 fragmentation Methods 0.000 claims abstract description 36
- 238000006062 fragmentation reaction Methods 0.000 claims abstract description 36
- 238000000034 method Methods 0.000 claims abstract description 28
- 238000004590 computer program Methods 0.000 claims description 13
- 238000012790 confirmation Methods 0.000 claims description 9
- 230000000903 blocking effect Effects 0.000 claims description 6
- 238000001514 detection method Methods 0.000 claims description 6
- 238000010586 diagram Methods 0.000 description 10
- 238000003491 array Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及并行计算领域,通过向分布式管理器发送数据集合的完成反馈信息,并检测分布式管理器记录的完成状态,实现多个执行器并行获取一致的数据,避免获取重复的数据,提高了效率。尤其涉及一种数据并行处理方法、执行器、计算机设备和存储介质,该数据并行处理方法包括:根据调度中心发送的任务指令获取待处理数据集合;若完成获取待处理数据集合,向分布式管理器发送完成反馈信息;若检测到分布式管理器记录的所有执行器的完成状态,根据预设的分片规则将待处理数据集合分为多个待处理数据组合;确定多个待处理数据组合中的一个为目标数据组合,将处理目标数据组合的处理结果输出至接收装置,接收装置根据处理结果确定任务指令的任务结果。
Description
技术领域
本申请涉及并行计算领域,尤其涉及一种数据并行处理方法、执行器、计算机设备和存储介质。
背景技术
分布式调度框架在互联网平台中存在广泛的应用,主要用于提高系统任务的执行效率,提高系统的容错能力。任务调度框架通常由调度中心和执行器两部分组合,其中调度中心负责任务的分发,将同一个任务分发到不同的执行器节点,而执行器节点则用于接收调度中心分发的任务,负责任务的执行和处理。
现有的分布式调度框架在进行任务分发时,不同执行器从数据库获取数据的时间节点存在较大差异,不同的执行器在获取待数据时数据库中数据的状态可能会不一致,从而导致获取到重复的待处理数据。
发明内容
本申请提供了一种数据并行处理方法、装置、计算机设备和存储介质,可以实现多个执行器并行获取一致的数据,避免获取重复的数据,有效地提高执行器的执行效率。
第一方面,本申请提供了一种数据并行处理方法,所述方法包括:
若接收到调度中心发送的任务指令,根据所述任务指令获取待处理数据集合,所述任务指令包括执行器总数;
若完成获取所述待处理数据集合,向分布式管理器发送完成反馈信息,以使所述分布式管理器记录所述执行器的完成状态;
检测所述分布式管理器是否记录所述任务指令对应的所有执行器的完成状态;
若检测到所述分布式管理器记录所述任务指令对应的所有执行器的完成状态,根据预设的分片规则将所述待处理数据集合分为多个待处理数据组合;
确定所述多个待处理数据组合中的一个为目标数据组合,处理所述目标数据组合,将处理结果输出至接收装置,以使所述接收装置根据所述任务指令对应的所有执行器的处理结果确定所述任务指令的任务结果。
第二方面,本申请还提供了一种数据并行处理执行器,所述执行器包括:
数据获取模块,用于若接收到调度中心发送的任务指令,根据所述任务指令获取待处理数据集合,所述任务指令包括执行器总数;
反馈信息发送模块,用于若完成获取所述待处理数据集合,向分布式管理器发送完成反馈信息,以使所述分布式管理器记录所述执行器的完成状态;
状态检测模块,用于检测所述分布式管理器是否记录所述任务指令对应的所有执行器的完成状态;
数据分片模块,用于若检测到所述分布式管理器记录所述任务指令对应的所有执行器的完成状态,根据预设的分片规则将所述待处理数据集合分为多个待处理数据组合;
数据处理模块,用于确定所述多个待处理数据组合中的一个为目标数据组合,处理所述目标数据组合,将处理结果输出至接收装置,以使所述接收装置根据所述任务指令对应的所有执行器的处理结果确定所述任务指令的任务结果。
第三方面,本申请还提供了一种计算机设备,所述计算机设备包括存储器和处理器;
所述存储器,用于存储计算机程序;
所述处理器,用于执行所述计算机程序并在执行所述计算机程序时实现如上述的数据并行处理方法。
第四方面,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时使所述处理器实现如上述的数据并行处理方法。
本申请公开了一种数据并行处理方法、执行器、计算机设备和存储介质,通过接收到调度中心发送的任务指令,可以根据任务指令获取待处理数据集合;在完成获取待处理数据集合时,向分布式管理器发送完成反馈信息,可以使分布式管理器记录执行器的完成状态;通过检测分布式管理器是否记录任务指令对应的所有执行器的完成状态,从而使多个执行器并行获取一致的数据,避免获取重复的数据;若检测到分布式管理器记录任务指令对应的所有执行器的完成状态,根据预设的分片规则将待处理数据集合分为多个待处理数据组合,可以使各执行器处理的数据分布平衡,有效地提高了执行器的执行效率;确定多个待处理数据组合中的一个为目标数据组合,处理目标数据组合,将处理结果输出至接收装置,可以使接收装置更快地接收并确定任务指令的任务结果。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请的实施例提供的一种数据并行处理方法的示意流程图;
图2是本申请的实施例提供的执行器发送完成反馈信息的场景示意图;
图3是本申请的实施例提供的分布式管理器发送确认信息的场景示意图;
图4是本申请的实施例提供的执行器发送查询指令的场景示意图;
图5是图1中待处理数据集合分片的子步骤示意框图;
图6为图1中确定目标数据的子步骤示意图;
图7是本申请的实施例提供的各执行器发送处理结果的场景示意图;
图8为本申请实施例提供的一种数据并行处理执行器的示意性框图;
图9为图8中数据并行处理执行器的子模块的示意性框图;
图10为本申请实施例提供的一种计算机设备的结构示意性框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
附图中所示的流程图仅是示例说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解、组合或部分合并,因此实际执行的顺序有可能根据实际情况改变。
应当理解,在此本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。如在本申请说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
本申请的实施例提供了一种数据并行处理方法、执行器、计算机设备和存储介质。其中,该数据并行处理方法可以应用于分布式调度系统中的执行器,可以实现多个执行器并行获取一致的数据,避免获取重复的数据,有效地提高了执行效率。
示例性的,所述执行器可以是服务器或终端。
其中,服务器可以为独立的服务器,也可以为服务器集群。所述终端可以是智能手机、平板电脑、笔记本电脑、台式电脑、个人数字助理和穿戴式设备等电子设备。
下面结合附图,对本申请的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
如图1所示,数据并行处理方法包括步骤S10至步骤S50。
步骤S10、若接收到调度中心发送的任务指令,根据所述任务指令获取待处理数据集合,所述任务指令包括执行器总数。
需要说明的是,在分布式调度系统中,所述调度中心负责任务的分发,将同一个任务分发到不同的执行器中。
示例性的,所述调度中心可以根据不同任务的工作量,判断完成该任务需要执行器的数量,然后所述调度中心可以将相应的任务分发到对应数量的执行器中。
其中,所述调度中心可以是服务器。
在一实施例中,所述调度中心判定任务1需要3个执行器才能完成,则所述调度中心向执行器A、执行器B、执行器C发送了任务1;执行器A、执行器B、执行器C均可以接收到所述调度中心发送的任务1对应的任务指令。
示例性的,所述任务指令包括该任务指令对应的执行器总数,例如,执行器A、执行器B、执行器C接收到的任务指令均包括“所述任务指令对应有三个执行器”的信息。
需要说明的是,在分布式调度系统中,所述执行器用于接收所述调度中心分发的任务,负责任务的执行和处理。
示例性的,所述执行器执行任务时,需要从所述分布式调度系统中的数据库获取任务相应的数据,然后进行数据处理。
在本实施例中,各执行器都从所述数据库获取所述任务指令对应的全量数据,即所述任务指令对应的待处理数据集合。
示例性的,执行器A、执行器B、执行器C均需要从所述数据库获取待处理数据集合{a,b,c,d,e,f,g,h,i},所述待处理数据集合中包括多个待处理数据,例如a,b,c,d,e,f,g,h,i。
通过接收到调度中心发送的任务指令,执行器可以获取到待处理数据集合,进而可以对待处理数据集合作进一步处理。
步骤S20、若完成获取所述待处理数据集合,向分布式管理器发送完成反馈信息,以使所述分布式管理器记录所述执行器的完成状态。
在本实施例中,如图2所示,各执行器根据所述任务指令获取待处理数据集合完成后,需要向所述分布式管理器发送完成反馈信息。
其中,所述分布式管理器可以是服务器或终端。
例如,执行器A获取完任务指令对应的全部待处理数据,如a,b,c,d,e,f,g,h,i后,也即获取待处理数据集合{a,b,c,d,e,f,g,h,i}完成之后,向所述分布式管理器发送完成反馈信息;同样的,其他执行器获取所述待处理数据集合完成后也向所述分布式管理器发送完成反馈信息。
具体地,所述执行器向所述分布式管理器发送完成反馈信息,以使所述分布式管理器根据接收的完成反馈信息的次数,对所述标识寄存器进行自增操作。
示例性的,若所述分布式管理器接收到执行器A的完成反馈信息,则记录执行器A的完成状态。
示例性的,所述分布式管理器包括标识寄存器。在接收到某执行器的完成反馈信息后,所述分布式管理器对所述标识寄存器进行自增操作。
其中,所述自增操作是指加1操作。
在一些实施例中,所述分布式管理器已经接收到了执行器A的完成反馈信息,则所述标识寄存器的标识值等于1;如果再接收到执行器C发送的完成反馈信息,则所述分布式管理器将所述标识寄存器的标识值加1,所述标识寄存器的标识值等于2。
通过向分布式管理器发送完成反馈信息,分布式管理器根据接收的完成反馈信息进行自增操作,可以记录执行器的完成状态,从而可以检测和判定所述任务指令对应的所有执行器的完成状态。
步骤S30、检测所述分布式管理器是否记录所述任务指令对应的所有执行器的完成状态。
示例性的,所述执行器检测所述分布式管理器是否记录所述任务指令对应的所有执行器的完成状态的方式,可以是所述分布式管理器主动向所述执行器发送确认信息,也可以是所述执行器向所述分布式管理器发送查询指令。
在一些实施方式中,如图3所示,所述分布式管理器主动向所述执行器发送确认信息。所述分布式管理器根据接收的完成反馈信息的次数,对所述标识寄存器进行自增操作。当所述标识寄存器的数值达到所述任务指令对应的执行器总数时,向各所述执行器发送用于表示所述分布式管理器记录所述任务指令对应的所有执行器的完成状态的确认信息。
示例性的,所述分布式管理器也可以从所述调度中心获取为该任务分配的执行器总数;若所述分布式管理器记录完成状态的执行器的总数等于分配的执行器总数时,向各执行器发送用于表示所述分布式管理器记录所述任务指令对应的所有执行器的完成状态的确认信息。
示例性的,若所述分布式管理器从所述调度中心获取为该任务分配的执行器总数为3,当所述标识寄存器中标识值等于3时,所述分布式管理器向执行器A、执行器B、执行器C发送确认信息。
具体地,若接收到所述分布式管理器在所述标识寄存器的数值达到所述任务指令对应的执行器总数时发送的确认信息,则所述执行器判定所述分布式管理器记录所述任务指令对应的所有执行器的完成状态。
在另一些实施方式中,如图4所示,所述执行器向所述分布式管理器发送查询指令,以获取所述标识寄存器中的数值。若所述标识寄存器中的数值等于所述任务指令对应的执行器总数,则所述执行器判定所述分布式管理器记录所述任务指令对应的所有执行器的完成状态。
示例性的,执行器C获取所述待处理数据集合完成,所述执行器C向所述分布式管理器发送完成反馈信息之后,向所述分布式管理器发送查询指令;所述分布式管理器响应该查询指令并返回所述标识寄存器中的数值,例如所述标识寄存器中的数值为2。所述执行器C根据调度中心为该任务分配的执行器总数3,可以判定所述分布式管理器未记录所述任务指令对应的所有执行器的完成状态。
具体地,若判定所述分布式管理器未记录所述任务指令对应的所有执行器的完成状态,则所述执行器阻塞处理所述待处理数据集合的进程。
在一些实施例中,如果所述执行器检测到所述分布式管理器未记录所述任务指令对应的所有执行器的完成状态,则表示有至少一个执行器还没有完成获取待处理数据集合,则堵塞已经完成获取所述待处理数据集合的执行器执行处理所述待处理数据集合的进程,以等待还没有完成获取所述待处理数据集合的执行器继续获取所述待处理数据。
在本实施例中,若现在之后的某一时刻,执行器A、执行器B、执行器C均向所述分布式管理器发送了完成反馈信息,则所述布式管理器响应该查询指令返回所述标识寄存器中的数值,例如所述标识寄存器中的数值为2。所述执行器根据调度中心为该任务分配的执行器总数3,可以判定所述分布式管理器未记录所述任务指令对应的所有执行器的完成状态。
示例性的,若执行器A和执行器B已完成获取所述待处理数据集合,执行器C未完成获取所述待处理数据集合,则执行器A和执行器B分别阻塞处理所述待处理数据集合的进程,等待执行器C完成获取所述待处理数据集合。
通过检测分布式管理器是否记录任务指令对应的所有执行器的完成状态,可以确保所有执行器并行获取一致的数据,避免获取重复的数据,提高了执行效率。
步骤S40、若检测到所述分布式管理器记录所述任务指令对应的所有执行器的完成状态,根据预设的分片规则将所述待处理数据集合分为多个待处理数据组合。
示例性的,若检测到所述分布式管理器记录所述任务指令对应的所有执行器的完成状态,例如所述执行器节点检测到所述标识寄存器的数值与执行器的总数相等时,则表示所有执行器都已经完成了待处理数据的获取,准备就绪,则放开当前的阻塞让各所述执行器的任务进入执行状态。
需要说明的是,数据库中的待处理数据对应于各自的状态标识,以标记待处理数据是否被处理。如果未采用阻塞策略,则某执行器处理完某待处理数据后,会引起数据库中该待处理数据被标记为已处理,即不是需要处理的状态;之后另一执行器可能还在从数据库获取待处理数据,因此不同的执行器在获取待处理数据时面对的数据库中待处理数据的状态是不一样的。
通过阻塞策略缩小各执行器获取数据的时间点差异,可以防止因各个执行器获取数据的时间节点存在较大差异,导致的因为数据库中数据状态变化而获取到重复的待处理数据。
请参阅图5,步骤S40中根据预设的分片规则将所述待处理数据集合分为多个待处理数据组合,包括以下步骤S41至步骤S43中的任意一个。
需要说明的是,所述执行器对获取的全部待处理数据集合进行数据分片,每个执行器处理归属自己部分的待处理数据,即各执行器处理应由其处理的待处理数据。
示例性的,所述执行器根据预设的分片规则将所述待处理数据集合分为多个待处理数据组合。
其中,所述预设的分片规则可以是根据组数序号分片、根据耗时估值分片或根据数据单元个数分片。
根据预设的分片规则对待处理数据集合进行分片,可以使各执行器处理的数据分布平衡,有效地提高执行效率。
步骤S41、根据所述执行器总数,将所述待处理数据集合中的待处理数据按照数据量分成多个待处理数据组合。
具体地,若所述预设的分片规则为根据组数序号分片,则各所述执行器根据所述任务指令对应的执行器总数,将所述待处理数据集合平均分配成多个待处理数据组合。
示例性的,若所述待处理数据集合中包括9个待处理数据,例如{a,b,c,d,e,f,g,h,i},并且所述任务指令对应的执行器总数为3,则各所述执行器根据相同的分片逻辑各自将这9个待处理数据分成3组。
示例性的,所述待处理数据集合中的各待处理数据对应有一个编号,如1-d;如果与该任务指令对应的执行器数量为n,则各待处理数据组合包括d/n个待处理数据。例如,第一个待处理数据组合中包括第1至第d/n个待处理数据,第二个待处理数据组合中包括第(d/n)+1至第2d/n个待处理数据,第i个待处理数据组合中包括第(i-1)×(d/n)+1至第i×d/n个待处理数据。
在一些实施例中,所述待处理数据集合中的各待处理数据对应的编号为1-9;如果与该任务指令对应的执行器数量为3,则各待处理数据组合包括3个待处理数据。例如,第一个待处理数据组合中包括第1至第3个待处理数据,第二个待处理数据组合中包括第4至第6个待处理数据,第三个待处理数据组合中包括第7至第9个待处理数据。
根据待处理数据集合中待处理数据的个数,将所有的待处理数据平均分配至多个待处理数据组合,这种分片规则适用于业务数据中单个数据的处理耗时差异不大以及附带的子数据集数量差异不大的场景。
步骤S42、根据所述执行器总数,将所述待处理数据集合中的待处理数据按照耗时估值分成多个待处理数据组合。
具体地,若所述预设的分片规则为根据耗时估值分片,则各所述执行器根据所述任务指令对应的执行器总数,将所述待处理数据分配成多个待处理数据组合,以使各所述待处理数据组合对应的耗时估值总和相同。
在本实施例中,各所述执行器存储有对各种待处理数据进行处理时花费的时长,或者各所述执行器可以从网络获取对各种待处理数据进行处理时花费的时长,即各待处理数据对应的耗时估值。
示例性的,各所述执行器将各待处理数据对应的耗时估值作为各待处理数据的权重。例如,待处理数据a,b,c,d,e,f,g,h,i对应的耗时估值分别3,3,1,2,2,3,1,1,2,则待处理数据a,b,c,d,e,f,g,h,i对应的权重分别为3,3,1,2,2,3,1,1,2。
具体地,各所述执行器将所述待处理数据集合中各待处理数据对应的耗时估值相加,得到所述待处理数据集合对应的耗时估值总和。例如所述待处理数据集合对应的耗时估值总和为∑dt,如18,则n个待处理数据组合对应的耗时估值总和应为∑dt/n。其中,dt为各待处理数据对应的耗时估值,任务指令对应的执行器数量为n。
在本实施例中,各所述执行器按照相同的分片策略将所有的待处理数据分配至多个待处理数据组合,以使各待处理数据组合对应的耗时估值总和大致相同。
示例性的,若任务指令对应的执行器数量为3,则各待处理数据对应的耗时估值为6。各所述执行器均将待处理数据a,c,d分入第一个待处理数据组合,将待处理数据b,e,g分入第二个待处理数据组合,将待处理数据f,h,i分入第三个待处理数据组合;三个待处理数据组合对应的耗时估值总和均为6。
根据待处理数据集合中各待处理数据对应的耗时估值,将所有的待处理数据分配至多个待处理数据组合,以使各待处理数据组合对应的耗时估值总和大致相同,这一分片策略适用于各待处理数据的处理耗时差异较大的场景。可以使得数据分片更加均匀,不同的执行器处理完待处理数据的时刻较为一致。
步骤S43、根据所述执行器总数,将所述待处理数据集合中的待处理数据按照数据单元个数分成多个待处理数据组合。
具体地,若所述预设的分片规则为根据数据单元个数分片,则各所述执行器根据所述任务指令对应的执行器总数,将所述待处理数据分配成多个待处理数据组合,以使各所述待处理数据组合对应的数据单元个数的总和相同。
示例性的,各待处理数据包括若干数据单元,如包括若干凭证;所述执行器处理待处理数据时,需要处理相应个数的数据单元,如将待处理数据中的若干凭证下发;在将凭证下发时需要占用网络资源。
示例性的,待处理数据a,b,c,d,e,f,g,h,i中分别包括数据单元的个数为3,3,1,2,2,3,1,1,2。
具体地,各所述执行器将所述待处理数据集合中各待处理数据对应的数据单元个数相加,得到所述待处理数据组合对应的数据单元个数的总和。例如所述待处理数据组合对应的数据单元个数的总和为∑dc,如18,则n个待处理数据组合对应的数据单元个数总和应为∑dc/n。其中,dc为各待处理数据对应的数据单元个数,任务指令对应的执行器数量为n。
在本实施例中,各所述执行器按照相同的分片策略将所有的待处理数据分配至多个待处理数据组合,以使各待处理数据组合对应的数据单元个数大致相同。
示例性的,若任务指令对应的执行器数量为3,则各待处理数据对应的数据单元个数为6。各所述执行器均将待处理数据a,c,d分入第一个待处理数据组合,将待处理数据b,e,g分入第二个待处理数据组合,将待处理数据f,h,i分入第三个待处理数据组合;三个待处理数据组合对应的数据单元个数均为6。
根据待处理数据集合中各待处理数据对应的数据单元个数,将所有的待处理数据分配至多个待处理数据组合,以使各待处理数据组合对应的数据单元个数大致相同,这一分片策略适用于各待处理数据中子数据集的差异较大的场景。可以使得数据分片更加均匀,不同的执行器处理待处理数据组合时所需的资源,如网络资源较为一致;避免出现某一执行器所需的资源明显偏多的情形。
步骤S50、确定所述多个待处理数据组合中的一个为目标数据组合,处理所述目标数据组合,将处理结果输出至接收装置,以使所述接收装置根据所述任务指令对应的所有执行器的处理结果确定所述任务指令的任务结果。
需要说明的是,不同的执行器根据相同的分片逻辑对所述待处理数据集合进行分片,得到所述待处理数据组合的划分结果也是一致的。
其中,所述多个待处理数据组合的数量等于所述执行器总数。
具体地,由于每个执行器都需要执行一个所述待处理数据组合,所述待处理数据组合有多个,因此各所述执行器需要确定所述多个待处理数据组合中的一个为目标数据组合。
请参阅图6,步骤S50中确定所述多个待处理数据组合中的一个为目标数据组合,包括以下步骤S51至步骤S53。
步骤S51、对所述多个待处理数据组合进行编号,得到所述多个待处理数据各自对应的第一编号。
示例性的,若有3个待处理数据组合,所述执行器对这3个待处理数据组合进行编号,得到这3个待处理数据各自对应的第一编号。例如,所述第一编号可以包括1、2、3。编号后得到待处理数据组合1、待处理数据组合2、待处理数据组合3。
步骤S52、根据所述任务指令确定所述执行器对应的第二编号。
示例性的,若所述任务指令对应的执行器总数为3,则所述执行器可以根据所述任务指令确定所述执行器对应的第二编号。例如第二编号可以包括1、2、3。编号后得到执行器1、执行器2、执行器3。
步骤S53、将所述第一编号与所述执行器的第二编号相同的待处理数据组合作为目标数据组合。
在一些实施例中,各所述执行器将所述第一编号与自身的第二编号相同的待处理数据组合作为目标数据组合。
示例性的,待处理数据组合1的第一编号与执行器1的第二编号相同,则执行器1将待处理数据组合1作为目标数据组合;待处理数据组合2的第一编号与执行器2的第二编号相同,则执行器2将待处理数据组合2作为目标数据组合;待处理数据组合3的第一编号与执行器3的第二编号相同,则执行器3将待处理数据组合3作为目标数据组合。
具体地,在确定所述多个待处理数据组合中的一个为目标数据组合之后,各所述执行器处理各自对应的目标数据组合,并将处理结果输出至所述接收装置。
示例性的,如图7所示,执行器1处理待处理数据组合1中的各待处理数据,输出与所述待处理数据组合1对应的处理结果至所述接收装置;执行器2处理待处理数据组合2中的各待处理数据,输出与所述待处理数据组合2对应的处理结果至所述接收装置;执行器3处理待处理数据组合3中的各待处理数据,输出与所述待处理数据组合3对应的处理结果至所述接收装置。
具体地,所述接收装置根据所述任务指令对应的所有执行器的处理结果确定所述任务指令的任务结果。
示例性的,所述接收装置根据所述任务指令对应的各执行器,即执行器1、执行器2、执行器3输出的处理结果得到所述任务指令的任务结果,即待处理数据a,b,c,d,e,f,g,h,i的任务结果。
通过确定多个待处理数据组合中的一个为目标数据组合,并处理目标数据组合,可以使接收装置更快地接收并确定任务指令的任务结果。
上述实施例提供的数据并行处理方法,通过向分布式管理器发送完成反馈信息,分布式管理器进行自增操作,可以记录执行器的完成状态;若检测分布式管理器未记录任务指令对应的所有执行器的完成状态,则阻塞处理待处理数据集合的进程,可以防止因各个执行器获取数据的时间节点存在较大差异,导致获取到重复的待处理数据。当接收到分布式管理器在标识寄存器的数值达到任务指令对应的执行器总数时发送的确认信息时,通过预设的分片规则将待处理数据集合分为多个待处理数据组合,可以使各执行器处理的数据分布平衡,有效地提高执行效率;通过确定多个待处理数据各自对应的第一编号以及执行器对应的第二编号,进而确定多个待处理数据组合中的一个为目标数据组合,可以使接收装置更快地接收并确定任务指令的任务结果,提高了执行器的执行效率。
请参阅图8,图8是本申请的实施例还提供一种数据并行处理执行器的示意性框图,该数据并行处理执行器用于执行前述的数据并行处理方法。其中,该数据并行处理执行器可以配置于服务器或终端中。
如图8所示,该数据并行处理执行器200,包括:数据获取模块201、反馈信息发送模块202、状态检测模块203、数据分片模块204和数据处理模块205。
数据获取模块201,用于若接收到调度中心发送的任务指令,根据所述任务指令获取待处理数据集合,所述任务指令包括执行器总数。
反馈信息发送模块202,用于若完成获取所述待处理数据集合,向分布式管理器发送完成反馈信息,以使所述分布式管理器记录所述执行器的完成状态。
在一些实施例中,如图9所示,该反馈信息发送模块202,包括:发送子模块2021。
发送子模块2021,用于向分布式管理器发送完成反馈信息,以使所述分布式管理器根据接收的完成反馈信息的次数,对所述标识寄存器进行自增操作。
状态检测模块203,用于检测所述分布式管理器是否记录所述任务指令对应的所有执行器的完成状态。
在一些实施例中,如图9所示,该状态检测模块203,包括:第一判定子模块2031。
第一判定子模块2031,用于若接收到所述分布式管理器在所述标识寄存器的数值达到所述任务指令对应的执行器总数时发送的确认信息,则判定所述分布式管理器记录所述任务指令对应的所有执行器的完成状态。
在一些实施例中,如图9所示,该状态检测模块203,还包括:数值获取子模块2032和第二判定子模块2033。
数值获取子模块2032,用于获取所述标识寄存器中的数值。
第二判定子模块2033,用于若所述标识寄存器中的数值等于所述任务指令对应的执行器总数,则判定所述分布式管理器记录所述任务指令对应的所有执行器的完成状态。
数据分片模块204,用于若检测到所述分布式管理器记录所述任务指令对应的所有执行器的完成状态,根据预设的分片规则将所述待处理数据集合分为多个待处理数据组合。
在一些实施例中,如图9所示,该数据分片模块204,包括:第一分片子模块2041、第二分片子模块2042和第三分片子模块2043。
第一分片子模块2041,用于根据所述执行器总数,将所述待处理数据集合中的待处理数据按照数据量分成多个待处理数据组合。
第二分片子模块2042,用于根据所述执行器总数,将所述待处理数据集合中的待处理数据按照耗时估值分成多个待处理数据组合。
第三分片子模块2043,用于根据所述执行器总数,将所述待处理数据集合中的待处理数据按照数据单元个数分成多个待处理数据组合。
数据处理模块205,用于确定所述多个待处理数据组合中的一个为目标数据组合,处理所述目标数据组合,将处理结果输出至接收装置,以使所述接收装置根据所述任务指令对应的所有执行器的处理结果确定所述任务指令的任务结果。
在一些实施例中,如图9所示,该数据处理模块205,包括:第一编号子模块2051、第二编号子模块2052和比较子模块2053。
第一编号子模块2051,用于对所述多个待处理数据组合进行编号,得到所述多个待处理数据各自对应的第一编号。
第二编号子模块2052,用于根据所述任务指令确定所述执行器对应的第二编号。
比较子模块2053,用于将所述第一编号与所述执行器的第二编号相同的待处理数据组合作为目标数据组合。
在一些实施例中,如图8所示,该数据并行处理执行器200,还包括:进程阻塞模块206。
进程阻塞模块206,用于若判定所述分布式管理器未记录所述任务指令对应的所有执行器的完成状态,则阻塞所述执行器处理所述待处理数据集合的进程。
上述的装置可以实现为一种计算机程序的形式,该计算机程序可以在如图10所示的计算机设备上运行。
请参阅图10,图10是本申请实施例提供的一种计算机设备的结构示意性框图。该计算机设备可以是服务器。
请参阅图10,该计算机设备包括通过系统总线连接的处理器和存储器,其中,存储器可以包括非易失性存储介质和内存储器。
处理器用于提供计算和控制能力,支撑整个计算机设备的运行。
内存储器为非易失性存储介质中的计算机程序的运行提供环境,该计算机程序被处理器执行时,可使得处理器执行任意一种数据并行处理方法。
应当理解的是,处理器可以是中央处理单元(Central Processing Unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
其中,在一个实施例中,所述处理器用于运行存储在存储器中的计算机程序,以实现如下步骤:
若接收到调度中心发送的任务指令,根据所述任务指令获取待处理数据集合,所述任务指令包括执行器总数;若完成获取所述待处理数据集合,向分布式管理器发送完成反馈信息,以使所述分布式管理器记录所述执行器的完成状态;检测所述分布式管理器是否记录所述任务指令对应的所有执行器的完成状态;若检测到所述分布式管理器记录所述任务指令对应的所有执行器的完成状态,根据预设的分片规则将所述待处理数据集合分为多个待处理数据组合;确定所述多个待处理数据组合中的一个为目标数据组合,处理所述目标数据组合,将处理结果输出至接收装置,以使所述接收装置根据所述任务指令对应的所有执行器的处理结果确定所述任务指令的任务结果。
在一个实施例中,所述处理器在实现向分布式管理器发送完成反馈信息,以使所述分布式管理器记录所述执行器的完成状态时,用于实现:
向分布式管理器发送完成反馈信息,以使所述分布式管理器根据接收的完成反馈信息的次数,对所述标识寄存器进行自增操作。
在一个实施例中,所述处理器在实现检测所述分布式管理器是否记录所述任务指令对应的所有执行器的完成状态时,用于实现:
若接收到所述分布式管理器在所述标识寄存器的数值达到所述任务指令对应的执行器总数时发送的确认信息,则判定所述分布式管理器记录所述任务指令对应的所有执行器的完成状态。
在一个实施例中,所述处理器在实现检测所述分布式管理器是否记录所述任务指令对应的所有执行器的完成状态时,用于实现:
获取所述标识寄存器中的数值;若所述标识寄存器中的数值等于所述任务指令对应的执行器总数,则判定所述分布式管理器记录所述任务指令对应的所有执行器的完成状态。
在一个实施例中,所述处理器还用于实现:
若判定所述分布式管理器未记录所述任务指令对应的所有执行器的完成状态,则阻塞所述执行器处理所述待处理数据集合的进程。
在一个实施例中,所述处理器在实现根据预设的分片规则将所述待处理数据集合分为多个待处理数据组合时,用于实现:
根据所述执行器总数,将所述待处理数据集合中的待处理数据按照数据量分成多个待处理数据组合;或者根据所述执行器总数,将所述待处理数据集合中的待处理数据按照耗时估值分成多个待处理数据组合;或者根据所述执行器总数,将所述待处理数据集合中的待处理数据按照数据单元个数分成多个待处理数据组合。
在一个实施例中,所述处理器在实现确定所述多个待处理数据组合中的一个为目标数据组合时,用于实现:
对所述多个待处理数据组合进行编号,得到所述多个待处理数据各自对应的第一编号;根据所述任务指令确定所述执行器对应的第二编号;将所述第一编号与所述执行器的第二编号相同的待处理数据组合作为目标数据组合。
本申请的实施例中还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序中包括程序指令,所述处理器执行所述程序指令,实现本申请实施例提供的任一项数据并行处理方法。
其中,所述计算机可读存储介质可以是前述实施例所述的计算机设备的内部存储单元,例如所述计算机设备的硬盘或内存。所述计算机可读存储介质也可以是所述计算机设备的外部存储设备,例如所述计算机设备上配备的插接式硬盘,智能存储卡(SmartMedia Card,SMC),安全数字卡(Secure Digital Card,SD Card),闪存卡(Flash Card)等。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种数据并行处理方法,其特征在于,用于分布式调度系统中的执行器,所述方法包括:
若接收到调度中心发送的任务指令,根据所述任务指令获取待处理数据集合,所述任务指令包括执行器总数;
若完成获取所述待处理数据集合,向分布式管理器发送完成反馈信息,以使所述分布式管理器记录所述执行器的完成状态;
检测所述分布式管理器是否记录所述任务指令对应的所有执行器的完成状态;
若检测到所述分布式管理器记录所述任务指令对应的所有执行器的完成状态,根据预设的分片规则将所述待处理数据集合分为多个待处理数据组合;
确定所述多个待处理数据组合中的一个为目标数据组合,处理所述目标数据组合,将处理结果输出至接收装置,以使所述接收装置根据所述任务指令对应的所有执行器的处理结果确定所述任务指令的任务结果。
2.根据权利要求1所述的数据并行处理方法,其特征在于,所述分布式管理器包括标识寄存器;
所述向分布式管理器发送完成反馈信息,以使所述分布式管理器记录所述执行器的完成状态,包括:
向分布式管理器发送完成反馈信息,以使所述分布式管理器根据接收的完成反馈信息的次数,对所述标识寄存器进行自增操作。
3.根据权利要求2中所述的数据并行处理方法,其特征在于,所述检测所述分布式管理器是否记录所述任务指令对应的所有执行器的完成状态,包括:
若接收到所述分布式管理器在所述标识寄存器的数值达到所述任务指令对应的执行器总数时发送的确认信息,则判定所述分布式管理器记录所述任务指令对应的所有执行器的完成状态。
4.根据权利要求2中所述的数据并行处理方法,其特征在于,所述检测所述分布式管理器是否记录所述任务指令对应的所有执行器的完成状态,包括:
获取所述标识寄存器中的数值;
若所述标识寄存器中的数值等于所述任务指令对应的执行器总数,则判定所述分布式管理器记录所述任务指令对应的所有执行器的完成状态。
5.根据权利要求1所述的数据并行处理方法,其特征在于,所述方法还包括:
若判定所述分布式管理器未记录所述任务指令对应的所有执行器的完成状态,则阻塞所述执行器处理所述待处理数据集合的进程。
6.根据权利要求1中所述的数据并行处理方法,其特征在于,所述根据预设的分片规则将所述待处理数据集合分为多个待处理数据组合,包括:
根据所述执行器总数,将所述待处理数据集合中的待处理数据按照数据量分成多个待处理数据组合;或者
根据所述执行器总数,将所述待处理数据集合中的待处理数据按照耗时估值分成多个待处理数据组合;或者
根据所述执行器总数,将所述待处理数据集合中的待处理数据按照数据单元个数分成多个待处理数据组合。
7.根据权利要求6中所述的数据并行处理方法,其特征在于,所述多个待处理数据组合的数量等于所述执行器总数;
所述确定所述多个待处理数据组合中的一个为目标数据组合,包括:
对所述多个待处理数据组合进行编号,得到所述多个待处理数据各自对应的第一编号;
根据所述任务指令确定所述执行器对应的第二编号;
将所述第一编号与所述执行器的第二编号相同的待处理数据组合作为目标数据组合。
8.一种数据并行处理执行器,其特征在于,包括:
数据获取模块,用于若接收到调度中心发送的任务指令,根据所述任务指令获取待处理数据集合,所述任务指令包括执行器总数;
反馈信息发送模块,用于若完成获取所述待处理数据集合,向分布式管理器发送完成反馈信息,以使所述分布式管理器记录所述执行器的完成状态;
状态检测模块,用于检测所述分布式管理器是否记录所述任务指令对应的所有执行器的完成状态;
数据分片模块,用于若检测到所述分布式管理器记录所述任务指令对应的所有执行器的完成状态,根据预设的分片规则将所述待处理数据集合分为多个待处理数据组合;
数据处理模块,用于确定所述多个待处理数据组合中的一个为目标数据组合,处理所述目标数据组合,将处理结果输出至接收装置,以使所述接收装置根据所述任务指令对应的所有执行器的处理结果确定所述任务指令的任务结果。
9.一种计算机设备,其特征在于,所述计算机设备包括存储器和处理器;
所述存储器,用于存储计算机程序;
所述处理器,用于执行所述计算机程序并在执行所述计算机程序时实现如权利要求1至7中任一项所述的数据并行处理方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时使所述处理器实现如权利要求1至7中任一项所述的数据并行处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010097661.6A CN111443999A (zh) | 2020-02-17 | 2020-02-17 | 数据并行处理方法、执行器、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010097661.6A CN111443999A (zh) | 2020-02-17 | 2020-02-17 | 数据并行处理方法、执行器、计算机设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111443999A true CN111443999A (zh) | 2020-07-24 |
Family
ID=71648867
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010097661.6A Pending CN111443999A (zh) | 2020-02-17 | 2020-02-17 | 数据并行处理方法、执行器、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111443999A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111773715A (zh) * | 2020-08-03 | 2020-10-16 | 网易(杭州)网络有限公司 | 任务执行方法及装置、设备和介质 |
CN112231108A (zh) * | 2020-11-02 | 2021-01-15 | 网易(杭州)网络有限公司 | 任务处理方法、装置、计算机可读存储介质及服务器 |
CN113672557A (zh) * | 2021-08-25 | 2021-11-19 | 中国工商银行股份有限公司 | 数据迁移至分布式系统方法、系统、设备、介质、产品 |
CN115617533A (zh) * | 2022-12-14 | 2023-01-17 | 上海登临科技有限公司 | 异构计算中进程切换管理方法及计算装置 |
-
2020
- 2020-02-17 CN CN202010097661.6A patent/CN111443999A/zh active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111773715A (zh) * | 2020-08-03 | 2020-10-16 | 网易(杭州)网络有限公司 | 任务执行方法及装置、设备和介质 |
CN112231108A (zh) * | 2020-11-02 | 2021-01-15 | 网易(杭州)网络有限公司 | 任务处理方法、装置、计算机可读存储介质及服务器 |
CN113672557A (zh) * | 2021-08-25 | 2021-11-19 | 中国工商银行股份有限公司 | 数据迁移至分布式系统方法、系统、设备、介质、产品 |
CN115617533A (zh) * | 2022-12-14 | 2023-01-17 | 上海登临科技有限公司 | 异构计算中进程切换管理方法及计算装置 |
CN115617533B (zh) * | 2022-12-14 | 2023-03-10 | 上海登临科技有限公司 | 异构计算中进程切换管理方法及计算装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111443999A (zh) | 数据并行处理方法、执行器、计算机设备和存储介质 | |
CN107688492B (zh) | 资源的控制方法、装置和集群资源管理系统 | |
US7783973B2 (en) | Change approvals for computing systems | |
US20070250630A1 (en) | Method and a system of generating and evaluating potential resource allocations for an application | |
CN109656782A (zh) | 可视化调度监控方法、装置及服务器 | |
Chang et al. | Modeling active virtual machines on IaaS clouds using an M/G/m/m+ K queue | |
CN113051019A (zh) | 流程任务执行管控方法、装置以及设备 | |
CN107291546A (zh) | 一种资源调度方法及装置 | |
CN109032769B (zh) | 一种基于容器的持续集成ci任务处理方法及装置 | |
CN109284895A (zh) | 项目任务分配方法、装置、计算机设备及存储介质 | |
CN110413393B (zh) | 集群资源管理方法、装置、计算机集群及可读存储介质 | |
CN109697049A (zh) | 数据处理方法、装置、电子设备及计算机可读存储介质 | |
CN111124854A (zh) | 一种冒烟测试用例分配方法、系统、终端及存储介质 | |
CN107391262B (zh) | 一种作业调度方法及装置 | |
CN111221847B (zh) | 监控数据存储方法、装置及计算机可读存储介质 | |
CN115129481B (zh) | 一种计算资源分配方法、装置及电子设备 | |
CN114579275B (zh) | 分布式任务推送方法及装置、电子设备、存储介质 | |
CN116860344A (zh) | 一种流程管理方法、系统、设备及介质 | |
CN113608847A (zh) | 任务处理方法、装置、设备及存储介质 | |
CN114944993A (zh) | 微服务的扩缩容方法和装置 | |
CN117032916B (zh) | 基于事件的任务调度算法、装置和存储介质 | |
CN113760485A (zh) | 定时任务的调度方法、装置、设备及存储介质 | |
CN117608862B (zh) | 数据分发控制方法、装置、设备及介质 | |
CN110737572A (zh) | 大数据平台资源抢占测试方法、系统、终端及存储介质 | |
Van Spilbeeck et al. | On the impact of job size variability on heterogeneity-aware load balancing |
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 |