CN113961318A - 分布式调度方法、装置、设备以及存储介质 - Google Patents
分布式调度方法、装置、设备以及存储介质 Download PDFInfo
- Publication number
- CN113961318A CN113961318A CN202010700717.2A CN202010700717A CN113961318A CN 113961318 A CN113961318 A CN 113961318A CN 202010700717 A CN202010700717 A CN 202010700717A CN 113961318 A CN113961318 A CN 113961318A
- Authority
- CN
- China
- Prior art keywords
- job
- participants
- nodes
- appmaster
- node
- 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
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
-
- 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
-
- 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
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 Transfer Between Computers (AREA)
Abstract
本申请公开了分布式调度方法、装置、设备以及存储介质,涉及多方安全计算、联邦学习、分布式调度技术领域。该方法的一具体实施方式包括:向中央协调器发送多个参与方的节点的注册申请;向中央协调器定期发送心跳信息,其中,心跳信息包括多个参与方的节点的当前系统资源状态和作业状态;在目标参与方的节点上启动资源容器,并与其他参与方的节点联合运行作业。该实施方式为分布式系统提供了一种分布式调度机制,来解决分布式系统的各参与方的自主协调问题,当应用在联邦计算系统时,能够使得各个参与方可自主参与联邦计算,以提升联邦计算系统的运行效率,促进联邦计算合作的高效达成。
Description
技术领域
本申请实施例涉及计算机技术领域,具体涉及多方安全计算、联邦学习、分布式调度技术领域,尤其涉及分布式调度方法、装置、设备以及存储介质。
背景技术
联邦计算是一种新型计算模式,将MPC(Secure Multi-party Computation,多方安全计算)、TEE(Trusted Execution Environment,可信执行环境)和数据脱敏等多种数据安全和隐私保护技术融合,为多个参与方联合协调进行安全计算提供平台支撑。
联邦计算首先要解决各参与方的协调管理问题。因此,目前的以联邦学习、MPC等技术为代表的解决方案,其研究重心是如何设计一款安全、高效的算法,各个参与方使用该算法完成特定多方安全计算任务。常见的实现方案包括:以MPC和联邦学习为代表的软件方案和基于TEE可信安全硬件为代表的硬件方案。其中,基于软件的技术方案包括MPC、联邦学习等,MPC以不经意传输(Oblivious Transfer,OT)、同态加密(Homomorphic Encryption,HE)、秘密共享(Secret Sharing,SS)等密码协议为基础实现数据安全计算。基于硬件的技术方案需要硬件厂商的支持。以上两种实现方案均未涉及各参与方的调度。
发明内容
本申请实施例提出了分布式调度方法、装置、设备以及存储介质。
第一方面,本申请实施例提出了一种分布式调度方法,包括:向中央协调器发送多个参与方的节点的注册申请;向中央协调器定期发送心跳信息,其中,心跳信息包括多个参与方的节点的当前系统资源状态和作业状态;在目标参与方的节点上启动资源容器,并与其他参与方的节点联合运行作业,其中,目标参与方是中央协调器基于作业的资源需求从多个参与方中选取的。
第二方面,本申请实施例提出了一种分布式调度装置,包括:注册申请模块,被配置成向中央协调器发送多个参与方的节点的注册申请;心跳发送模块,被配置成向中央协调器定期发送心跳信息,其中,心跳信息包括多个参与方的节点的当前系统资源状态和作业状态;联合运行模块,被配置成在目标参与方的节点上启动资源容器,并与其他参与方的节点联合运行作业,其中,目标参与方是中央协调器基于作业的资源需求从多个参与方中选取的。
第三方面,本申请实施例提出了一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行如第一方面中任一实现方式描述的方法。
第四方面,本申请实施例提出了一种存储有计算机指令的非瞬时计算机可读存储介质,计算机指令用于使计算机执行如第一方面中任一实现方式描述的方法。
本申请实施例提供的分布式调度方法、装置、设备以及存储介质,多个参与方的节点可以首先向中央协调器发送注册申请,以及向中央协调器定期发送心跳信息;然后在中央协调器选取的目标参与方的节点上启动资源容器,并与其他参与方的节点联合运行作业。为分布式系统提供了一种分布式调度机制,来解决分布式系统的各参与方的自主协调问题,当应用在联邦计算系统时,能够使得各个参与方可自主参与联邦计算,以提升联邦计算系统的运行效率,促进联邦计算合作的高效达成。此外,该分布式调度机制除了应用在联邦计算系统之外,还可以应用于其他分布式系统的协调与调度,包括但不限于大数据平台的分布式调度。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显。附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1是节点调度机制的示意图;
图2是根据本申请的分布式调度方法的一个实施例的流程图;
图3是根据本申请的分布式调度方法的作业运行步骤的一个实施例的流程图;
图4是根据本申请的分布式调度方法的任务运行步骤的一个实施例的流程图;
图5是作业调度机制的示意图;
图6是根据本申请的分布式调度装置的一个实施例的结构示意图;
图7是用来实现本申请实施例的分布式调度方法的电子设备的框图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
本申请实施例的分布式调度方法将分布式调度机制引入到分布式系统中,以解决分布式系统的各参与方的自主协调问题。其主要原理包括两层调度机制:第一层调度是节点调度机制;第二层调度是作业调度机制。
参与方可以部署节点。节点能够为分布式系统的参与方提供必要的算力资源,包括但不限于CPU(Central Processing Unit,中央处理器)、内存、网络、存储等。因此,参与方参与计算时,首先要确保节点能够提供计算所需要的算力资源。
图1示出了节点调度机制的示意图。如图1所示,主服务器101上部署有中央协调器1011。参与方102的本地服务器上部署有节点1021、数据库1022和资源容器1023。同理,参与方103的本地服务器上部署有节点1031、数据库1032和资源容器1033。节点调度机制能够收集参与方102的节点1021和参与方103的节点1031的状态,并通过中央协调器1011将参与方102的节点1021的状态同步给参与方103,以及将参与方103的节点1031的状态同步给参与方102。参与方102参与计算时,在本地服务器上部署节点1021,并使用节点1021连接数据库1022,以获取自己的私有数据。同理,参与方103参与计算时,在本地服务器上部署节点1031,并使用节点1031连接数据库1032,以获取自己的私有数据。当运行作业时,参与方102和参与方103可以按照作业调度机制启动作业运行计算任务。
分布式系统的重要价值是保护参与方的敏感数据,分布式系统的一个原则是保证原始数据不出域。分布式系统的中央协调器1011通过心跳机制仅仅收集参与方102的节点1021和参与方103的节点的状态,并不触碰参与方102和参与方103的敏感数据。敏感数据始终存储在参与方102和参与方103的本地服务器上。当节点1021需要与节点1022联合计算时,所有参与联合计算的节点分别启动作业任务,通过安全协议进行计算。其中,节点的状态可以包括但不限于:节点是否已启动、是否发生运行错误、任务是否已结束等。
应该理解,分布式系统的参与方数量支持任意多方,图1中的参与方的数目仅仅是示意性的。根据实现需要,可以具有任意数目的参与方。当应用在联邦计算系统时,节点是联邦计算节点,计算是联邦计算,作业可以是联邦计算作业。
继续参考图2,其示出了根据本申请的分布式调度方法的一个实施例的流程200。
在本实施例中,分布式系统初始化时,会在主服务器上启动中央协调器,以及在参与方服务器集群上启动多个参与方的节点。其中,参与方服务器集群可以包括多个参与方的本地服务器,一个参与方的本地服务器可以启动一个节点。随后,执行分布式调度方法,该分布式调度方法包括以下步骤:
步骤201,向中央协调器发送多个参与方的节点的注册申请。
在本实施例中,在多个参与方的节点启动后,可以分别向中央协调器发送注册申请。中央协调器可以对多个参与方的身份进行核验,并将核验通过的参与方的节点作为分布式系统可用的计算节点。
步骤202,向中央协调器定期发送心跳信息。
在本实施例中,多个参与方的节点可以分别向中央协调器定期发送心跳信息,以使中央协调器定期接收来自多个参与方的节点的心跳信息。其中,一个参与方的节点的心跳信息可以包括这个参与方的节点的当前系统资源状态和作业状态。当前系统资源状态可以包括但不限于CPU、内存、IO(Input Output,输入输出)的状态。
步骤203,在目标参与方的节点上启动资源容器,并与其他参与方的节点联合运行作业。
在本实施例中,中央协调器可以接收作业的资源申请,并根据作业的资源需求,从多个参与方中选取目标参与方。目标参与方的节点可以启动资源容器来运行作业。同时,其他参与方的节点可以联合运行作业。其中,资源容器可以包含作业任务运行所需要的基本算力资源,包括但不限于CPU、内存、IO等。每个资源容器仅运行作业的一个任务。其他参与方可以是多个参与方中除目标参与方之外的参与方。
本申请实施例提供的分布式调度方法,多个参与方的节点可以首先向中央协调器发送注册申请,以及向中央协调器定期发送心跳信息;然后在中央协调器选取的目标参与方的节点上启动资源容器,并与其他参与方的节点联合运行作业。为分布式系统提供了一种分布式调度机制,来解决分布式系统的各参与方的自主协调问题,当应用在联邦计算系统时,能够使得各个参与方可自主参与联邦计算,以提升联邦计算系统的运行效率,促进联邦计算合作的高效达成。此外,该分布式调度机制除了应用在联邦计算系统之外,还可以应用于其他分布式系统的协调与调度,包括但不限于大数据平台的分布式调度。
进一步参考图3,其示出了根据本申请的分布式调度方法的作业运行步骤的一个实施例的流程300。
在本实施例中,作业调度机制可以启动作业运行联邦安全计算任务。作业调度机制是建立在节点能够正常工作的基础上,利用参与方的节点所提供的CPU、内存、网络、存储等基础算力资源运行作业。
其中,作业运行步骤可以分解如下:
步骤301,在目标参与方的节点上添加作业的数据资源,以及授权其他参与方的节点查看数据资源的元数据信息。
在本实施例中,目标参与方可以在本方的节点上添加需要参与计算的数据资源,并授权其他参与方的节点查看数据资源的元数据信息。
在分布式系统中,数据是属于参与方的资产,分布式系统不会将一个参与方的数据以明文形式发送给其它参与方。但为了能够让其它参与方能够在分布式系统中使用该数据进行计算,需要授权其它参与方能看到该数据的元数据信息。当其它参与方看到元数据信息后,就可以使用该数据进行计算。
步骤302,在目标参与方的节点上创建作业,以及授权其他参与方的节点查看作业。
在本实施例中,目标参与方可以在本方的节点上创建作业。
在分布式系统中,参与方在分布式系统中所创建的作业也是参与方的私有数据,因此分布式系统的中央协调器不存储作业。参与方在本方的节点端所创建的作业会存储在本方的节点端的硬盘或其它存储设备上。分布式系统会分析作业所涉及的参与方,该作业所涉及参与方可以看到作业的详情。这样,参与方可以根据实际情况对该作业进行授权操作。
步骤303,由目标参与方的节点启动作业,以及由其他参与方的节点授权执行作业。
在本实施例中,作业可以由目标参与方的节点启动,其他参与方的节点对作业进行授权执行。
各参与方明确知晓作业逻辑后,可以决定是否参与该作业,并选择一种特定授权方式授权该作业的执行。
其中,作业的授权方式可以包括但不限于以下至少一项:
1、完全授权:授权作业多次(无限次)运行,作业逻辑修改调整后无需再次授权。
2、无变更授权:授权作业多次(无限次)运行,作业逻辑修改后则需要再次授权才能运行。
3、仅运行一次:授权作业仅能够运行一次,下次运行需要再次授权。
4、拒绝执行:拒绝该作业运行。
本申请实施例提供的作业运行步骤,在运行作业的过程中,无需将参与方的数据资源和作业发送给其它参与方,通过授权的方式即可使其它参与方看到数据资源的元数据信息和作业的详情,从而确保参与方的数据资源和作业的保密性和安全性。
进一步参考图4,其示出了根据本申请的分布式调度方法的任务运行步骤的一个实施例的流程400。
步骤401,在作业运行中产生AppMaster和多个AppExecutor。
在本实施例中,当作业启动后,生成了一个作业运行实例。作业运行中产生了AppMaster和AppExecutor两种类型的任务。其中,AppMaster负责监控作业任务的运行状态,AppExecutor负责运行作业任务。目标参与方的节点可以向中央协调器申请启动AppMaster。中央协调器从多个参与方的节点中选取存在空闲资源的节点来启动AppMaster。默认情况下,中央协调器会选择作业的创建方的节点来启动AppMaster,也可以通过配置来指定一个具体的节点来启动AppMaster。
步骤402,将作业解析编译成子任务序列。
在本实施例中,AppMaster启动后,可以将作业逻辑解析编译形成一系列子任务。
步骤403,基于子任务序列的上下游依赖关系生成DAG图。
在本实施例中,AppMaster可以将子任务序列的上下游依赖关系形成DAG(Directed Acyclic Graph,有向无环图)图,AppMaster负责监控维护所有子任务的DAG图的运行状态。
这些子任务的执行将由AppExecutor来负责。AppMaster将负责为本次任务申请计算资源,并负责监控维护DAG图的运行状态。当所有DAG图中的子任务全部运行成功后,才会认为本次作业实例运行成功,有任何一个子任务运行失败,则认为作业实例运行失败。
步骤404,由APPMaster根据DAG图的依赖关系,依次向中央协调器提交多个AppExecutor。
在本实施例中,AppMaster可以根据DAG图的依赖关系,依次向中央协调器提交多个AppExecutor任务。
步骤405,接收中央协调器推送的子任务序列。
在本实施例中,中央协调器可以根据AppExecutor任务所需计算资源,将子任务序列同时推送到多个参与方的节点上。
步骤406,若计算资源充足,启动多个AppExecutor执行子任务序列,以及由多个AppExecutor向APPMaster注册并定期汇报心跳信息。
在本实施例中,若多个参与方的节点的计算资源充足,可以分别启动多个AppExeutor任务,以及向APPMaster注册并定期汇报心跳信息。如果没有足够的计算资源,可以进入等待状态。
步骤407,由APPMaster向多个AppExecutor发送开始运行指令。
在本实施例中,APPMaster可以向多个AppExecutor分别发送开始运行指令。
步骤408,由多个AppExecutor运行子任务序列。
在本实施例中,在接收到开始运行指令之后,多个AppExecutor可以分别运行子任务序列中的子任务。
步骤409,由多个AppExecutor在运行过程中将子任务序列的状态反馈给APPMaster。
在本实施例中,多个AppExecutor在运行过程中可以将子任务序列中的子任务的状态反馈给APPMaster。
步骤410,由APPMaster更新DAG图的子节点状态,以及触发子任务序列中的后续子任务。
在本实施例中,APPMaster可以根据接收到的状态更新DAG图的子节点状态,以及触发子任务序列中的后续子任务。
步骤411,若DAG图的所有子节点状态均为完成状态,退出多个AppExecutor和APPMaster。
在本实施例中,若DAG图的所有子节点状态均为完成状态,AppMaster可以通知多个AppExeutor,多个AppExeutor依次退出,AppMaster也随后退出。至此,整个作业运行结束。
本申请实施例提供的任务运行步骤,由AppMaster为作业申请计算资源,以及由AppExecutor执行子任务序列,实现了作业的分布式调度。利用DAG图记录作业的子任务序列的上下游依赖关系和运行状态,便于获取作业的子任务序列之间的关系,以及子任务序列的执行情况。基于DAG图执行作业的子任务序列,可以确保作业的子任务序列能够有序地执行。作业运行结束后,及时退出AppExecutor和APPMaster,能够及时解除旧的作业对系统资源的占用,以便于新的作业的顺利运行。
图5示出了作业调度机制的示意图。如图5所示,作业由参与方A创建,并需参与方B参与计算。作业运行中产生了AppMaster和AppExecutor两种类型的任务。任务运行步骤如下:
1、参与方A向Coordinator(中央协调器)申请启动AppMaster。
2、Coordinator选取参与方A的Agent A来启动AppMaster。
3、AppMaster启动后,将作业逻辑解析编译形成一系列子任务,并将子任务的上下游依赖关系形成DAG图。
4、AppMaster根据DAG图的依赖关系,依次向Coordinator提交AppExecutor任务。
5、Coordinator根据AppExecutor任务所需计算资源,将子任务同时推送到参与方A的Agent A和参与方B的Agent B上。
6、Agent A和Agent B如果有足够的计算资源,则会分别启动AppExeutor A和AppExecutor B。如果没有足够的计算资源,则会等待。
7、AppExecutor A和AppExecutor B向AppMaster注册并定时汇报心跳信息。
8、AppMaster向AppExecutor A和AppExecutor B发送开始运行指令。AppExecutorA和AppExecutor B收到开始运行指令后,会运行子任务。
9、AppExecutor A和AppExecutor B在运行过程中会将子任务状态反馈给AppMaster。AppMaster更新DAG图对应子任务的节点状态,并触发启动后续子任务。当整个DAG图的所有子任务都运行结束之后,AppMaster通知AppExeutor,AppExeutor A和AppExecutor B依次退出,AppMaster也随后退出。
进一步参考图6,作为对上述各图所示方法的实现,本申请提供了一种分布式调度装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图6所示,本实施例的分布式调度装置600可以包括:注册申请模块601、心跳发送模块602和联合运行模块603。其中,注册申请模块601,被配置成向中央协调器发送多个参与方的节点的注册申请;心跳发送模块602,被配置成向中央协调器定期发送心跳信息,其中,心跳信息包括多个参与方的节点的当前系统资源状态和作业状态;联合运行模块603,被配置成在目标参与方的节点上启动资源容器,并与其他参与方的节点联合运行作业,其中,目标参与方是中央协调器基于作业的资源需求从多个参与方中选取的。
在本实施例中,分布式调度装置600中:注册申请模块601、心跳发送模块602和联合运行模块603的具体处理及其所带来的技术效果可分别参考图2对应实施例中的步骤201-203的相关说明,在此不再赘述。
在本实施例的一些可选的实现方式中,联合运行模块603包括:资源添加子模块(图中未示出),被配置成在目标参与方的节点上添加作业的数据资源,以及授权其他参与方的节点查看数据资源的元数据信息;作业创建子模块(图中未示出),被配置成在目标参与方的节点上创建作业,以及授权其他参与方的节点查看作业;联合运行子模块(图中未示出),被配置成由目标参与方的节点启动作业,以及由其他参与方的节点授权执行作业。
在本实施例的一些可选的实现方式中,联合运行子模块包括:产生单元(图中未示出),被配置成在作业运行中产生AppMaster和多个AppExecutor;编译单元(图中未示出),被配置成将作业解析编译成子任务序列;执行单元(图中未示出),被配置成由AppMaster为作业申请计算资源,以及由多个AppExecutor执行子任务序列。
在本实施例的一些可选的实现方式中,联合运行子模块还包括:生成单元(图中未示出),被配置成基于子任务序列的上下游依赖关系生成DAG图;维护单元(图中未示出),被配置成由APPMaster维护DAG图的运行状态。
在本实施例的一些可选的实现方式中,执行单元包括:提交子单元(图中未示出),被配置成由APPMaster根据DAG图的依赖关系,依次向中央协调器提交多个AppExecutor;接收子单元(图中未示出),被配置成接收中央协调器推送的子任务序列;执行子单元(图中未示出),被配置成若计算资源充足,启动多个AppExecutor执行子任务序列。
在本实施例的一些可选的实现方式中,执行单元还包括:等待子单元(图中未示出),被配置成若计算资源不足,进入等待状态。
在本实施例的一些可选的实现方式中,执行子单元进一步被配置成:由多个AppExecutor向APPMaster注册并定期汇报心跳信息;由APPMaster向多个AppExecutor发送开始运行指令;由多个AppExecutor运行子任务序列。
在本实施例的一些可选的实现方式中,维护单元进一步被配置成:由多个AppExecutor在运行过程中将子任务序列的状态反馈给APPMaster;由APPMaster更新DAG图的子节点状态,以及触发子任务序列中的后续子任务;若DAG图的所有子节点状态均为完成状态,退出多个AppExecutor和APPMaster。
在本实施例的一些可选的实现方式中,目标参与方的节点向中央协调器申请启动AppMaster,以及中央协调器从多个参与方的节点中选取存在空闲资源的节点来启动AppMaster。
在本实施例的一些可选的实现方式中,其他参与方的节点的授权方式包括以下至少一项:完全授权、无变更授权、仅运行一次、拒绝执行。
在本实施例的一些可选的实现方式中,在主服务器上启动中央协调器,以及在参与方服务器集群上启动多个参与方的节点。
根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。
如图7所示,是根据本申请实施例分布式调度方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图7所示,该电子设备包括:一个或多个处理器701、存储器702,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图7中以一个处理器701为例。
存储器702即为本申请所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本申请所提供的分布式调度方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的分布式调度方法。
存储器702作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的分布式调度方法对应的程序指令/模块(例如,附图6所示的注册申请模块601、心跳发送模块602和联合运行模块603)。处理器701通过运行存储在存储器702中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的分布式调度方法。
存储器702可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据分布式调度方法的电子设备的使用所创建的数据等。此外,存储器702可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器702可选包括相对于处理器701远程设置的存储器,这些远程存储器可以通过网络连接至分布式调度方法的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
分布式调度方法的电子设备还可以包括:输入装置703和输出装置704。处理器701、存储器702、输入装置703和输出装置704可以通过总线或者其他方式连接,图7中以通过总线连接为例。
输入装置703可接收输入的数字或字符信息,以及产生与分布式调度方法的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置704可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用ASIC(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
根据本申请的技术方案,多个参与方的节点可以首先向中央协调器发送注册申请,以及向中央协调器定期发送心跳信息;然后在中央协调器选取的目标参与方的节点上启动资源容器,并与其他参与方的节点联合运行作业。为分布式系统提供了一种分布式调度机制,来解决分布式系统的各参与方的自主协调问题,当应用在联邦计算系统时,能够使得各个参与方可自主参与联邦计算,以提升联邦计算系统的运行效率,促进联邦计算合作的高效达成。此外,该分布式调度机制除了应用在联邦计算系统之外,还可以应用于其他分布式系统的协调与调度,包括但不限于大数据平台的分布式调度。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。
Claims (24)
1.一种分布式调度方法,包括:
向中央协调器发送多个参与方的节点的注册申请;
向所述中央协调器定期发送心跳信息,其中,所述心跳信息包括所述多个参与方的节点的当前系统资源状态和作业状态;
在目标参与方的节点上启动资源容器,并与其他参与方的节点联合运行作业,其中,所述目标参与方是所述中央协调器基于所述作业的资源需求从所述多个参与方中选取的。
2.根据权利要求1所述的方法,其中,所述在目标参与方的节点上启动资源容器,并与其他参与方的节点联合运行作业,包括:
在所述目标参与方的节点上添加所述作业的数据资源,以及授权所述其他参与方的节点查看所述数据资源的元数据信息;
在所述目标参与方的节点上创建所述作业,以及授权所述其他参与方的节点查看所述作业;
由所述目标参与方的节点启动所述作业,以及由所述其他参与方的节点授权执行所述作业。
3.根据权利要求2所述的方法,其中,所述由所述目标参与方的节点启动所述作业,以及由所述其他参与方的节点授权执行所述作业,包括:
在所述作业运行中产生AppMaster和多个AppExecutor;
将所述作业解析编译成子任务序列;
由所述AppMaster为所述作业申请计算资源,以及由所述多个AppExecutor执行所述子任务序列。
4.根据权利要求3所述的方法,其中,所述由所述目标参与方的节点启动所述作业,以及由所述其他参与方的节点授权执行所述作业,还包括:
基于所述子任务序列的上下游依赖关系生成DAG图;
由所述APPMaster维护所述DAG图的运行状态。
5.根据权利要求4所述的方法,其中,所述由所述AppMaster为所述作业申请计算资源,以及由所述多个AppExecutor执行所述子任务序列,包括:
由所述APPMaster根据所述DAG图的依赖关系,依次向所述中央协调器提交所述多个AppExecutor;
接收所述中央协调器推送的所述子任务序列;
若计算资源充足,启动所述多个AppExecutor执行所述子任务序列。
6.根据权利要求5所述的方法,其中,所述由所述AppMaster为所述作业申请计算资源,以及由所述多个AppExecutor执行所述子任务序列,还包括:
若计算资源不足,进入等待状态。
7.根据权利要求5所述的方法,其中,所述启动所述多个AppExecutor执行所述子任务序列,包括:
由所述多个AppExecutor向所述APPMaster注册并定期汇报心跳信息;
由所述APPMaster向所述多个AppExecutor发送开始运行指令;
由所述多个AppExecutor运行所述子任务序列。
8.根据权利要求7所述的方法,其中,所述由所述APPMaster维护所述DAG图的运行状态,包括:
由所述多个AppExecutor在运行过程中将所述子任务序列的状态反馈给所述APPMaster;
由所述APPMaster更新所述DAG图的子节点状态,以及触发所述子任务序列中的后续子任务;
若所述DAG图的所有子节点状态均为完成状态,退出所述多个AppExecutor和所述APPMaster。
9.根据权利要求3-8之一所述的方法,其中,所述目标参与方的节点向所述中央协调器申请启动所述AppMaster,以及所述中央协调器从所述多个参与方的节点中选取存在空闲资源的节点来启动所述AppMaster。
10.根据权利要求2-8之一所述的方法,其中,所述其他参与方的节点的授权方式包括以下至少一项:完全授权、无变更授权、仅运行一次、拒绝执行。
11.根据权利要求1-8之一所述的方法,其中,在主服务器上启动所述中央协调器,以及在参与方服务器集群上启动所述多个参与方的节点。
12.一种分布式调度装置,包括:
注册申请模块,被配置成向中央协调器发送多个参与方的节点的注册申请;
心跳发送模块,被配置成向所述中央协调器定期发送心跳信息,其中,所述心跳信息包括所述多个参与方的节点的当前系统资源状态和作业状态;
联合运行模块,被配置成在目标参与方的节点上启动资源容器,并与其他参与方的节点联合运行作业,其中,所述目标参与方是所述中央协调器基于所述作业的资源需求从所述多个参与方中选取的。
13.根据权利要求12所述的装置,其中,所述联合运行模块包括:
资源添加子模块,被配置成在所述目标参与方的节点上添加所述作业的数据资源,以及授权所述其他参与方的节点查看所述数据资源的元数据信息;
作业创建子模块,被配置成在所述目标参与方的节点上创建所述作业,以及授权所述其他参与方的节点查看所述作业;
联合运行子模块,被配置成由所述目标参与方的节点启动所述作业,以及由所述其他参与方的节点授权执行所述作业。
14.根据权利要求13所述的装置,其中,所述联合运行子模块包括:
产生单元,被配置成在所述作业运行中产生AppMaster和多个AppExecutor;
编译单元,被配置成将所述作业解析编译成子任务序列;
执行单元,被配置成由所述AppMaster为所述作业申请计算资源,以及由所述多个AppExecutor执行所述子任务序列。
15.根据权利要求14所述的装置,其中,所述联合运行子模块还包括:
生成单元,被配置成基于所述子任务序列的上下游依赖关系生成DAG图;
维护单元,被配置成由所述APPMaster维护所述DAG图的运行状态。
16.根据权利要求15所述的装置,其中,所述执行单元包括:
提交子单元,被配置成由所述APPMaster根据所述DAG图的依赖关系,依次向所述中央协调器提交所述多个AppExecutor;
接收子单元,被配置成接收所述中央协调器推送的所述子任务序列;
执行子单元,被配置成若计算资源充足,启动所述多个AppExecutor执行所述子任务序列。
17.根据权利要求16所述的装置,其中,所述执行单元还包括:
等待子单元,被配置成若计算资源不足,进入等待状态。
18.根据权利要求16所述的装置,其中,所述执行子单元进一步被配置成:
由所述多个AppExecutor向所述APPMaster注册并定期汇报心跳信息;
由所述APPMaster向所述多个AppExecutor发送开始运行指令;
由所述多个AppExecutor运行所述子任务序列。
19.根据权利要求18所述的装置,其中,所述维护单元进一步被配置成:
由所述多个AppExecutor在运行过程中将所述子任务序列的状态反馈给所述APPMaster;
由所述APPMaster更新所述DAG图的子节点状态,以及触发所述子任务序列中的后续子任务;
若所述DAG图的所有子节点状态均为完成状态,退出所述多个AppExecutor和所述APPMaster。
20.根据权利要求14-19之一所述的装置,其中,所述目标参与方的节点向所述中央协调器申请启动所述AppMaster,以及所述中央协调器从所述多个参与方的节点中选取存在空闲资源的节点来启动所述AppMaster。
21.根据权利要求13-19之一所述的装置,其中,所述其他参与方的节点的授权方式包括以下至少一项:完全授权、无变更授权、仅运行一次、拒绝执行。
22.根据权利要求12-19之一所述的装置,其中,在主服务器上启动所述中央协调器,以及在参与方服务器集群上启动所述多个参与方的节点。
23.一种电子设备,包括:
一个或多个处理器;
存储装置,其上存储有一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-11中任一所述的方法。
24.一种计算机可读介质,其上存储有计算机程序,其中,所述计算机程序被处理器执行时实现如权利要求1-11中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010700717.2A CN113961318A (zh) | 2020-07-20 | 2020-07-20 | 分布式调度方法、装置、设备以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010700717.2A CN113961318A (zh) | 2020-07-20 | 2020-07-20 | 分布式调度方法、装置、设备以及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113961318A true CN113961318A (zh) | 2022-01-21 |
Family
ID=79459463
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010700717.2A Pending CN113961318A (zh) | 2020-07-20 | 2020-07-20 | 分布式调度方法、装置、设备以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113961318A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114584581A (zh) * | 2022-01-29 | 2022-06-03 | 华东师范大学 | 面向智慧城市物联网信物融合的联邦学习系统及联邦学习训练方法 |
CN114968525A (zh) * | 2022-05-26 | 2022-08-30 | 深圳致星科技有限公司 | 隐私计算和隐私数据保护的云原生任务调度方法及装置 |
CN116737348A (zh) * | 2023-08-14 | 2023-09-12 | 腾讯科技(深圳)有限公司 | 一种多方任务的处理方法、装置及计算机设备、存储介质 |
CN118101343A (zh) * | 2024-04-24 | 2024-05-28 | 天津医康互联科技有限公司 | 一种用于医院内网环境的联邦学习系统 |
-
2020
- 2020-07-20 CN CN202010700717.2A patent/CN113961318A/zh active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114584581A (zh) * | 2022-01-29 | 2022-06-03 | 华东师范大学 | 面向智慧城市物联网信物融合的联邦学习系统及联邦学习训练方法 |
CN114584581B (zh) * | 2022-01-29 | 2024-01-09 | 华东师范大学 | 面向智慧城市物联网信物融合的联邦学习系统及联邦学习训练方法 |
CN114968525A (zh) * | 2022-05-26 | 2022-08-30 | 深圳致星科技有限公司 | 隐私计算和隐私数据保护的云原生任务调度方法及装置 |
CN114968525B (zh) * | 2022-05-26 | 2023-03-24 | 深圳致星科技有限公司 | 隐私计算和隐私数据保护的云原生任务调度方法及装置 |
CN116737348A (zh) * | 2023-08-14 | 2023-09-12 | 腾讯科技(深圳)有限公司 | 一种多方任务的处理方法、装置及计算机设备、存储介质 |
CN116737348B (zh) * | 2023-08-14 | 2024-01-02 | 腾讯科技(深圳)有限公司 | 一种多方任务的处理方法、装置及计算机设备、存储介质 |
CN118101343A (zh) * | 2024-04-24 | 2024-05-28 | 天津医康互联科技有限公司 | 一种用于医院内网环境的联邦学习系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113961318A (zh) | 分布式调度方法、装置、设备以及存储介质 | |
US11740943B2 (en) | Techniques for managing long-running tasks with a declarative provisioner | |
US20220107846A1 (en) | SECURE SERVICE ISOLATION BETWEEN INSTANCES OF CLOUD PRODUCTS USING A SaaS MODEL | |
US9961017B2 (en) | Demand policy-based resource management and allocation system | |
US20190149619A1 (en) | Field service management mobile offline synchronization | |
US9262228B2 (en) | Distributed workflow in loosely coupled computing | |
US11750396B2 (en) | Private data processing method, device and medium | |
JP2022008781A (ja) | 分散型トレーニング方法、システム、デバイス、記憶媒体、及びプログラム | |
JP2020515939A (ja) | イベント駆動型ブロックチェーンワークフロー処理 | |
US20210209417A1 (en) | Method and apparatus for generating shared encoder | |
CN113228020A (zh) | 调度机器人以用于机器人流程自动化 | |
CN111930487B (zh) | 作业流调度方法、装置、电子设备及存储介质 | |
CN110765137B (zh) | 电子证照处理方法、装置、设备、平台和介质 | |
Perwej et al. | An empirical exploration of the yarn in big data | |
CN113272840A (zh) | 用于机器人过程自动化的按需云机器人 | |
US9588780B2 (en) | Maintaining state information in a multi-component, event-driven state machine | |
US20140165154A1 (en) | Using data analytics and crowdsourcing to determine roles for a computer system | |
JP7016436B2 (ja) | スマートコントラクトに基づくデータ処理方法、装置、機器及び記憶媒体 | |
US9842001B2 (en) | System level acceleration server | |
CN102103505A (zh) | 工作流界面生成方法及设备 | |
US11991041B2 (en) | Autonomous terraforming on cloud infrastructures | |
Rynge et al. | Enabling large-scale scientific workflows on petascale resources using MPI master/worker | |
CN112348302A (zh) | 具有无状态协调器的可扩展工作流引擎 | |
CN115576684A (zh) | 任务处理方法、装置、电子设备及存储介质 | |
CN110545324A (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 |