CN114579311B - 执行分布式计算任务的方法、装置、设备以及存储介质 - Google Patents
执行分布式计算任务的方法、装置、设备以及存储介质 Download PDFInfo
- Publication number
- CN114579311B CN114579311B CN202210214311.2A CN202210214311A CN114579311B CN 114579311 B CN114579311 B CN 114579311B CN 202210214311 A CN202210214311 A CN 202210214311A CN 114579311 B CN114579311 B CN 114579311B
- Authority
- CN
- China
- Prior art keywords
- node
- result
- nodes
- hardware information
- calculation
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 59
- 238000004364 calculation method Methods 0.000 claims abstract description 87
- 230000002776 aggregation Effects 0.000 claims abstract description 32
- 238000004220 aggregation Methods 0.000 claims abstract description 32
- 230000004931 aggregating effect Effects 0.000 claims abstract description 7
- 238000004891 communication Methods 0.000 claims description 50
- 238000013473 artificial intelligence Methods 0.000 abstract description 3
- 238000004590 computer program Methods 0.000 description 11
- 238000012545 processing Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 230000000007 visual effect Effects 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/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/5044—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 hardware capabilities
-
- 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/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- 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)
- Multimedia (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本公开提供了一种执行分布式计算任务的方法、装置、设备、存储介质以及程序产品,涉及人工智能技术领域,尤其涉及云计算、分布式计算等技术领域。具体实现方案为:将与分布式计算任务相关的待处理计算数据发送至第一节点集合中的每个第一节点,其中,第一节点的硬件信息与本地硬件信息匹配;聚合每个第一节点针对待处理计算数据的第一计算结果,得到第一聚合结果;与第二节点集合中的每个第二节点共享第一聚合结果,得到共享结果,其中,第二节点的硬件信息与本地硬件信息不匹配;以及确定共享结果作为新的待处理计算数据,并返回将待处理计算数据发送至第一节点集合中的每个节点的操作,直到分布式计算任务执行完毕。
Description
技术领域
本公开涉及人工智能技术领域,尤其涉及云计算、分布式计算等技术领域。
背景技术
分布式计算是一种计算方法,和集中式计算是相对的。随着计算技术的发展,有些计算任务需要较大的计算能力才能完成,如果采用集中式计算,需要消耗较长时间来完成。分布式计算可以将该计算任务分解成许多小的部分,分配给多个节点处理。这样可以缩短计算时间,提高计算效率。
发明内容
本公开提供了一种执行分布式计算任务的方法、装置、设备、存储介质以及程序产品。
根据本公开的一方面,提供了一种执行分布式计算任务的方法,包括:将与分布式计算任务相关的待处理计算数据发送至第一节点集合中的每个第一节点,其中,所述第一节点的硬件信息与本地硬件信息匹配;
聚合所述每个第一节点针对所述待处理计算数据的第一计算结果,得到第一聚合结果;与第二节点集合中的每个第二节点共享所述第一聚合结果,得到共享结果,其中,所述第二节点的硬件信息与所述本地硬件信息不匹配;以及确定所述共享结果作为新的待处理计算数据,并返回所述将待处理计算数据发送至第一节点集合中的每个节点的操作,直到分布式计算任务执行完毕。
根据本公开的另一方面,提供了一种执行分布式计算任务的方法,包括:接收来自主节点的待处理计算数据;根据所述待处理计算数据进行计算操作,得到第一计算结果;以及将所述第一计算结果发送至所述主节点。
根据本公开的另一方面,提供了一种执行分布式计算任务的装置,包括:第一发送模块,用于将与分布式计算任务相关的待处理计算数据发送至第一节点集合中的每个第一节点,其中,所述第一节点的硬件信息与本地硬件信息匹配;聚合模块,用于聚合所述每个第一节点针对所述待处理计算数据的第一计算结果,得到第一聚合结果;共享模块,用于与第二节点集合中的每个第二节点共享所述第一聚合结果,得到共享结果,其中,所述第二节点的硬件信息与所述本地硬件信息不匹配;以及确定模块,用于确定所述共享结果作为新的待处理计算数据,并返回所述将待处理计算数据发送至第一节点集合中的每个节点的操作,直到分布式计算任务执行完毕。
根据本公开的另一方面,提供了一种执行分布式计算任务的装置,包括:接收模块,用于接收来自主节点的待处理计算数据;计算模块,用于根据所述待处理计算数据进行计算操作,得到第一计算结果;以及发送模块,用于将所述第一计算结果发送至所述主节点。
本公开的另一个方面提供了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本公开实施例所示的方法。
根据本公开实施例的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行本公开实施例所示的方法。
根据本公开实施例的另一方面,提供了一种计算机程序产品,包括计算机程序/指令,其特征在于,该计算机程序/指令被处理器执行时实现本公开实施例所示方法的步骤。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1是根据本公开实施例的执行分布式计算任务的方法、装置、电子设备和存储介质的示例性分布式***的示意图;
图2示意性示出了根据本公开的实施例的执行分布式计算任务的方法的流程图;
图3示意性示出了根据本公开的实施例的确定第一节点集合和第二节点集合的方法的流程图;
图4示意性示出了根据本公开的实施例的确定主节点的方法的流程图;
图5示意性示出了根据本公开另一实施例的执行分布式计算任务的方法示意图;
图6示意性示出了根据本公开实施例的执行分布式计算任务的装置的框图;
图7示意性示出了根据本公开另一实施例的执行分布式计算任务的装置的框图;以及
图8示意性示出了可以用来实施本公开的实施例的示例电子设备的框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
以下将结合图1对本公开提供的执行分布式计算任务的方法和装置的应用场景进行描述。
图1是根据本公开实施例的执行分布式计算任务的方法、装置、电子设备和存储介质的示例性分布式***的示意图。需要注意的是,图1所示仅为可以应用本公开实施例的***架构的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、***、环境或场景。
如图1所示,该分布式***100包括多个节点,例如节点111、112、113、114、121、122、123、124、131、132、133和134。
该多个节点可以基于不同的硬件架构,本实施例中,可以将基于相同硬件架构的节点称为同构节点,可以将基于不同硬件架构的节点称为异构节点。
例如,节点111、112、113和114可以基于GPU(Graphics Processing Unit,图形处理器),节点121、122、123和124可以基于NPU(Natural-network Processing Unit,嵌入式神经网络处理器),节点131、132、133和134可以基于CPU(Central Processing Unit,中央处理器)。基于此,节点111、112、113和114互为同构节点,节点121、122、123和124互为同构节点,节点131、132、133和134互为同构节点。节点111、112、113和114与节点121、122、123和124之间互为异构节点,节点111、112、113和114与节点131、132、133和134之间互为异构节点,节点121、122、123和124与节点131、132、133和134之间互为异构节点。
根据本公开的实施例,例如可以将同构的节点组成一个同构节点集合。然后确定每个节点集合中的主节点。将每个节点集合中的主节点组成一个异构节点集合。例如,可以将节点111、112、113和114组成同构节点集合10,并确定节点111作为同构节点集合10的主节点。可以将节点121、122、123和124组成同构节点集合20,并确定节点121作为同构节点集合20的主节点。可以将节点131、132、133和134组成同构节点集合30,并确定节点131作为同构节点集合30的主节点。
根据本公开的实施例,在执行分布式计算任务时,可以由每个同构节点集合中的主节点向所属同构节点集合内的节点发送待计算数据。然后该主节点可以聚合所属同构节点集合内所有节点的计算结果,得到聚合结果。
根据本公开的实施例,异构节点的绝对算力是不一样的,所完成计算任务的速度也是不一样的,因此在同构节点集合内计算完成后,需要进行同构节点集合之间进行数据同步。基于此,各主节点可以将聚合结果与异构节点集合中的其他主节点进行共享。每个主节点再根据共享后的聚合结果,继续后续的计算。根据本公开的实施例,可以定期在同构节点集合之间进行数据同步。其中,数据同步周期可以根据实际需要确定。可以理解的是,在每个数据同步周期,每个同构节点集合中所进行的计算次数可能是不一样的。绝对算力较大同构节点集合中计算次数较多,绝对算力较小的同构节点集合中计算次数较多。
示例性地,同构节点集合内部可以采用最优或较优的通信方式,如同构节点集合10中的节点均基于GPU,则同构节点集合10中的节点可以使用GPU专用的集合通讯库进行通信。同构节点集合20中的节点均基于NPU,则同构节点集合20中的节点可以采用NPU专用的集合通讯库进行通信。另外,在异构节点之间通信时可以采用通用的通信方式,例如主节点111、121和131之间使用适合于GPU、CPU和NPU的通用集合通讯库。
根据本公开的实施例的执行分布式计算任务的方法,可以将各节点根据硬件信息进行分组,将同构的节点分为一个同构节点集合,同构节点集合之间由各同构节点集合的主节点进行通信,可以实现利用异构节点进行分布式计算。另外,同构节点集合内部可以使用专用的通信方式,可以更高效地利用硬件资源,提高计算效率。
本公开的技术方案中,所涉及的计算数据、硬件信息等数据的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。
以下将结合图2对本公开提供的执行分布式计算任务的方法进行描述。其中,该执行分布式计算任务的方法例如可以由主节点执行。
图2示意性示出了根据本公开的实施例的执行分布式计算任务的方法的流程图。
如图2所示,该执行分布式计算任务的方法200包括在操作S210a,主节点将与分布式计算任务相关的待处理计算数据发送至第一节点集合中的每个第一节点。
根据本公开的实施例,本地硬件信息例如可以为主节点的硬件信息。其中,硬件信息例如可以包括硬件类型。第一节点例如可以为与主节点的硬件信息相匹配的节点。第一节点集合例如可以包括至少一个第一节点。示例性地,本实施例中,如果两个节点的硬件信息匹配,则可以表示该两个节点互为同构节点。
根据本公开的实施例,分布式计算任务例如可以包括深度学习模型的训练任务等,待处理计算数据例如可以包括模型参数等。
然后,对于每个第一节点,执行以下操作S210b~S230b。
其中,在操作S210b,接收来自主节点的待处理计算数据。
在操作S220b,根据待处理计算数据进行计算操作,得到第一计算结果。
根据本公开的实施例,计算操作例如可以包括梯度计算等。
在操作S230b,将第一计算结果发送至主节点。
接下来,主节点继续执行操作S220a~S240a。
在操作S220a,聚合每个第一节点针对待处理计算数据的第一计算结果,得到第一聚合结果。
根据本公开的实施例,主节点例如可以根据每个第一节点的权重,将各第一计算结果进行加权求和,得到第一聚合结果。其中,每个第一节点的权重可以根据实际需要设置。
根据本公开另一实施例,主节点例如也可以对所有第一计算结果求平均值,得到第一聚合结果。
在操作S230a,与第二节点集合中的每个第二节点共享第一聚合结果,得到共享结果,并确定共享结果作为新的待处理计算数据。
根据本公开的实施例,第二节点例如可以为与主节点的硬件信息不匹配的节点。第二节点集合例如可以包括至少一个第二节点。示例性地,本实施例中,如果两个节点的硬件信息不匹配,则可以表示该两个节点互为异构节点。
根据本公开的实施例,例如可以计算第一聚合结果和所有第二聚合结果的平均值,作为共享结果。
根据本公开的另一实施例,例如也可以根据每个主节点的权重,将第一聚合结果和所有第二聚合结果进行加权求和,得到共享结果。其中,每个主节点的权重可以根据实际需要设置。
操作S240a,确定分布式计算任务是否执行完毕。如果分布式计算任务还未执行完毕,则返回操作S220a。如果分布式计算任务还未执行完毕,则结束。
根据本公开的实施例,例如可以根据执行轮次是否达到预定次数来确定分布式计算任务是否执行完毕。如果执行轮次达到预定次数,则确定分布式计算任务已执行完毕。如果执行轮次没有达到预定次数,则确定分布式计算任务没有执行完毕。
根据本公开的实施例的执行分布式计算任务的方法,可以实现利用异构节点进行分布式计算,可以更高效地利用硬件资源,提高计算效率。
根据本公开另一实施例,主节点也可以针对待处理计算数据进行计算操作,得到第二计算结果。基于此,在接收到来自每个第一节点的第一计算结果之后,可以将第二计算结果和每个第一节点的第一计算结果进行加权求和,得到第一聚合结果。其中,主节点和每个第一节点的权重可以根据实际需要设置。根据本公开另一实施例,主节点例如也可以对第二计算结果和所有第一计算结果求平均值,得到第一聚合结果。
以下将结合图3对本公开提供的确定第一节点集合和第二节点集合的方法进行描述。其中,该执行分布式计算任务的方法例如可以由主节点执行。
图3示意性示出了根据本公开的实施例的确定第一节点集合和第二节点集合的方法的流程图。
如图3所示,该确定第一节点集合和第二节点集合的方法可以包括在操作S310,获取本地硬件信息和多个节点的硬件信息。
根据本公开的实施例,硬件信息例如可以包括硬件类型。硬件类型例如可以包括GPU、CPU和NPU等等。
在操作S320,确定多个节点中硬件信息与本地硬件信息匹配的节点作为第一节点,得到第一节点集合。
根据本公开的实施例,例如可以确定与主节点的硬件类型相同的节点,作为第一节点。将所有第一节点组为第一节点集合。
在操作S330,在多个节点中硬件信息与本地硬件信息不匹配的节点中确定主节点,作为第二节点,得到第二节点集合。
根据本公开的实施例,例如可以确定与主节点的硬件类型不相同的节点。然后确定这些硬件类型不相同的节点中的主节点,作为第二节点。将所有第二节点组为第二节点集合。
以下将结合图4对本公开提供的确定主节点的方法进行描述。其中,该确定主节点的方法例如可以由第一节点执行。
图4示意性示出了根据本公开的实施例的确定主节点的方法的流程图。
如图4所示,该确定主节点的方法可以包括在操作S410,获取多个节点的硬件信息。
根据本公开的实施例,硬件信息例如可以包括硬件类型和节点标识。
在操作S420,根据多个节点中硬件信息,在多个节点中确定主节点。
根据本公开的实施例,可以确定多个节点中与第一节点硬件类型相同的节点,即同构节点。然后根据这些同构节点的节点标识,确定这些同构节点中的主节点。示例性地,节点标识可以包括数字,可以根据数字的大小,确定同构节点中的主节点。例如,数字最小的同构节点作为主节点。
根据本公开的实施例,在确定第一节点集合之后,主节点可以建立与第一节点集合中每个第一节点之间的第一通信域。基于此,主节点例如可以在第一通信域中广播待处理计算数据,以便待处理计算数据发送至第一节点集合中的每个第一节点。对应地,每个第一节点也可以建立与主节点之间的第一通信域。然后将第一计算结果通过第一通信域发送至主节点。
根据本公开另一实施例,还可以预先将节点进行分组。将硬件信息匹配的节点组成一个同构节点集合。然后确定每个同构节点集合中的主节点。将每个同构节点集合中的主节点组成一个异构节点集合。对于每个主节点,该主节点所属同构节点集合中的其他节点即构成第一节点集合,该主节点所属异构节点集合中的其他主节点即构成第二节点集合。
下面参考图5,结合具体实施例对上文所示的执行分布式计算任务的方法做进一步说明。本领域技术人员可以理解,以下示例实施例仅用于理解本公开,本公开并不局限于此。
图5示意性示出了根据本公开另一实施例的执行分布式计算任务的方法示意图。
在图5中示出了,节点的标识可以包括a0、a1、a2、b0、b1、b2、b3、c0、c1、c2、c3、d0、d1、d2和d3。节点可以各自启动,通过内置程序获得自身节点的硬件类型、节点标识、网络地址等信息。网络地址例如可以包括IP地址。
各节点将硬件类型、节点标识和网络地址发送至注册中心,以便由注册中心为节点进行注册。在注册成功之后,各个节点通过注册中心获取全局信息,全局信息包括所有节点的硬件类型节点标识和网络地址。示例性地,注册中心可以使用预先声明的master(主控)节点或etcd等服务实现。其中,etcd是一种分布式键值数据库。
根据本公开的实施例,每个节点根据自身的硬件信息和其他节点的硬件信息,确定其他节点中的与自身硬件信息匹配的同构节点和与自身硬件信息不匹配的异构节点,同构节点之间构成同构节点集合。例如,节点a0、a1、a2和a3组成一个同构节点集合g1。节点b0、b1、b2和b3组成一个同构节点集合g2。节点c0、c1、c2和c3组成一个同构节点集合g3。节点d0、d1、d2和d3组成一个同构节点集合g4。
根据本公开的实施例,各节点可以根据所有节点的节点标识对所有节点进行排序。示例性地,本实施例中,可以根据节点标识中的数字编号为节点确定主节点,例如各个同构集合中0号节点作为主节点,即a0、b0、c0和d0分别作为同构集合g1、g2、g3和g4的主节点。a0、b0、c0和d0构成异构集合g5。
然后,各节点启动各自工作进程,通过获取到的网络地址建立通信域。主节点建立同构通信域和异构通信域,非主节点建立同构通信域。每个主节点将第一数据在对应的同构通信域中广播,以将第一数据发送至该同构通信域中的每个同构节点。
接下来,每个节点根据第一数据进行预定计算操作,得到计算结果。
响应于每个同步周期到达,非主节点将自身计算得到的计算结果发送至所属同构节点集合的主节点。
主节点接收来自所属同构节点集合中各节点的计算结果。然后聚合自身计算的计算结果和所属同构节点集合中其他节点的计算结果,得到聚合数据。接着将聚合数据在异构通信域中广播,以发送至其他同构集合的主节点。
主节点接收来自其他主节点发送的聚合数据。根据其他主节点的聚合数据和自身的聚合数据,确定更新待处理计算数据。然后将待处理计算数据发送至与同集合的每个节点,以便根据新的待处理计算数据进行下一轮计算。
相关技术中,集合通信都是基于同构硬件进行的设计,不支持异构硬件进行通信。
根据本公开的实施例的执行分布式计算任务的方法,可以实现利用异构节点进行分布式计算,可以更高效地利用硬件资源,提高计算效率。
图6示意性示出了根据本公开实施例的执行分布式计算任务的装置的框图。
如图6所示,该执行分布式计算任务的装置600包括第一发送模块610、聚合模块620、共享模块630和确定模块640。
第一发送模块610,用于将与分布式计算任务相关的待处理计算数据发送至第一节点集合中的每个第一节点,其中,第一节点的硬件信息与本地硬件信息匹配。
聚合模块620,用于聚合每个第一节点针对待处理计算数据的第一计算结果,得到第一聚合结果。
共享模块630,用于与第二节点集合中的每个第二节点共享第一聚合结果,得到共享结果,其中,第二节点的硬件信息与本地硬件信息不匹配。
确定模块640,用于确定共享结果作为新的待处理计算数据,并返回将待处理计算数据发送至第一节点集合中的每个节点的操作,直到分布式计算任务执行完毕。
图7示意性示出了根据本公开另一实施例的执行分布式计算任务的装置的框图。
如图7所示,该执行分布式计算任务的装置700包括接收模块710、计算模块720和发送模块730。
接收模块710,用于接收来自主节点的待处理计算数据。
计算模块720,用于根据待处理计算数据进行计算操作,得到第一计算结果。
发送模块730,用于将所述第一计算结果发送至所述主节点。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图8示意性示出了可以用来实施本公开的实施例的示例电子设备800的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图8所示,设备800包括计算单元801,其可以根据存储在只读存储器(ROM)802中的计算机程序或者从存储单元808加载到随机访问存储器(RAM)803中的计算机程序,来执行各种适当的动作和处理。在RAM 803中,还可存储设备800操作所需的各种程序和数据。计算单元801、ROM 802以及RAM 803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。
设备800中的多个部件连接至I/O接口805,包括:输入单元806,例如键盘、鼠标等;输出单元807,例如各种类型的显示器、扬声器等;存储单元808,例如磁盘、光盘等;以及通信单元809,例如网卡、调制解调器、无线通信收发机等。通信单元809允许设备800通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元801可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元801的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元801执行上文所描述的各个方法和处理,例如执行分布式计算任务的方法。例如,在一些实施例中,执行分布式计算任务的方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元808。在一些实施例中,计算机程序的部分或者全部可以经由ROM 802和/或通信单元809而被载入和/或安装到设备800上。当计算机程序加载到RAM 803并由计算单元801执行时,可以执行上文描述的执行分布式计算任务的方法的一个或多个步骤。备选地,在其他实施例中,计算单元801可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行执行分布式计算任务的方法。
本文中以上描述的***和技术的各种实施方式可以在数字电子电路***、集成电路***、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上***的***(SOC)、复杂可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程***上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储***、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储***、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行***、装置或设备使用或与指令执行***、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体***、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的***和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的***和技术实施在包括后台部件的计算***(例如,作为数据服务器)、或者包括中间件部件的计算***(例如,应用服务器)、或者包括前端部件的计算***(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的***和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算***中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将***的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机***可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务(″Virtual Private Server″,或简称″VPS″)中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式***的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
Claims (13)
1.一种执行分布式计算任务的方法,应用于主节点,所述方法包括:
通过第一通信域,将与分布式计算任务相关的待处理计算数据发送至第一节点集合中的每个第一节点,其中,所述第一节点的硬件信息与本地硬件信息匹配,所述主节点与所述第一节点集合中的每个第一节点之间建立所述第一通信域;所述本地硬件信息为主节点的硬件信息;
通过所述第一通信域,聚合所述每个第一节点针对所述待处理计算数据的第一计算结果,得到第一聚合结果;
通过第二通信域,与第二节点集合中的每个第二节点共享所述第一聚合结果,得到共享结果,其中,所述第二节点的硬件信息与所述本地硬件信息不匹配,所述主节点与所述第二节点集合中的每个第二节点之间建立所述第二通信域;以及
确定所述共享结果作为新的待处理计算数据,并返回所述将与分布式计算任务相关的待处理计算数据发送至第一节点集合中的每个第一节点的操作,直到所述分布式计算任务执行完毕。
2.根据权利要求1所述的方法,还包括:
获取所述本地硬件信息和多个节点的硬件信息;
确定所述多个节点中硬件信息与所述本地硬件信息匹配的节点作为第一节点,得到所述第一节点集合;以及
在所述多个节点中硬件信息与所述本地硬件信息不匹配的节点中确定主节点,作为所述第二节点,得到所述第二节点集合。
3.根据权利要求1或2所述的方法,还包括:
建立与所述第一节点集合中每个第一节点之间的第一通信域;
其中,所述将与分布式计算任务相关的待处理计算数据发送至第一节点集合中的每个第一节点包括:
在所述第一通信域中广播所述待处理计算数据。
4.根据权利要求1所述的方法,其中,所述聚合所述每个第一节点针对所述待处理计算数据的第一计算结果,得到第一聚合结果,包括:
针对所述待处理计算数据进行计算操作,得到第二计算结果;
接收来自所述每个第一节点的第一计算结果;以及
将所述第二计算结果和所述每个第一节点的第一计算结果进行加权求和,得到所述第一聚合结果。
5.根据权利要求1或2所述的方法,还包括:
建立与所述第二节点集合中每个第二节点之间的第二通信域;
其中,所述与第二节点集合中的每个第二节点共享所述第一聚合结果,得到共享结果包括:
在所述第二通信域中广播所述第一聚合结果;
接收来自所述每个第二节点的第二聚合结果;以及
根据所述第一聚合结果和所述第二聚合结果,确定所述共享结果。
6.根据权利要求5所述的方法,其中,所述根据所述第一聚合结果和所述第二聚合结果,确定所述共享结果,包括:
计算所述第一聚合结果和所述第二聚合结果的平均值,作为所述共享结果。
7.一种执行分布式计算任务的方法,应用于第一节点,所述方法包括:
通过第一通信域,接收来自主节点的待处理计算数据,其中,所述主节点与所述第一节点同属一个节点集合,所述节点集合中的节点彼此之间硬件信息相匹配,所述主节点与所述节点集合中除所述主节点之外一个或多个第一节点之间建立所述第一通信域;
根据所述待处理计算数据进行计算操作,得到第一计算结果;以及
通过所述第一通信域,将所述第一计算结果发送至所述主节点;
其中,所述主节点为权利要求1~6中任一项所述的主节点。
8.根据权利要求7所述的方法,还包括:
获取多个节点的硬件信息和节点标识;以及
根据所述多个节点中硬件信息和节点标识,在所述多个节点中确定所述主节点。
9.根据权利要求8所述的方法,还包括:
建立与所述主节点之间的第一通信域;
其中,将所述第一计算结果发送至所述主节点包括:
将所述第一计算结果通过所述第一通信域发送至所述主节点。
10.一种执行分布式计算任务的装置,应用于主节点,包括:
第一发送模块,用于通过第一通信域,将与分布式计算任务相关的待处理计算数据发送至第一节点集合中的每个第一节点,其中,所述第一节点的硬件信息与本地硬件信息匹配,所述主节点与所述第一节点集合中的每个第一节点之间建立所述第一通信域;所述本地硬件信息为主节点的硬件信息;
聚合模块,用于通过所述第一通信域,聚合所述每个第一节点针对所述待处理计算数据的第一计算结果,得到第一聚合结果;
共享模块,用于通过第二通信域,与第二节点集合中的每个第二节点共享所述第一聚合结果,得到共享结果,其中,所述第二节点的硬件信息与所述本地硬件信息不匹配,所述主节点与所述第二节点集合中的每个第二节点之间建立所述第二通信域;以及
确定模块,用于确定所述共享结果作为新的待处理计算数据,并返回所述将与分布式计算任务相关的待处理计算数据发送至第一节点集合中的每个第一节点的操作,直到所述分布式计算任务执行完毕。
11.一种执行分布式计算任务的装置,应用于第一节点,包括:
接收模块,用于通过第一通信域,接收来自主节点的待处理计算数据,其中,所述主节点与所述第一节点同属一个节点集合,所述节点集合中的节点彼此之间硬件信息相匹配,所述主节点与所述节点集合中除所述主节点之外一个或多个第一节点之间建立所述第一通信域;
计算模块,用于根据所述待处理计算数据进行计算操作,得到第一计算结果;以及
发送模块,用于通过所述第一通信域,将所述第一计算结果发送至所述主节点;
其中,所述主节点为权利要求10所述的主节点。
12.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-9中任一项所述的方法。
13.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-9中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210214311.2A CN114579311B (zh) | 2022-03-04 | 2022-03-04 | 执行分布式计算任务的方法、装置、设备以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210214311.2A CN114579311B (zh) | 2022-03-04 | 2022-03-04 | 执行分布式计算任务的方法、装置、设备以及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114579311A CN114579311A (zh) | 2022-06-03 |
CN114579311B true CN114579311B (zh) | 2023-05-30 |
Family
ID=81773683
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210214311.2A Active CN114579311B (zh) | 2022-03-04 | 2022-03-04 | 执行分布式计算任务的方法、装置、设备以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114579311B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117312839A (zh) * | 2022-06-29 | 2023-12-29 | 华为技术有限公司 | 模型训练方法、装置、***及相关设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9483367B1 (en) * | 2014-06-27 | 2016-11-01 | Veritas Technologies Llc | Data recovery in distributed storage environments |
CN111385352A (zh) * | 2020-02-26 | 2020-07-07 | 深信服科技股份有限公司 | 一种实例的控制方法、节点、终端和分布式存储*** |
CN111538865A (zh) * | 2020-03-27 | 2020-08-14 | 中国人民解放军国防科技大学 | 多方集合同步方法、装置和电子设备 |
CN113505021A (zh) * | 2021-05-26 | 2021-10-15 | 南京大学 | 基于多主节点主从分布式架构的容错方法及*** |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7051004B2 (en) * | 1998-04-03 | 2006-05-23 | Macrovision Corporation | System and methods providing secure delivery of licenses and content |
US7395536B2 (en) * | 2002-11-14 | 2008-07-01 | Sun Microsystems, Inc. | System and method for submitting and performing computational tasks in a distributed heterogeneous networked environment |
CN102882973B (zh) * | 2012-10-11 | 2015-05-20 | 北京邮电大学 | 基于p2p技术的分布式负载均衡***和方法 |
US20190146837A1 (en) * | 2014-09-29 | 2019-05-16 | Samsung Electronics Co., Ltd. | Distributed real-time computing framework using in-storage processing |
CN104852819A (zh) * | 2015-05-21 | 2015-08-19 | 杭州天宽科技有限公司 | 一种基于异构MapReduce集群的面向SLA的能耗管理方法 |
CN105183796A (zh) * | 2015-08-24 | 2015-12-23 | 同济大学 | 一种基于聚类的分布式链路预测方法 |
CN107203422B (zh) * | 2016-08-28 | 2020-09-01 | 深圳晶泰科技有限公司 | 一种面向高性能计算云平台的作业调度方法 |
CN112084258A (zh) * | 2020-08-18 | 2020-12-15 | 腾讯科技(深圳)有限公司 | 一种数据同步方法和装置 |
-
2022
- 2022-03-04 CN CN202210214311.2A patent/CN114579311B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9483367B1 (en) * | 2014-06-27 | 2016-11-01 | Veritas Technologies Llc | Data recovery in distributed storage environments |
CN111385352A (zh) * | 2020-02-26 | 2020-07-07 | 深信服科技股份有限公司 | 一种实例的控制方法、节点、终端和分布式存储*** |
CN111538865A (zh) * | 2020-03-27 | 2020-08-14 | 中国人民解放军国防科技大学 | 多方集合同步方法、装置和电子设备 |
CN113505021A (zh) * | 2021-05-26 | 2021-10-15 | 南京大学 | 基于多主节点主从分布式架构的容错方法及*** |
Non-Patent Citations (2)
Title |
---|
BigClue: Towards a generic IoT cross-domain data processing platform;Dan Huru等;《2018 IEEE 14th International Conference on Intelligent Computer Communication and Processing (ICCP)》;第427-434页 * |
基于多核机群环境的并行程序设计方法研究——MPI+OpenMP混合编程;王杰;《中国优秀硕士学位论文全文数据库 信息科技辑》;第I137-49页 * |
Also Published As
Publication number | Publication date |
---|---|
CN114579311A (zh) | 2022-06-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113568860B (zh) | 基于深度学习的多机集群拓扑映射方法、装置及程序产品 | |
CN114253979B (zh) | 一种报文处理方法、装置及电子设备 | |
CN114579311B (zh) | 执行分布式计算任务的方法、装置、设备以及存储介质 | |
CN114428907B (zh) | 信息搜索方法、装置、电子设备及存储介质 | |
CN113344074B (zh) | 模型训练方法、装置、设备及存储介质 | |
CN112560936B (zh) | 模型并行训练方法、装置、设备、存储介质和程序产品 | |
CN114461407A (zh) | 数据处理方法、装置、分发服务器、***及存储介质 | |
CN117370520A (zh) | 分流的对话处理方法、装置、设备及介质 | |
CN116567077A (zh) | 裸金属指令发送方法、装置、设备及存储介质 | |
CN114565105B (zh) | 处理数据的方法和深度学习模型的训练方法、装置 | |
CN115016934A (zh) | 一种联邦学习方法、装置、***、电子设备及存储介质 | |
CN115730681B (zh) | 模型训练方法、装置、设备以及存储介质 | |
CN114650222B (zh) | 参数配置方法、装置、电子设备和存储介质 | |
CN116306407B (zh) | 片上网络noc的验证方法、装置、设备和存储介质 | |
CN114449031B (zh) | 信息获取方法、装置、设备和存储介质 | |
CN112948246B (zh) | 数据平台的ab测试控制方法、装置、设备及存储介质 | |
CN113032040B (zh) | 用于处理任务的方法、装置、设备、介质和产品 | |
CN115600671B (zh) | 深度学习框架的数据处理方法、装置、设备和存储介质 | |
CN115906982B (zh) | 分布式训练方法、梯度通信方法、装置及电子设备 | |
CN116055386B (zh) | 一种端口权重更新方法、装置、芯片及存储介质 | |
US20230334096A1 (en) | Graph data processing method and apparatus, computer device, and storage medium | |
CN117032746A (zh) | 数据更新方法、装置、电子设备及存储介质 | |
CN117651078A (zh) | 一种数据传输方法、装置、电子设备及存储介质 | |
CN116167464A (zh) | 联邦学习任务的运算时间预测方法、装置、设备和介质 | |
CN116382852A (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 |