CN114546633A - 分布式任务处理方法及系统 - Google Patents

分布式任务处理方法及系统 Download PDF

Info

Publication number
CN114546633A
CN114546633A CN202011394457.7A CN202011394457A CN114546633A CN 114546633 A CN114546633 A CN 114546633A CN 202011394457 A CN202011394457 A CN 202011394457A CN 114546633 A CN114546633 A CN 114546633A
Authority
CN
China
Prior art keywords
task
aggregation
node
data packet
parameter
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
Application number
CN202011394457.7A
Other languages
English (en)
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.)
Zhongguancun Haihua Information Technology Frontier Research Institute
Original Assignee
Zhongguancun Haihua Information Technology Frontier Research Institute
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 Zhongguancun Haihua Information Technology Frontier Research Institute filed Critical Zhongguancun Haihua Information Technology Frontier Research Institute
Publication of CN114546633A publication Critical patent/CN114546633A/zh
Pending legal-status Critical Current

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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Biophysics (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Biomedical Technology (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请公开一种分布式任务处理方法及系统,其中所述分布式任务处理方法包括:接收多个包含任务参数和用于指示分配执行聚合操作的计算资源的资源配置标识信息的第一数据包;其中,所述多个任务参数是由多个工作节点通过执行一分布式计算任务而得到的;依据各所述第一数据包中的资源配置标识信息动态分配对应同一分布式计算任务的计算资源,并利用所述计算资源对相应多个任务参数执行聚合操作以得到对应所述分布式计算任务的聚合参数;所述聚合参数用于供对应同一分布式计算任务的各工作节点进行数据处理。本申请中转发节点通过动态分配计算资源,提高了计算资源的利用率,提高了分布式计算任务的处理效率。

Description

分布式任务处理方法及系统
技术领域
本申请涉及计算机数据处理领域,具体的涉及一种分布式任务处理方法及系统。
背景技术
目前,分布式计算系统举例采用参数节点和多个工作节点协同完成一复杂工程计算。当所述分布式计算系统应用在多租户(Multi-tenant)的场景中时,相关技术采用对计算资源进行分区、各分区内的计算资源用于处理一个任务的处理方式。然而这种方式会导致计算资源的利用率低下。
发明内容
鉴于以上所述相关技术的缺点,本申请的目的在于提供一种分布式任务处理方法及系统,用以克服上述相关技术中存在的计算资源的利用率低下的技术问题。
为实现上述目的及其他相关目的,本申请公开的第一方面提供一种分布式任务处理方法,包括:接收多个包含任务参数和用于指示分配执行聚合操作的计算资源的资源配置标识信息的第一数据包;其中,所述多个任务参数是由多个工作节点通过执行一分布式计算任务而得到的;依据各所述第一数据包中的资源配置标识信息动态分配对应同一分布式计算任务的计算资源,并利用所述计算资源对相应多个任务参数执行聚合操作以得到对应所述分布式计算任务的聚合参数;所述聚合参数用于供对应同一分布式计算任务的各工作节点进行数据处理。
本申请公开的第二方面提供一种分布式任务处理系统,包括:接收模块,用于接收多个包含任务参数和用于指示分配执行聚合操作的计算资源的资源配置标识信息的第一数据包;其中,所述任务参数是由多个工作节点通过执行一分布式计算任务而得到的;处理模块,用于依据所述第一数据包中的资源配置标识信息为所述第一数据包动态分配一计算资源,并由所述计算资源执行聚合操作得到聚合参数,以及将所述聚合参数发送至参数节点以供核验;反馈模块,用于将所述参数节点所发出的包含聚合参数的第二数据包反馈至相应的工作节点。
本申请公开的第三方面提供一种转发节点,包括:至少一个存储器,用于存储至少一个程序;至少一个处理器,与所述至少一个存储器连接,用于运行所述至少一个程序时以执行并实现如第一方面所述的分布式任务处理方法。
本申请公开的第四方面提供一种分布式任务处理方法,包括:生成对应于同一分布式计算任务的资源配置标识信息,所述资源配置标识信息用于指示转发节点分配执行聚合操作的计算资源;发送包含任务参数和所述资源配置标识信息的第一数据包;其中,所述任务参数是多个工作节点通过执行所述分布式计算任务而得到的;接收包含聚合参数的第二数据包;其中,所述聚合参数用于更新所述分布式计算任务的任务参数;其中,所述聚合参数为所述转发节点中的一计算资源依据所述第一数据包中的任务参数执行聚合操作后得到的。
本申请公开的第五方面提供一种分布式任务处理系统,包括:生成模块,用于生成对应于同一分布式计算任务的资源配置标识信息,所述资源配置标识信息用于指示转发节点分配执行聚合操作的计算资源;发送模块,用于发送包含任务参数和所述资源配置标识信息的第一数据包;其中,所述任务参数是多个工作节点通过执行所述分布式计算任务而得到的;接收模块,用于接收包含聚合参数的第二数据包;其中,所述聚合参数用于更新所述分布式计算任务的任务参数;其中,所述聚合参数为所述转发节点中的一计算资源依据所述第一数据包中的任务参数执行聚合操作后得到的。
本申请公开的第六方面提供一种工作节点,包括:至少一个存储器,用于存储至少一个程序;至少一个处理器,与所述至少一个存储器连接,用于运行所述至少一个程序时以执行并实现如第四方面所述的分布式任务处理方法。
本申请公开的第七方面提供一种分布式任务处理系统,包括:多个如第六方面所述的工作节点;至少一个如第三方面所述的转发节点,用于根据工作节点发送的包含任务参数的第一数据包的任务参数执行聚合操作得到聚合结果或聚合参数;参数节点,用于对聚合结果执行聚合操作得到聚合参数和/或对聚合参数执行核验操作。
本申请公开的第七方面提供一种计算机可读存储介质,存储有至少一个程序,所述程序被处理器执行时执行并实现如第一方面所述的分布式任务处理方法,或执行并实现如第四方面所述的分布式任务处理方法。
综上所述,本申请提供的分布式任务处理方法及系统,通过转发节点依据所接收的工作节点发送的第一数据包中的资源配置标识信息,为对应同一分布式计算任务动态分配计算资源,极大地提高了计算资源的利用率,提高了分布式任务的处理效率。
本领域技术人员能够从下文的详细描述中容易地洞察到本申请的其它方面和优势。下文的详细描述中仅显示和描述了本申请的示例性实施方式。如本领域技术人员将认识到的,本申请的内容使得本领域技术人员能够对所公开的具体实施方式进行改动而不脱离本申请所涉及发明的精神和范围。相应地,本申请的附图和说明书中的描述仅仅是示例性的,而非为限制性的。
附图说明
本申请所涉及的发明的具体特征如所附权利要求书所显示。通过参考下文中详细描述的示例性实施方式和附图能够更好地理解本申请所涉及发明的特点和优势。对附图简要说明书如下:
图1显示为本申请分布式任务处理架构在一实施例中的示意图。
图2A和图2B显示为本申请分布式任务处理架构在一实施例中的示意图。
图3显示为本申请分布式任务处理架构在一实施例中的原理示意图。
图4显示为本申请分布式任务处理方法在一实施例中的流程示意图。
图5显示为本申请分布式任务处理方法在另一实施例中的流程示意图。
图6显示为本申请分布式任务处理方法在又一实施例中的流程示意图。
图7显示为本申请分布式任务处理方法在又一实施例中的流程示意图。
图8显示为本申请分布式任务处理方法在又一实施例中的流程示意图。
图9显示为本申请分布式任务处理方法在又一实施例中的流程示意图。
图10显示为本申请分布式任务的异常处理方法在一实施例中的流程示意图。
图11显示为本申请分布式任务的异常处理方法在另一实施例中的流程示意图。
图12显示为本申请分布式任务处理系统在一实施例中的模块组成框图。
图13显示为本申请分布式任务处理系统在另一实施例中的模块组成框图。
图14显示为本申请分布式任务处理系统在再一实施例中的模块组成框图。
图15显示为本申请分布式任务的异常处理系统在一实施例中的模块组成框图。
图16显示为本申请分布式任务的异常处理系统在另一实施例中的模块组成框图。
图17显示为本申请工作节点在一实施例中的模块组成框图。
图18显示为本申请转发节点在一实施例中的模块组成框图。
图19显示为本申请参数节点在一实施例中的模块组成框图。
具体实施方式
以下由特定的具体实施例说明本申请的实施方式,熟悉此技术的人士可由本说明书所揭露的内容轻易地了解本申请的其他优点及功效。
在下述描述中,参考附图,附图描述了本申请的若干实施例。应当理解,还可使用其他实施例,并且可以在不背离本公开的精神和范围的情况下进行模块或单元组成、电气以及操作上的改变。下面的详细描述不应该被认为是限制性的,并且本申请的实施例的范围仅由公布的专利的权利要求所限定。这里使用的术语仅是为了描述特定实施例,而并非旨在限制本申请。
虽然在一些实例中术语第一、第二等在本文中用来描述各种元件、信息或参数,但是这些元件或参数不应当被这些术语限制。这些术语仅用来将一个元件或参数与另一个元件或参数进行区分。例如,第一数据格式可以被称作第二数据格式,并且类似地,第二数据格式可以被称作第一数据格式,而不脱离各种所描述的实施例的范围。第一数据格式和第二数据格式均是在描述一个数据格式,但是除非上下文以其他方式明确指出,否则它们不是同一个数据格式。取决于语境,比如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”。
再者,如同在本文中所使用的,单数形式“一”、“一个”和“该”旨在也包括复数形式,除非上下文中有相反的指示。应当进一步理解,术语“包含”、“包括”表明存在所述的特征、步骤、操作、元件、组件、项目、种类、和/或组,但不排除一个或多个其他特征、步骤、操作、元件、组件、项目、种类、和/或组的存在、出现或添加。此处使用的术语“或”和“和/或”被解释为包括性的,或意味着任一个或任何组合。因此,“A、B或C”或者“A、B和/或C”意味着“以下任一个:A;B;C;A和B;A和C;B和C;A、B和C”。仅当元件、功能、步骤或操作的组合在某些方式下内在地互相排斥时,才会出现该定义的例外。
随着数据的爆炸式增长和计算机性能的提高,分布式计算系统得到了愈加广泛的应用。一种较为常见的分布式计算系统的应用例如为分布式机器学习模型训练。以分布式机器学习模型的梯度训练为例,其分布式架构举例包括多个工作节点和参数节点。在一些示例中,该分布式架构执行机器学习模型的训练过程举例如下,多个工作节点负责训练各自的数据集获得梯度参数,并将梯度参数传输至参数节点,由参数节点据此更新全局的梯度参数。在另一些示例中,该分布式架构执行机器学习模型的训练过程举例如下,多个工作节点分担了一个模型中各部分的训练操作,利用数据集训练各部分而分别获得相应的梯度参数,并将梯度参数传输至参数节点,由参数节点据此更新全局的梯度参数。然而,随着传输的数据量增大,若只设置一个参数节点,则无法避免由此带来的传输带宽的瓶颈问题;而若设置多个参数节点,又会导致网络互联饱和、负载过大的问题。
有鉴于此,本申请提供一种分布式任务处理架构,能够用于实现单租户模式和多租户(Multi-tenant)模式下的分布式计算(Distributed Computing)任务。
请参阅图1、图2A-图2B,显示为本申请分布式任务处理架构在一实施例中的示意图。如图1所示,所述分布式任务处理架构内包括多个工作节点、至少一个转发节点和参数节点。
其中,多个工作节点用于执行一或多个分布式计算任务;各工作节点与转发节点通信连接,以将执行分布式计算任务得到的任务参数传输至转发节点;转发节点接收工作节点发送的任务参数并执行聚合操作得到聚合参数,并将聚合参数传输至参数节点以供核验;参数节点接收转发节点发送的聚合参数并执行核验操作。
当参数节点核验并确认聚合参数无误后,参数节点将聚合参数返回至转发节点,并由转发节点将聚合参数分发至各工作节点;各工作节点根据所接收的聚合参数执行新一轮次的分布式计算任务。
由此,所述分布式任务处理架构通过转发节点执行聚合操作而由参数节点执行核验操作,解决了传输带宽的瓶颈问题,提高了分布式计算任务的计算效率,有效降低了网络中的通信开销。
在需处理大规模分布式计算任务的情况下,工作节点的数量增多,为了避免转发节点与工作节点之间的传输带宽成为瓶颈,所述转发节点还可以进一步设置为一级转发节点和二级转发节点。
在一些实施例中,所述分布式任务处理架构内包括多个工作节点、多级转发节点、以及参数节点。示例性地,如图2A所示,所述多级转发节点包括多个一级转发节点、至少一个二级转发节点。其中,所述一级转发节点与多个工作节点通信连接,所述二级转发节点与各一级转发节点通信连接。与图1所示的实施例类似,一级转发节点接收工作节点执行分布式计算任务得到的任务参数并执行聚合操作得到聚合参数,并经由二级转发节点发送至参数节点,由参数节点执行核验操作。
在一些实施例中,一级转发节点执行聚合操作得到的是部分完成的中间结果(为了以示区分,下文将完成聚合的最终结果称为“聚合参数”,将部分完成的中间结果称为“聚合结果”);则二级转发节点接收一级转发节点发送的聚合结果再执行聚合操作,得到最终的聚合参数。
为了提高分布式计算任务处理效率、充分利用资源,二级转发节点还可以连接至少一个工作节点。由此,二级转发节点除了接收一级转发节点发送的聚合结果外,还接收与之连接的工作节点发送的任务参数,并将聚合结果和任务参数执行聚合操作得到最终的聚合参数。
随着所需处理的数据量增大,示例性地,所述分布式任务处理架构还可以例如为图2B所示的架构。如图所示,所述多级转发节点中还可以包括数据中心(Data Center),所述数据中心可以用于通信连接一级转发节点与二级转发节点并实现二者之间的通信传输、数据交互等功能。
应理解,如图2A和图2B所示的分布式任务处理架构在具体的应用场景中还可以根据实际需求进行调整,例如增加或删减一或多个工作节点等。但本领域技术人员清楚的是,在不脱离如图1所示的分布式任务处理架构的基础上所做出的任何变形与修饰均在本申请的保护范围之内。
为了便于理解,下面将对本申请中提及的术语进行说明。
所述工作节点负责分布式计算任务的参数计算,可以为单台计算机设备、或基于云架构的服务系统中被使用的实体设备或虚拟设备等。所述单台计算机设备可以是自主配置的可基于运算指令执行分布式计算任务的计算机设备,其可位于私有机房或位于公共机房中的某个被租用的机位中。其中,所述云架构的服务系统包括公共云服务端与私有云服务端,其中,所述公共或私有云服务端包括IaaS(Infrastructure-as-a-Service,基础设施即服务)、PaaS(Platform-as-a-Service,平台即服务)、以及SaaS(Software-as-a-Service,软件即服务)等。所述私有云服务端例如阿里云计算服务平台、亚马逊云计算服务平台、百度云计算平台、腾讯云计算平台等。所述工作节点也可以为虚拟设备,其中,工作节点所配置的运算指令为可由虚拟设备执行的软件程序,所述工作节点的实体或虚拟设备被配置于分布式架构/系统中。在一些实施例中,根据工作节点实际运行的运算指令的硬件装置,上述各装置可位于单台服务器上、或位于多台服务器中并通过各服务器之间的数据通信完成该工作节点所执行的运算指令。
所述转发节点具备聚合计算和转发功能。示例性地,所述转发节点例如为可编程交换机(Programmable Switch)、或内嵌有FPGA的网络专用设备,为其连接的工作节点和参数节点提供通路,并接收工作节点发送的数据执行相应的计算处理。由于服务器通常分布相对密集,示例性地,所述工作节点与转发节点以TOR方式连接,即服务器机柜上接入交换机,使得各服务器的网口均接入至机柜上部的交换机上,由此能够简化布线,便于维护和管理。
所述参数节点负责管理参数的存储和更新。在一些实施例中,所述参数节点还具备聚合计算和核验功能,以确保聚合得到的结果的正确性。示例性地,所述参数节点例如为一台服务器或是由多台服务器组成的集群。
所述通信连接为不同节点之间基于一定的通信协议或别的匹配规则建立连接并实现数据传输、数据交换的连接方式,包括各节点之间的通过标识信息配对而建立的连接。所述通信协议即为节点之间实现通信或服务需遵循的规则,所述协议定义了数据单元的格式,数据单元的连接方式、数据的发送及接收时序,以确保数据在节点之间识别及传输;所述通信协议包括TCP/IP协议等。所述标识信息用于确定不同节点的属性,以确定节点之间的连接为正确对应,继而实现后续的节点之间的数据传输。
所述单租户模式指的是所述分布式处理架构用于处理同一个分布式计算任务,即所有工作节点均执行一项分布式计算任务的计算。相应地,所述多租户模式指的是所述分布式处理架构中能够同时处理多个分布式计算任务,即工作节点被划分成多个集群,同一集群下的各工作节点执行同一分布式计算任务,由此能够提高计算效率,避免了计算资源的浪费。
示例性地,所述分布式计算任务包括利用分布式计算的方式对机器学习模型进行梯度训练的计算任务。其中,所述机器学习模型为利用机器学习算法得到的模型,例如分类模型等。在该分布式计算任务中,各工作节点各自被分配完整训练数据集的子集,并通过多个轮次的迭代训练以完成一机器学习模型的梯度更新。
为了便于清楚地阐述原理,本文均以所述分布式任务处理架构处理一基于机器学习模型训练的分布式计算任务(下文简称“任务”)为例;同时,除非特别指出,本申请实施例中均以各工作节点用于执行一个任务(即单租户模式)为例。
为了清楚地展示分布式任务处理架构下各节点及节点之间的数据处理和传输流程,下面将分别以不同的执行主体为切入角度来进行阐述。
实施例一
请参阅图3和图4,图3显示为本申请分布式任务处理架构在一实施例中的原理示意图,图4显示为本申请分布式任务处理方法在一实施例中的流程示意图。以单租户模式为例,当工作节点执行当前轮次的训练任务得到任务参数(例如训练子集得到的梯度值)后,如图3和图4所示,工作节点执行步骤S101。
在步骤S101中,发送包含任务参数和用于指示执行聚合操作的节点的标识信息的第一数据包;其中,所述标识信息用于指示由转发节点或参数节点对所述任务参数执行聚合操作;其中,所述任务参数是通过执行一分布式计算任务而得到的。
在此,各工作节点分别发送包含任务参数的数据包(Packet)至转发节点。为了以示区分,将工作节点发出的包含任务参数的数据包称为第一数据包,将经过聚合操作后得到的包含聚合参数的数据包称为第二数据包。
需要说明的是,所述“第一”与“第二”仅为了区分数据包是否完成聚合,尽管在实际场景中数据包中的其他信息(例如源端口号、目的端口号等信息)会随着传输过程而改变,但并不作为区分第一数据包和第二数据包的依据;而是由数据包中承载的参数数据(任务参数或聚合参数)来区别第一数据包和第二数据包。
其中,所述任务参数为工作节点执行分布式计算任务过程中计算得到的参数,例如为训练深度神经网络模型得到的梯度值。当然并不局限于此,示例性地,当所述分布式任务处理架构用于执行基于分布式架构的隐私数据的运算任务时,例如为联邦学习(Federated Learning)的训练任务,所述任务参数还可以是各工作节点加密处理后的参数等。
其中,所述第一数据包中还包含用于指示执行聚合操作的节点的标识信息。当所述标识信息表示为由转发节点执行聚合操作时,转发节点接收所述第一数据包后执行聚合操作;当所述标识信息表示为由参数节点执行聚合操作时,转发节点接收所述第一数据包并转发至参数节点,由参数节点执行聚合操作。正常情况下(此处的“正常情况”指的是数据传输中没有发生通信链路中断、网络延迟等情况而导致丢包等问题),工作节点发送的第一数据包中的标识信息为指示由转发节点执行聚合操作。
在一些实施例中,所述工作节点在封装形成数据包时将所述标识信息添加在数据包的头部(Header)中。例如,以头部中的一个或多个标志(Flag)来组成所述标识信息。示例性地,所述用于指示执行聚合操作的节点的标识信息以“0”或“1”表示:当所述标识信息为“0”时表示由转发节点执行聚合操作,当所述标识信息为“1”时表示由参数节点执行聚合操作,转发节点仅执行转发操作。
应理解,上述实施例仅为原理性的示例而非限制,在具体的应用场景中所述标识信息的形式或类型可以根据实际的需求改变,例如还可以将所述表示为由多个比特(Bit)表示的字段。
在一些实施例中,所述第一数据包中还包含节点标识信息,以供执行聚合操作的节点确认当前任务由哪些工作节点协同执行。在此,所述工作节点在第一数据包的头部中添加节点标识信息,当转发节点或参数节点接收并解析所述第一数据包时,能够依据所述节点标识信息获知所述第一数据包对应的任务总共由多少个工作节点执行。
在一些实施例中,所述节点标识信息还可以用于供确认当前接收的数据包源自哪个工作节点。示例性地,所述节点标识信息由多个比特的字段表示。例如当前任务由4个工作节点执行时,所述节点标识信息例如分别为:0001、0010、0100、1000,其中每一位的“0”或“1”分别表示相应的工作节点是否发送了第一数据包。则转发节点或参数节点通过所述节点标识信息即可获知当前任务由4个工作节点执行,此外还能够获知当前已经接收到了哪些工作节点发送的数据包、尚需等待接收哪些工作节点发送数据包、以及当前接收的第一数据包来源自哪一工作节点等。
所述工作节点发出所述第一数据包后,所述转发节点接收所述第一数据包并执行聚合操作。请参阅图5,显示为本申请分布式任务处理方法在另一实施例中的流程示意图。如图3和图5所示,所述转发节点执行步骤S201和步骤S202。
在步骤S201中,接收多个包含任务参数和用于指示执行聚合操作的节点的标识信息的第一数据包。
在此,所述转发节点接收多个工作节点发送的第一数据包,通过解析提取其中的任务参数。正常情况下,工作节点发送的第一数据包中的标识信息指示由转发节点执行聚合操作。
在步骤S202中,依据所述第一数据包中的标识信息对各任务参数执行聚合操作得到聚合参数,以及将所述聚合参数发送至参数节点以供核验。
在此,转发节点依据用于指示转发节点执行聚合操作的节点的标识信息、任务标识信息、以及节点标识信息中的一种或多种标识信息,对同一任务下的各工作节点发送的任务参数执行聚合操作,得到聚合参数。
其中,所述聚合操作指的是对各任务参数进行整合计算的操作。例如,对各任务参数进行累积、叠加、合并、均值、或汇总等的运算操作。例如,所述聚合操作为计算各节点提供的梯度值(对应于任务参数)的求和,由此得到梯度值的总和作为所述聚合参数。又如,所述聚合操作为对各节点提供的基于多方安全计算得到的加密数值进行求和等。经聚合操作得到的所述聚合参数用于供对应于同一分布式计算任务的各工作节点进行数据处理,例如,各工作节点根据接收到的由转发节点或参数节点更新的梯度值(对应于聚合参数),对下一轮次的分布式计算任务进行梯度更新。
在一些实施例中,所述转发节点可以在一任务下的全部第一数据包均到达之后,再提取各第一数据包中的任务参数来执行聚合操作。在一些实施例中,由于同一任务下的各第一数据包的到达先后顺序不一,因此,转发节点可以依据先到达的部分第一数据包聚合得到部分的聚合结果,当后续第一数据包到达时,再将后续第一数据包中的任务参数与已得到的部分的聚合结果进行聚合,得到最终的聚合参数。
在得到聚合参数后,转发节点将所述聚合参数发送至参数节点以供核验。当参数节点接收到转发节点发送的第一数据包后,所述参数节点执行核验操作。请参阅图6,显示为本申请分布式任务处理方法在又一实施例中的流程示意图。如图3和图6所示,所述参数节点执行步骤S301和步骤S302。
在步骤S301中,接收包含有聚合参数的第二数据包;其中,所述聚合参数是转发节点通过对多个第一数据包中的任务参数执行聚合操作而得到的,所述第一数据包中包含用于指示由所述转发节点执行聚合操作的标识信息。
在此,参数节点接收转发节点发送的第二数据包,所述第二数据包中包含有经转发节点执行聚合操作后得到的聚合参数,具体流程请参照前述实施例,此处不再赘述。
在步骤S302中,对所接收的第二数据包执行核验操作,并将核验后的第二数据包反馈至转发节点,以供所述转发节点将包含聚合参数的第二数据包反馈至相应的工作节点。
在此,参数节点对所接收的第二数据包执行核验操作。所述核验操作包括以下至少一种:核验聚合操作是否遗漏了工作节点提供的任务参数,以及核验聚合参数是否溢出。
其中,所述核验聚合操作是否遗漏的操作指的是核验某一任务的聚合参数是否确实对应于相应数量的工作节点。例如,当一任务由四个工作节点协同完成时,所述参数节点核验转发节点聚合的聚合参数是否基于完整的、由该四个工作节点发出的任务参数聚合而得到的。
其中,所述核验聚合参数是否溢出是指核验转发节点聚合得到的聚合参数是否超出了预定的数据表示范围。举例而言,工作节点执行分布式计算时得到的数据通常为浮点数(Floating Point Number)的数据格式,称为第一数据格式;而转发节点能够处理的数据格式为整数(Integer),称为第二数据格式。相较于浮点数而言,整数的数据表示范围是有限的(2-15~215),因此,有时会出现聚合得到的结果超过了转发节点所能表示的数据表示范围的情况。
在核验聚合操作有遗漏的情况下,所述参数节点则不返回任何数据包,直至工作节点因未在预定时间内接收到第二数据包而检测为丢包并重新发送第一数据包。承前所述,当工作节点检测到丢包时重新发送第一数据包,转发节点仅执行对该重新发送的第一数据包的转发操作,而聚合操作由参数节点完成。
在核验聚合操作和聚合参数正确的情况下,所述参数节点将核验后的第二数据包返回至转发节点,转发节点接收经核验的第二数据包后执行分发操作。如图3和图5所示,所述转发节点继而执行步骤S203。
在步骤S203中,将所述参数节点所发出的包含聚合参数的第二数据包反馈至相应的工作节点。
在此,转发节点接收参数节点发送的包含聚合参数的第二数据包,并将所述第二数据包转发至相应的工作节点。其中,所述转发节点可以利用例如组播(Multicast)的方式,将所述第二数据包分发至对应的执行同一任务的各工作节点。
工作节点接收所述第二数据包后提取其中的聚合参数,并据此执行下一轮次的任务。如图3和图4所示,所述工作节点继而执行步骤S102。
在步骤S102中,接收包含聚合参数的第二数据包;其中,所述聚合参数用于供对应同一分布式计算任务的各工作节点进行数据处理。
在此,工作节点接收包含聚合参数的第二数据包,并依据所述第二数据包中的聚合参数进行数据处理。其中,所述数据处理指的是工作节点依据所述聚合参数对相应的任务进行参数更新、替换等操作的过程。例如,所述工作节点根据所述第二数据包中的平均梯度值(对应于聚合参数)进行梯度更新,从而以新的梯度值执行下一轮次的任务。又如,所述工作节点根据所述第二数据包中的加密值(对应于聚合参数)进行解密处理,从而依据解密后得到的值执行下一轮次的多方安全计算。
由此,所述工作节点、转发节点、以及参数节点系统完成了一个轮次的分布式计算任务。
实施例二
上述实施例为单租户模式下各节点的工作流程。而多租户模式下(即工作节点同时执行多个任务),执行聚合操作的节点需获知当前接收的数据包对应的是哪一任务,以防止混淆不同任务的参数。因此,在上述任意实施例或其任意组合的基础上,在一些实施例中,所述工作节点发出的所述第一数据包中还包含任务标识信息,以供执行聚合操作的节点确认所述第一数据包对应的分布式计算任务。
在此,所述工作节点在第一数据包的头部中添加任务标识信息,当转发节点或参数节点接收并解析所述第一数据包时,能够依据所述任务标识信息获知当前第一数据包对应的任务。示例性地,所述任务标识信息例如为工作节点为各任务分配的序号(Job ID)。应理解,每一任务的任务标识信息是唯一的。
实施例三
上述实施例是对正常情况(此处的正常指的是未发生因通信链路中断、网络延迟等情况造成丢包问题的情况)下的流程进行说明。而在实际的场景中,可能会面临通信链路中断、网络延迟等情况造成的丢包问题。
因此,在上述任意实施例或其任意组合的基础上,在一些实施例中,还包括在发送所述第一数据包期间执行丢包检测,以及在检测到丢包时重新发送所述第一数据包。
在此,以如图3所示为例,所述工作节点在发送第一数据包之时起开始计时,当计时数据达到预设阈值时仍未接收到返回的数据包,则所述工作节点判断存在丢包情况,则重新发送包含任务参数的第一数据包。当工作节点接收到返回的第二数据包时,工作节点将计时归零,并在下一次发送数据包时重新开始计时。
在另一些具体示例中,所述工作节点以连续的N个第一数据包为一组,并标记发出顺序,在依顺序发出该组的第一数据包期间,监听对应各第一数据包的反馈信息,根据所接收到的该组反馈信息的数量和/或顺序,确定该组的丢包情况,并将确定丢包的第一数据进行重发。
为了供转发节点或参数节点识别其所接收的第一数据包是否为因丢包而重发的数据包,在一些实施例中,工作节点在重新发送第一数据包时,向第一数据包中添加重传标识信息。所述重传标识信息用于供转发节点和参数节点获知相应的第一数据包为重新发送的数据包,从而与正常情况下工作节点发送的第一数据包区分开来。
在一些实施例中,工作节点重新发送的第一数据包中用于指示执行聚合操作的节点的标识信息表示为由所述参数节点执行聚合操作,以供所述转发节点根据所述标识信息执行对所述第一数据包的转发操作,以及所述参数节点对所述任务参数执行聚合操作。
在此,当转发节点所接收的第一数据包中的标识信息表示由参数节点执行聚合操作时,转发节点对所述第一数据包执行转发操作,由参数节点执行聚合操作。为此,如图7所示,参数节点还执行步骤S401和步骤S402。
在步骤S401中,接收多个包含任务参数和用于指示由参数节点执行聚合操作的标识信息的第一数据包。
在此,各工作节点发送包含任务参数的第一数据包,所述第一数据包中用于指示执行聚合操作的节点的标识信息表示为由参数节点执行聚合操作。转发节点接收所述第一数据包,并依据用于指示由参数节点执行聚合操作的标识信息和重传标识信息中的一种或多种执行转发操作;参数节点接收转发节点转发的第一数据包。
在步骤S402中,依据所述第一数据包中的标识信息对各任务参数执行聚合操作得到聚合参数,以及发送包含所述聚合参数的第二数据包至转发节点,以供所述转发节点将包含聚合参数的第二数据包反馈至相应的工作节点。
在此,参数节点依据任务标识信息、节点标识信息、用于指示由参数节点执行聚合操作的标识信息、以及重传标识信息中的一种或多种标识信息对各第一数据包中的任务参数执行聚合操作,得到聚合参数。在得到聚合参数后,所述参数节点将包含聚合参数的第二数据包发送至转发节点,转发节点再将其分发至各工作节点。具体流程请参照前述实施例,此处不再赘述。
实施例四
在上述任意实施例或其任意组合的基础上,为了提高聚合操作的效率,所述转发节点还可以将内部空间进行分区(Partition)处理,其中每一分区为一计算资源,各计算资源用于执行任务参数的聚合操作。所述计算资源指的是具有计算处理能力的单元,也可称为聚合器(Aggregator)。
由此,当接收到第一数据包时,所述转发节点在各计算资源中确定一计算资源来执行聚合操作。例如,所述转发节点可以按照计算资源的索引(Index)轮询以确定可用的计算资源。又如,所述转发节点可以随机访问以随机确定一计算资源来执行聚合操作。
为了供转发节点在内部分配计算资源来执行相应的聚合操作,如图8所示,工作节点还执行步骤S501和步骤S502。
在步骤S501中,生成对应于同一分布式计算任务的资源配置标识信息,所述资源配置标识信息用于指示转发节点分配执行聚合操作的计算资源。
在此,所述工作节点为其执行的分布式计算任务生成一资源配置标识信息。示例性地,所述资源配置标识信息例如为工作节点对任务标识信息与计算资源的序号执行哈希(Hash)后得到的。需要说明的是,所述工作节点针对同一任务添加的资源配置标识信息相同,以确保执行同一任务的工作节点发送的第一数据包由同一计算资源执行聚合操作。
在步骤S502中,发送包含任务参数和所述资源配置标识信息的第一数据包。
在此,所述工作节点将所述资源配置标识信息添加至所述第一数据包中,并发送至转发节点,以供转发节点根据所述资源配置标识信息分配相应的计算资源来执行聚合操作。
所述转发节点执行聚合操作得到聚合参数后,发送第二数据包至参数节点进行核验;当参数节点向转发节点返回经核验的第二数据包后,转发节点向各工作节点进行分发。为此,如图8所示,工作节点还执行步骤S503:接收包含聚合参数的第二数据包。后续流程请参照前述实施例,此处不再赘述。
实施例五
为了尽可能充分利用计算资源,避免上述划分区域的静态分配方式存在的资源浪费以及分配不均衡的问题,在上述任意实施例或其任意组合的基础上,在一些实施例中,转发节点还可以利用动态分配的方式为第一数据包分配计算资源。
由此,转发节点接收所述包含任务参数和所述资源配置标识信息的第一数据包后,如图9所示,执行步骤S601和步骤S602。
在步骤S601中,接收多个包含任务参数和用于指示分配执行聚合操作的计算资源的资源配置标识信息的第一数据包。
在此,转发节点接收多个工作节点发送的包含任务参数的第一数据包,所述第一数据包中还包含用于指示分配执行聚合操作的计算资源的资源配置标识信息。具体流程请参照前述实施例,此处不再赘述。
在步骤S602中,依据各所述第一数据包中的资源配置标识信息动态分配对应同一分布式计算任务的计算资源,并利用所述计算资源对相应多个任务参数执行聚合操作以得到对应所述分布式计算任务的聚合参数。
在此,所述转发节点依据所接收的第一数据包中的资源配置标识信息,为该第一数据包动态分配一计算资源来执行聚合操作。所述转发节点还可以依据所述第一数据包中的任务标识信息确定该计算资源对应的任务,并确定当前任务下共有多少个节点,以确定需对多少个第一数据包执行聚合操作,从而在执行聚合操作期间保持该计算资源为占用状态。
示例性地,所述转发节点动态分配计算资源的方式包括步骤S611和在步骤S612(未予以图示)。
在步骤S611中,依据各所述第一数据包中的资源配置标识信息与各计算资源的映射关系,确定对应同一分布式计算任务的各第一数据包的计算资源。
其中,所述映射关系表示的是资源配置标识信息与计算资源的一一对应关系。例如,所述资源配置标识信息为计算资源在全部计算资源的序号,所述转发节点能够据此直接确定对应的计算资源。示例性地,所述映射关系是通过对所述资源配置标识信息进行散列计算后确定的。例如,所述资源配置标识信息为工作节点对任务标识信息与计算资源的序号执行哈希(Hash)后得到的。
在步骤S612中,利用所分配的计算资源执行对应同一分布式计算任务的聚合操作,以得到聚合参数。
在此,转发节点将第一数据包分配至一计算资源后,将后续接收的对应于同一任务的其他节点发出的第一数据包均分配至该计算资源,以由该计算资源提取第一数据包中的任务参数,并对多个任务参数执行聚合操作并得到聚合参数。
当获得聚合参数后,转发节点将聚合参数发送至参数节点以供核验,具体流程请参照前述实施例,此处不再赘述。
实施例六
应理解,上述实施例动态分配的方式同样能够应用在多租户模式下。然而,多租户模式下当转发节点动态分配计算资源时,可能会出现多个任务被分配至同一个计算资源的情况,由此会导致计算资源冲突的问题(例如哈希碰撞问题)。
因此,在上述任意实施例或其任意组合的基础上,在一些实施例中,当为一第一数据包相应的分布式计算任务动态分配的计算资源已被占用时,转发节点在所述第一数据包中标记冲突标识信息并执行转发操作,以供参数节点依据所述冲突标识信息对所转发的第一数据包中的任务参数执行聚合操作得到聚合参数。
在此,所述转发节点转发该第一数据包至参数节点;相应地,所述参数节点还用于接收转发节点发出的包含冲突标识信息的第一数据包,并依据所述冲突标识信息对所转发的第一数据包中的任务参数执行聚合操作得到聚合参数。在此,所述参数节点依据所述冲突标识信息获知当前接收的第一数据包为因冲突而被转发节点转发,并依据所述第一数据包中的任务标识信息、节点标识信息等中的一种或多种标识信息执行聚合操作。具体流程请参照前述实施例,此处不再赘述。
在得到聚合参数后,参数节点将包含聚合参数的第二数据包发送给转发节点。在一些实施例中,为了供转发节点识别当前接收的数据包是工作节点发送的第一数据包还是参数节点发送的第二数据包,所述参数节点在返回经核验的第二数据包时,在所述第二数据包中添加核验标识信息;当转发节点解析到数据包中的核验标识信息时,即能确定当前接收的数据包为参数节点发送的经核验的第二数据包。
在一些实施例中,为了防止下一次的计算资源分配仍出现冲突的情况,所述参数节点还用于依据所述冲突标识信息对资源配置标识信息进行更新,并发送包含聚合参数和更新后的资源配置标识信息的第二数据包,以供转发节点将所述第二数据包反馈至相应的工作节点。
由此,转发节点还执行如下步骤:接收所述参数节点发送的包含聚合参数的第二数据包,并将所述第二数据包反馈至相应的工作节点。具体流程请参照前述实施例,此处不再赘述。
实施例七
在上述任意实施例或其任意组合的基础上,在一些实施例中,当确定所述计算资源无需占用时,所述转发节点释放相应的计算资源。
示例性地,所述转发节点完成聚合操作得到聚合参数后,并准备发送包含聚合参数的第二数据包至参数节点时,即释放相应的计算资源。
示例性地,所述转发节点接收到参数节点返回的包含聚合参数的第二数据包,并准备分发给工作节点时,即释放相应的计算资源。
示例性地,当所述转发节点接受到一任务对应的部分工作节点发送的第一数据包后(此时已占用一计算资源),又接收到同一任务对应的另一个工作节点因丢包而重新发送的第一数据包,此时转发节点将重新发送的第一数据包转发至参数节点,并释放相应的计算资源。此时,所述转发节点同时将之前接收到的部分工作节点发送的第一数据包中的任务参数、或根据接收到的部分工作节点发送的第一数据包得到的聚合结果也一并转发至工作节点,由参数节点执行聚合操作得到聚合参数。
实施例八
在上述实施例中,所述工作节点发送的第一数据包中的任务参数均为第二数据格式。承前所述,当转发节点对第二数据格式的任务参数执行聚合操作时,有时会出现聚合得到的结果超过了转发节点所能表示的数据表示范围的情况,由此参数节点则会核验聚合参数溢出。
为了提供聚合参数溢出情况下的解决机制,在上述任意实施例或其任意组合的基础上,在核验聚合参数溢出的情况下,如图10所示,所述参数节点执行步骤S701、步骤S702以及步骤S703。
在步骤S701中,接收包含聚合参数的第二数据包;其中,所述聚合参数是转发节点通过对多个工作节点发送的包含第二数据格式的任务参数的第一数据包执行聚合操作得到的。
在此,按照前述实施例中的流程,所述参数节点接收转发节点发送的包含聚合参数的第二数据包。其中,工作节点发送的第一数据包中的任务参数为第二数据格式(即整数),由此转发节点执行聚合操作得到的聚合参数也为第二数据格式。
在步骤S702中,当检测到所述聚合结果溢出时,发出异常重传指令;其中,所述异常重传指令用于指示工作节点执行数据格式转化。
在此,所述参数节点检测所接收的聚合参数是否溢出。示例性地,当转发节点聚合得到的聚合参数溢出时,所述聚合参数的值表示为所述转发节点能够处理的数据格式的最大范围(例如为231)。因此,当所述参数节点检测到所述聚合参数溢出时,向当前对应的任务下的工作节点发出异常重传指令,以指示所述工作节点重新发送第一数据包以及由工作节点在重新发送时将任务参数转化数据格式,以避免转发节点执行聚合操作出现溢出的情况。
在一些实施例中,所述异常重传指令例如为包含用于指示工作节点进行重传操作的标识信息的数据包;所述参数节点发出所述数据包并由转发节点转发至工作节点,工作节点在接收到所述数据包后,通过解析识别其中的标识信息获得所述异常重传指令。
工作节点在接收到参数节点的异常重传指令后,重新发送第一数据包。为此,如图11所示,所述工作节点还执行步骤S801。
在步骤S801中,当接收到异常重传指令时,发送包含第一数据格式的任务参数和用于指示由参数节点执行聚合操作的标识信息的第一数据包;其中,所述异常重传指令用于指示工作节点执行数据格式转化。
在此,所述工作节点接收所述异常重传指令后,重新发送包含任务参数的第一数据包。此时,由于第二数据格式的任务参数会导致聚合得到的聚合参数溢出,因此工作节点在重新发送第一数据包时,将第二数据格式(整数)的任务参数转化为第一数据格式(浮点数)。而由于转发节点无法处理第一数据格式的任务参数,因此,所述工作节点重新发送的第一数据包中的标识信息表示为由参数节点执行聚合操作。
当所述参数节点接收到工作节点重新发送的第一数据包后,所述参数节点执行步骤S703。
在步骤S703中,接收工作节点基于异常重传指令重新发送的第一数据包;依据所述第一数据包中的标识信息对各第一数据格式的任务参数执行聚合操作得到包含聚合参数的第二数据包,并反馈至各工作节点。
在此,所述参数节点接收工作节点重新发送的第一数据包,并依据所述第一数据包中的用于指示执行聚合操作的节点的标识信息、任务标识信息、节点标识信息、以及重传标识信息中的一种或多种标识信息对第一数据格式的任务参数执行聚合操作。其中,参数节点执行聚合操作的流程请参照前述实施例,此处不再赘述。
当参数节点执行聚合操作获得第一数据格式的聚合参数后,将包含所述聚合参数的第二数据包发送至转发节点,由转发节点分发至各工作节点。
为此,所述工作节点执行步骤S802:接收包含聚合参数的第二数据包。具体流程请参照前述实施例,此处不再赘述。
实施例九
本申请实施例还提供一种分布式任务处理系统,用于执行前述实施例中所述的步骤S101~S102对应的分布式任务处理方法,具备相应的功能模块并能实现相同的技术效果。
请参阅图12,显示为本申请分布式任务处理系统在一实施例中的模块组成框图。如图12所示,所述分布式任务处理系统包括发送模块101和接收模块102。
其中,所述发送模块用于发送包含任务参数和用于指示执行聚合操作的节点的标识信息的第一数据包;其中,所述标识信息用于指示由转发节点或参数节点对所述任务参数执行聚合操作;所述任务参数是通过执行一分布式计算任务而得到的。
所述接收模块用于接收包含聚合参数的第二数据包;其中,所述聚合参数用于供对应同一分布式计算任务的各工作节点进行数据处理;其中,所述聚合参数是由所述转发节点或参数节点依据所述第一数据包中的任务参数执行聚合操作后得到的。
在一些实施例中,所述分布式任务处理系统还包括生成模块,用于生成对应于同一分布式计算任务的资源配置标识信息,所述资源配置标识信息用于指示转发节点分配执行聚合操作的计算资源。
相应地,所述发送模块还用于发送包含任务参数和所述资源配置标识信息的第一数据包;其中,所述任务参数是多个工作节点通过执行所述分布式计算任务而得到的。
相应地,所述接收模块还用于接收包含聚合参数的第二数据包;其中,所述聚合参数用于更新所述分布式计算任务的任务参数;其中,所述聚合参数为所述转发节点中的一计算资源依据所述第一数据包中的任务参数执行聚合操作后得到的。
在实施例中,为简化说明,所述分布式任务处理系统中的发送模块和接收模块可以通过执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以通过专用硬件与计算机指令的组合来实现上述图4所示实施例中的分布式任务处理方法,此处不再赘述。
实施例十
本申请实施例还提供一种分布式任务处理系统,用于执行前述实施例步骤S201~S203对应的分布式任务处理方法,具备相应的功能模块并能实现相同的技术效果。
请参阅图13,显示为本申请分布式任务处理系统在一实施例中的模块组成框图。如图13所示,所述分布式任务处理系统包括接收模块201、处理模块202、以及反馈模块203。
其中,所述接收模块用于接收多个包含任务参数和用于指示执行聚合操作的节点的标识信息的第一数据包,所述标识信息用于指示由转发节点或参数节点对所述任务参数执行聚合操作;其中,所述多个任务参数是由多个工作节点通过执行一分布式计算任务而得到的。
所述处理模块用于依据所述第一数据包中的标识信息对各任务参数执行聚合操作得到聚合参数,以及将所述聚合参数发送至参数节点以供核验。
所述反馈模块用于将所述参数节点所发出的包含聚合参数的第二数据包反馈至相应的工作节点。
在一些实施例中,所述接收模块还用于接收多个包含任务参数和用于指示分配执行聚合操作的计算资源的资源配置标识信息的第一数据包;其中,所述任务参数是由多个工作节点通过执行一分布式计算任务而得到的。
相应地,所述处理模块还用于依据所述第一数据包中的资源配置标识信息为所述第一数据包动态分配一计算资源,并由所述计算资源执行聚合操作得到聚合参数,以及将所述聚合参数发送至参数节点以供核验。
相应地,所述反馈模块还用于将所述参数节点所发出的包含聚合参数的第二数据包反馈至相应的工作节点。
在实施例中,为简化说明,所述分布式任务处理系统中的发送模块和接收模块可以通过执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以通过专用硬件与计算机指令的组合来实现上述图5所示实施例中的分布式任务处理方法,此处不再赘述。
实施例十一
本申请还提供一种分布式任务处理系统,用于执行前述的步骤S301~S302对应的分布式任务处理方法,具备相应的功能模块并能实现相同的技术效果。
请参阅图14,显示为本申请分布式任务处理系统在一实施例中的模块组成框图。如图14所示,所述分布式任务处理系统包括接收模块301和处理模块302。
其中,所述接收模块用于接收包含有聚合参数的第二数据包;其中,所述聚合参数是转发节点通过对多个第一数据包中的任务参数执行聚合操作而得到的,所述第一数据包中包含用于指示由所述转发节点执行聚合操作的标识信息;其中,所述多个任务参数是由多个工作节点通过执行一分布式计算任务而得到的。
所述处理模块用于对所接收的第二数据包执行核验操作,并将核验后的第二数据包反馈至转发节点,以供所述转发节点将包含聚合参数的第二数据包反馈至相应的工作节点。
在实施例中,为简化说明,所述分布式任务处理系统中的发送模块和接收模块可以通过执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以通过专用硬件与计算机指令的组合来实现上述图6所示实施例中的分布式任务处理方法,此处不再赘述。
实施例十二
本申请还提供一种分布式任务的异常处理系统,用于执行前述步骤S701~S703对应的分布式任务的异常处理方法,具备相应的功能模块并能实现相同的技术效果。
请参照图15,显示为本申请分布式任务的异常处理系统在一实施例中的模块组成框图。如图15所示,所述异常处理系统包括接收模块401、检测模块402、以及处理模块403。
其中,所述接收模块用于接收包含聚合结果的第二数据包;其中,所述聚合结果是转发节点通过对多个工作节点发送的包含第二数据格式的任务参数的第一数据包执行聚合操作得到的;其中,所述任务参数是工作节点通过执行一分布式计算任务而得到的。
所述检测模块用于当检测到所述聚合结果溢出时,发出异常重传指令;其中,所述异常标识信息用于供工作节点对任务参数进行调整并执行重传操作。
所述处理模块用于接收工作节点基于异常重传指令重新发送的第一数据包,其中,所述重新发送的第一数据包中包含第一数据格式的任务参数和用于指示由参数节点执行聚合操作的标识信息;依据所述第一数据包中的标识信息对各第一数据格式的任务参数执行聚合操作得到包含聚合参数的第二数据包,并反馈至各工作节点。
在实施例中,为简化说明,所述分布式任务处理系统中的发送模块和接收模块可以通过执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以通过专用硬件与计算机指令的组合来实现上述图10所示实施例中的分布式任务的异常处理方法,此处不再赘述。
实施例十三
本申请还提供一种分布式任务的异常处理系统,用于执行前述步骤S801~S802对应的分布式任务的异常处理方法,具备相应的功能模块并能实现相同的技术效果。
请参照图16,显示为本申请分布式任务的异常处理系统在一实施例中的模块组成框图。如图16所示,所述异常处理系统包括发送模块501和接收模块502。
其中,所述发送模块用于当接收到异常重传指令时,发送包含第一数据格式的任务参数和用于指示由参数节点执行聚合操作的标识信息的第一数据包;其中,所述异常重传指令用于指示工作节点执行数据格式转化;所述任务参数是通过执行一分布式计算任务得到的;
所述接收模块用于接收包含聚合参数的第二数据包;其中,所述聚合参数用于供对应同一分布式计算任务的各工作节点进行数据处理;其中,所述聚合参数是由参数节点依据所述第一数据包执行聚合操作后得到的。
在实施例中,为简化说明,所述分布式任务处理系统中的发送模块和接收模块可以通过执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以通过专用硬件与计算机指令的组合来实现上述图11所示实施例中的分布式任务处理方法,此处不再赘述。
实施例十四
本申请还提供一种工作节点。请参照图17,显示为本申请工作节点在一实施例中的模块组成框图。如图17所示,所述工作节点包括至少一个存储器601和至少一个处理器602。
其中,所述至少一个存储器用于存储至少一个程序;在实施例中,所述存储器可包括高速随机存取存储器,并且还可包括非易失性存储器,例如一个或多个磁盘存储设备、闪存设备或其他非易失性固态存储设备。在某些实施例中,存储器还可以包括远离一个或多个处理器的存储器,例如经由RF电路或外部端口以及通信网络访问的网络附加存储器,其中所述通信网络可以是因特网、一个或多个内部网、局域网、广域网、存储局域网等,或其适当组合。存储器控制器可控制设备的诸如CPU和外设接口之类的其他组件对存储器的访问。
在一些实施例中,所述至少一个处理器与所述至少一个存储器连接,用于运行所述至少一个程序时以执行并实现如上述分布式任务处理方法所描述的至少一种实施例,比如图4对应描述的实施例。在实施例中,所述处理器可操作地与存储器和/或非易失性存储设备耦接。更具体地,处理器可执行在存储器和/或非易失性存储设备中存储的指令以在计算设备中执行操作,诸如生成图像数据和/或将图像数据传输到电子显示器。如此,处理器可包括一个或多个通用微处理器、一个或多个专用处理器、一个或多个现场可编程逻辑阵列、或它们的任何组合。
实施例十五
本申请还提供一种转发节点。请参照图18,显示为本申请转发节点在一实施例中的模块组成框图。如图18所示,所述转发节点包括至少一个存储器701和至少一个处理器702。
其中,所述至少一个存储器用于存储至少一个程序;在实施例中,所述存储器可包括高速随机存取存储器,并且还可包括非易失性存储器,例如一个或多个磁盘存储设备、闪存设备或其他非易失性固态存储设备。在某些实施例中,存储器还可以包括远离一个或多个处理器的存储器,例如经由RF电路或外部端口以及通信网络访问的网络附加存储器,其中所述通信网络可以是因特网、一个或多个内部网、局域网、广域网、存储局域网等,或其适当组合。存储器控制器可控制设备的诸如CPU和外设接口之类的其他组件对存储器的访问。
在一些实施例中,所述至少一个处理器与所述至少一个存储器连接,用于运行所述至少一个程序时以执行并实现如上述分布式任务处理方法所描述的至少一种实施例,比如图5对应描述的实施例。在实施例中,所述处理器可操作地与存储器和/或非易失性存储设备耦接。更具体地,处理器可执行在存储器和/或非易失性存储设备中存储的指令以在计算设备中执行操作,诸如生成图像数据和/或将图像数据传输到电子显示器。如此,处理器可包括一个或多个通用微处理器、一个或多个专用处理器、一个或多个现场可编程逻辑阵列、或它们的任何组合。
实施例十六
本申请还提供一种参数节点。请参照图19,显示为本申请参数节点在一实施例中的模块组成框图。如图19所示,所述参数节点包括至少一个存储器801和至少一个处理器802。
其中,所述至少一个存储器用于存储至少一个程序;在实施例中,所述存储器可包括高速随机存取存储器,并且还可包括非易失性存储器,例如一个或多个磁盘存储设备、闪存设备或其他非易失性固态存储设备。在某些实施例中,存储器还可以包括远离一个或多个处理器的存储器,例如经由RF电路或外部端口以及通信网络访问的网络附加存储器,其中所述通信网络可以是因特网、一个或多个内部网、局域网、广域网、存储局域网等,或其适当组合。存储器控制器可控制设备的诸如CPU和外设接口之类的其他组件对存储器的访问。
在一些实施例中,所述至少一个处理器与所述至少一个存储器连接,用于运行所述至少一个程序时以执行并实现如上述分布式任务处理方法所描述的至少一种实施例,比如图6对应描述的实施例。在实施例中,所述处理器可操作地与存储器和/或非易失性存储设备耦接。更具体地,处理器可执行在存储器和/或非易失性存储设备中存储的指令以在计算设备中执行操作,诸如生成图像数据和/或将图像数据传输到电子显示器。如此,处理器可包括一个或多个通用微处理器、一个或多个专用处理器、一个或多个现场可编程逻辑阵列、或它们的任何组合。
本申请还提供一种计算机可读写存储介质,存储有计算机程序,所述计算机程序被执行时实现上述针对分布式任务处理方法所描述的至少一种实施例,比如图4所描述的实施例。
本申请还提供一种计算机可读写存储介质,存储有计算机程序,所述计算机程序被执行时实现上述针对分布式任务处理方法所描述的至少一种实施例,比如图5所描述的实施例。
本申请还提供一种计算机可读写存储介质,存储有计算机程序,所述计算机程序被执行时实现上述针对分布式任务处理方法所描述的至少一种实施例,比如图6所描述的实施例。
本申请还提供一种计算机可读写存储介质,存储有计算机程序,所述计算机程序被执行时实现上述针对分布式任务处理方法所描述的至少一种实施例,比如图8所描述的实施例。
本申请还提供一种计算机可读写存储介质,存储有计算机程序,所述计算机程序被执行时实现上述针对分布式任务处理方法所描述的至少一种实施例,比如图9所描述的实施例。
本申请还提供一种计算机可读写存储介质,存储有计算机程序,所述计算机程序被执行时实现上述针对分布式任务的异常处理方法所描述的至少一种实施例,比如图10所描述的实施例。
本申请还提供一种计算机可读写存储介质,存储有计算机程序,所述计算机程序被执行时实现上述针对分布式任务的异常处理方法所描述的至少一种实施例,比如图11所描述的实施例。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。
于本申请提供的实施例中,所述计算机可读写存储介质可以包括只读存储器、随机存取存储器、EEPROM、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁存储设备、闪存、U盘、移动硬盘、或者能够用于存储具有指令或数据结构形式的期望的程序代码并能够由计算机进行存取的任何其它介质。另外,任何连接都可以适当地称为计算机可读介质。例如,如果指令是使用同轴电缆、光纤光缆、双绞线、数字订户线(DSL)或者诸如红外线、无线电和微波之类的无线技术,从网站、服务器或其它远程源发送的,则所述同轴电缆、光纤光缆、双绞线、DSL或者诸如红外线、无线电和微波之类的无线技术包括在所述介质的定义中。然而,应当理解的是,计算机可读写存储介质和数据存储介质不包括连接、载波、信号或者其它暂时性介质,而是旨在针对于非暂时性、有形的存储介质。如申请中所使用的磁盘和光盘包括压缩光盘(CD)、激光光盘、光盘、数字多功能光盘(DVD)、软盘和蓝光光盘,其中,磁盘通常磁性地复制数据,而光盘则用激光来光学地复制数据。
在一个或多个示例性方面,本申请所述方法的计算机程序所描述的功能可以用硬件、软件、固件或其任意组合的方式来实现。当用软件实现时,可以将这些功能作为一个或多个指令或代码存储或传送到计算机可读介质上。本申请所公开的方法或算法的步骤可以用处理器可执行软件模块来体现,其中处理器可执行软件模块可以位于有形、非临时性计算机可读写存储介质上。有形、非临时性计算机可读写存储介质可以是计算机能够存取的任何可用介质。
本申请上述的附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。基于此,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这根据所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以通过执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以通过专用硬件与计算机指令的组合来实现。
上述实施例仅例示性说明本申请的原理及其功效,而非用于限制本申请。任何熟悉此技术的人士皆可在不违背本申请的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本申请所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本申请的权利要求所涵盖。

Claims (24)

1.一种分布式任务处理方法,其特征在于,包括:
接收多个包含任务参数和用于指示分配执行聚合操作的计算资源的资源配置标识信息的第一数据包;其中,所述多个任务参数是由多个工作节点通过执行一分布式计算任务而得到的;
依据各所述第一数据包中的资源配置标识信息动态分配对应同一分布式计算任务的计算资源,并利用所述计算资源对相应多个任务参数执行聚合操作以得到对应所述分布式计算任务的聚合参数;所述聚合参数用于供对应同一分布式计算任务的各工作节点进行数据处理。
2.根据权利要求1所述的分布式任务处理方法,其特征在于,还包括:将所述聚合参数发送至参数节点以供核验;以及将所述参数节点所发出的包含经核验的聚合参数的第二数据包反馈至相应的工作节点。
3.根据权利要求1所述的分布式任务处理方法,其特征在于,所接收的第一数据包中还包含用于确认所述第一数据包对应的分布式计算任务的任务标识信息。
4.根据权利要求1所述的分布式任务处理方法,其特征在于,所接收的第一数据包中还包含用于确认对应于同一分布式计算任务的工作节点的节点标识信息。
5.根据权利要求1所述的分布式任务处理方法,其特征在于,所述依据所述第一数据包中的资源配置标识信息为所述第一数据包动态分配一计算资源,并由所述计算资源执行聚合操作得到聚合参数的步骤还包括:
依据各所述第一数据包中的资源配置标识信息与各计算资源的映射关系,确定对应同一分布式计算任务的各第一数据包的计算资源;
利用所分配的计算资源执行对应同一分布式计算任务的聚合操作,以得到聚合参数。
6.根据权利要求5所述的分布式任务处理方法,其特征在于,所述映射关系是通过对所述资源配置标识信息进行散列计算后确定的。
7.根据权利要求1所述的分布式任务处理方法,其特征在于,还包括:当确定所述计算资源无需占用时,释放相应的计算资源。
8.根据权利要求1所述的分布式任务处理方法,其特征在于,当为所述第一数据包相应的分布式计算任务动态分配的计算资源已被占用时,在所述第一数据包中标记冲突标识信息并执行转发操作,以供参数节点依据所述冲突标识信息对所转发的第一数据包中的任务参数执行聚合操作得到聚合参数。
9.根据权利要求8所述的分布式任务处理方法,其特征在于,还包括:接收所述参数节点发送的包含聚合参数的第二数据包,并将所述第二数据包反馈至相应的工作节点;其中,所述第二数据包中还包含更新后的资源配置标识信息。
10.根据权利要求1所述的分布式任务处理方法,其特征在于,所述分布式计算任务包括利用分布式计算的方式对机器学习算法进行梯度训练的计算任务。
11.一种分布式任务处理系统,其特征在于,包括:
接收模块,用于接收多个包含任务参数和用于指示分配执行聚合操作的计算资源的资源配置标识信息的第一数据包;其中,所述任务参数是由多个工作节点通过执行一分布式计算任务而得到的;
处理模块,用于依据所述第一数据包中的资源配置标识信息为所述第一数据包动态分配一计算资源,并由所述计算资源执行聚合操作得到聚合参数,以及将所述聚合参数发送至参数节点以供核验;
反馈模块,用于将所述参数节点所发出的包含聚合参数的第二数据包反馈至相应的工作节点。
12.一种转发节点,其特征在于,包括:
至少一个存储器,用于存储至少一个程序;
至少一个处理器,与所述至少一个存储器连接,用于运行所述至少一个程序时以执行并实现如权利要求1至10任一项所述的分布式任务处理方法。
13.一种分布式任务处理方法,其特征在于,包括:
生成对应于同一分布式计算任务的资源配置标识信息,所述资源配置标识信息用于指示转发节点分配执行聚合操作的计算资源;
发送包含任务参数和所述资源配置标识信息的第一数据包;其中,所述任务参数是多个工作节点通过执行所述分布式计算任务而得到的;
接收包含聚合参数的第二数据包;其中,所述聚合参数用于更新所述分布式计算任务的任务参数;其中,所述聚合参数为所述转发节点中的一计算资源依据所述第一数据包中的任务参数执行聚合操作后得到的。
14.根据权利要求13所述的分布式任务处理方法,其特征在于,所接收的第二数据包中还包含更新后的资源配置标识信息;相应地,还包括:依据所述第二数据包中更新后的资源配置标识信息,对新一轮次发送的第一数据包中的资源配置标识信息进行更新。
15.根据权利要求13所述的分布式任务处理方法,其特征在于,在发送所述第一数据包期间执行丢包检测,以及在检测到丢包时重新发送所述第一数据包。
16.一种分布式任务处理系统,其特征在于,包括:
生成模块,用于生成对应于同一分布式计算任务的资源配置标识信息,所述资源配置标识信息用于指示转发节点分配执行聚合操作的计算资源;
发送模块,用于发送包含任务参数和所述资源配置标识信息的第一数据包;其中,所述任务参数是多个工作节点通过执行所述分布式计算任务而得到的;
接收模块,用于接收包含聚合参数的第二数据包;其中,所述聚合参数用于更新所述分布式计算任务的任务参数;其中,所述聚合参数为所述转发节点中的一计算资源依据所述第一数据包中的任务参数执行聚合操作后得到的。
17.一种工作节点,其特征在于,包括:
至少一个存储器,用于存储至少一个程序;
至少一个处理器,与所述至少一个存储器连接,用于运行所述至少一个程序时以执行并实现如权利要求13至15任一项所述的分布式任务处理方法。
18.一种分布式任务处理系统,其特征在于,包括:
多个如权利要求17所述的工作节点;
至少一个如权利要求12所述的转发节点,用于根据工作节点发送的包含任务参数的第一数据包的任务参数执行聚合操作得到聚合结果或聚合参数;
参数节点,用于对聚合结果执行聚合操作得到聚合参数和/或对聚合参数执行核验操作。
19.根据权利要求18所述的分布式任务处理系统,其特征在于,所述转发节点与工作节点以TOR方式连接。
20.根据权利要求18所述的分布式任务处理系统,其特征在于,所述转发节点包括一级转发节点和二级转发节点;其中,所述一级转发节点与多个工作节点通信连接,所述二级转发节点与至少一个一级转发节点通信连接。
21.根据权利要求20所述的分布式任务处理系统,其特征在于,所述参数节点与所述二级转发节点和至少一个工作节点通信连接。
22.根据权利要求18所述的分布式任务处理系统,其特征在于,所述参数节点还用于接收转发节点发出的包含冲突标识信息的第一数据包,并依据所述冲突标识信息对所转发的第一数据包中的任务参数执行聚合操作得到聚合参数。
23.根据权利要求18所述的分布式任务处理系统,其特征在于,所述参数节点还用于依据所述冲突标识信息对资源配置标识信息进行更新,并发送包含聚合参数和更新后的资源配置标识信息的第二数据包,以供转发节点将所述第二数据包反馈至相应的工作节点。
24.一种计算机可读存储介质,其特征在于,存储有至少一个程序,所述程序被处理器执行时执行并实现如权利要求1至10任一项所述的分布式任务处理方法,或执行并实现如权利要求13至15任一项所述的分布式任务处理方法。
CN202011394457.7A 2020-11-24 2020-12-02 分布式任务处理方法及系统 Pending CN114546633A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN2020113296733 2020-11-24
CN202011329673 2020-11-24

Publications (1)

Publication Number Publication Date
CN114546633A true CN114546633A (zh) 2022-05-27

Family

ID=81667954

Family Applications (3)

Application Number Title Priority Date Filing Date
CN202011390879.7A Pending CN114553880A (zh) 2020-11-24 2020-12-02 分布式任务的异常处理方法及系统
CN202011394457.7A Pending CN114546633A (zh) 2020-11-24 2020-12-02 分布式任务处理方法及系统
CN202011390848.1A Pending CN114553879A (zh) 2020-11-24 2020-12-02 分布式任务处理方法、系统及存储介质

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202011390879.7A Pending CN114553880A (zh) 2020-11-24 2020-12-02 分布式任务的异常处理方法及系统

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN202011390848.1A Pending CN114553879A (zh) 2020-11-24 2020-12-02 分布式任务处理方法、系统及存储介质

Country Status (1)

Country Link
CN (3) CN114553880A (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115277446A (zh) * 2022-07-12 2022-11-01 中国信息通信研究院 一种节能的在网联邦学习网络和方法

Also Published As

Publication number Publication date
CN114553879A (zh) 2022-05-27
CN114553880A (zh) 2022-05-27

Similar Documents

Publication Publication Date Title
US11218537B2 (en) Load balancing in distributed computing systems
US10257066B2 (en) Interconnect congestion control in a storage grid
EP3281369B1 (en) Server load balancing
US11277350B2 (en) Communication of a large message using multiple network interface controllers
US9495324B2 (en) Efficient distribution of subnet administration data over an RDMA network
US20200195711A1 (en) Model-based load balancing for network data plane
CN103117947B (zh) 一种负载分担方法及装置
US9753942B2 (en) Traffic statistic generation for datacenters
US20150215236A1 (en) Method and apparatus for locality sensitive hash-based load balancing
US11750699B2 (en) Small message aggregation
CN115208812B (zh) 业务处理方法及装置、设备、计算机可读存储介质
CN103493449A (zh) 分组交换网络中的有效电路
CN110120897A (zh) 链路探测方法、装置、电子设备及机器可读存储介质
CN109327400B (zh) 一种数据通信方法及数据通信网络
US9491098B1 (en) Transparent network multipath utilization through encapsulation
CN113452778B (zh) 会话保持方法、装置、设备、系统及存储介质
CN114546633A (zh) 分布式任务处理方法及系统
CN107493254B (zh) Tcp报文转发的方法、装置和系统
CN116010130B (zh) Dpu虚拟口的跨卡链路聚合方法、装置、设备及介质
US20160212083A9 (en) Connection sharing across entities in a distributed messaging system
US10038566B1 (en) Systems and methods for multicast message routing
CN115348212A (zh) 负载均衡方法、装置、网络设备及计算机可读存储介质
KR101382177B1 (ko) 동적 메시지 라우팅 시스템 및 방법
CN102316022B (zh) 一种协议报文转发方法和通信设备
CN115714776B (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