CN113672374A - 用于联邦学习和隐私计算的任务调度方法及系统 - Google Patents
用于联邦学习和隐私计算的任务调度方法及系统 Download PDFInfo
- Publication number
- CN113672374A CN113672374A CN202111225495.4A CN202111225495A CN113672374A CN 113672374 A CN113672374 A CN 113672374A CN 202111225495 A CN202111225495 A CN 202111225495A CN 113672374 A CN113672374 A CN 113672374A
- Authority
- CN
- China
- Prior art keywords
- subtask
- subtasks
- task
- business process
- queue
- 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
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
- G06N20/20—Ensemble learning
Abstract
本申请涉及用于联邦学习和隐私计算的任务调度方法及系统。该方法包括:将业务流程的实施过程转换为由多个子任务组成的子任务队列,其中,所述多个子任务中的每一个子任务对应多个阶段中的一个阶段;为所述多个阶段提供多个工作线程,所述多个阶段中的每一个阶段对应所述多个工作线程中的一个工作线程;按照所述子任务队列的先后次序逐个执行所述多个子任务中的每一个子任务并调用与该子任务所对应的阶段相对应的工作线程来执行该子任务。如此有利于提高执行效率及提供精细化控制同时保证整体计算效率和控制复杂度。
Description
技术领域
本申请涉及数据安全和隐私保护技术领域,具体涉及一种用于联邦学习和隐私计算的任务调度方法及系统。
背景技术
随着人工智能和大数据挖掘分析等应用领域的发展,对数据量的需求越来越大。例如训练人工智能的应用模型需要使用大量带有合适的数据标签或者特征数值的训练数据。高质量的数据往往来源于经营活动中产生和积累的应用数据。但是应用数据往往分散在不同的组织和个体手上,例如交易数据分散在各个金融机构,医疗诊断数据分散在各个医疗机构。跨行业跨领域的应用数据往往也是分散的,例如互联网领域的社交属性数据和电商交易数据往往由不同实体掌控。随着数据所有权的重要性、用户隐私和数据安全等受到更多重视,也随着法律法规对数据收集处理提出更严格的约束和要求,掌握应用数据的各个组织或个体往往不愿意或者没有合适手段进行彼此之间的合作,从而很难让各自掌握的应用数据共同发挥作用。这种数据分享和协同合作方面的困境被称之为数据孤岛现象。为了解决跨行业跨组织的数据合作难题,尤其是关键的隐私保护及数据安全的问题,提出了联邦学习的概念。联邦学习指的是拥有数据的各个参与方,在不共享受保护的隐私数据且自有数据不传递到外部的前提下,通过加密的方式交换模型相关信息从而实现协同优化联邦学习模型。其中,联邦学习根据训练数据在不同参与方之间的数据特征空间和样本空间的分布情况,可以划分为在数据特征空间重叠较大而在样本空间重叠较小的横向联邦学习,在数据特征空间重叠较小而在样本空间重叠较大的纵向联邦学习,以及在数据特征空间和样本空间均重叠较小的联邦迁移学习。
隐私计算(Privacy Computing)一般指的是一种由两个或多个参与方联合计算的技术和系统,并且各个参与方在不泄露各自数据的前提下通过协作对数据进行联合机器学习和联合分析。隐私计算的参与方既可以是同一机构的不同部门,也可以是不同的机构。在隐私计算框架下,参与方的数据明文不出本地,从而保护数据安全的同时实现多源数据跨域合作。隐私计算可以分成数据分散式和数据集中式。数据分散式的隐私计算意味着原始数据位于各参与方自己的服务器,参与方本地完成计算后,再通过网络互相交换中间结果的密文数据。数据集中式的隐私计算意味着各参与方将原始数据的密文传输到集中计算环境,集中计算环境完成计算后,将结果返回到任务发起方。目前需要一种任务调度方法或者任务调度系统,能够做到不仅在资源调度层面和作业调度层面实现细粒度流程控制和精细化管理,而且能够很好应对联邦学习和隐私计算的各种应用场景下复杂多变的需求,从而同时具有较好的执行效率和灵活性。
发明内容
第一方面,本申请实施例提供了一种任务调度方法,包括:将业务流程的实施过程转换为由多个子任务组成的子任务队列,其中,所述多个子任务中的每一个子任务对应多个阶段中的一个阶段;为所述多个阶段提供多个工作线程,所述多个阶段中的每一个阶段对应所述多个工作线程中的一个工作线程;按照所述子任务队列的先后次序逐个执行所述多个子任务中的每一个子任务并调用与该子任务所对应的阶段相对应的工作线程来执行该子任务。
第一方面所描述的技术方案,有利于提高执行效率及提供精细化控制同时保证整体计算效率和控制复杂度,如此不仅在资源调度层面和作业调度层面实现细粒度流程控制和精细化管理,而且能够很好应对联邦学习和隐私计算的各种应用场景下复杂多变的需求。
根据第一方面的技术方案的一种可能的实现方式,本申请实施例还提供了所述多个子任务中的每一个子任务包括配置信息,该配置信息指示该子任务所对应的阶段以及在所述子任务队列中相对于该子任务的上一个子任务所对应的阶段。
根据第一方面的技术方案的一种可能的实现方式,本申请实施例还提供了按照所述子任务队列的先后次序逐个执行所述多个子任务中的每一个子任务并调用与该子任务所对应的阶段相对应的工作线程来执行该子任务,包括:根据所述多个子任务各自的配置信息确定以及校验与所述多个子任务各自对应的阶段。
根据第一方面的技术方案的一种可能的实现方式,本申请实施例还提供了所述配置信息还指示该子任务的任务类型和该子任务的操作信息。
根据第一方面的技术方案的一种可能的实现方式,本申请实施例还提供了该子任务的操作信息包括该子任务的handler方法。
根据第一方面的技术方案的一种可能的实现方式,本申请实施例还提供了所述方法还包括:针对所述多个子任务中的每一个子任务,根据该子任务的配置信息所指示的该子任务的任务类型和该子任务的操作信息,确定与该子任务所对应的阶段相对应的工作线程。
根据第一方面的技术方案的一种可能的实现方式,本申请实施例还提供了所述多个子任务中至少两个子任务对应所述多个阶段中的同一个阶段,并且调用与该同一个阶段对应的同一个工作线程来执行所述至少两个子任务。
根据第一方面的技术方案的一种可能的实现方式,本申请实施例还提供了所述多个工作线程中的至少一个线程调用多核处理器提供并行计算。
根据第一方面的技术方案的一种可能的实现方式,本申请实施例还提供了所述多个子任务中的至少一个子任务被拆分成多个并行处理任务,与该至少一个子任务所对应的阶段相对应的工作线程调用多核处理器为所述多个并行处理任务提供并行计算。
根据第一方面的技术方案的一种可能的实现方式,本申请实施例还提供了所述多个子任务中的至少一个子任务被拆分成多个并行处理任务,与该至少一个子任务所对应的阶段相对应的工作线程被并行执行从而为所述多个并行处理任务提供并行计算。
根据第一方面的技术方案的一种可能的实现方式,本申请实施例还提供了所述多个工作线程从可用线程池中选择,所述可用线程池中的线程可以被动态调整。
根据第一方面的技术方案的一种可能的实现方式,本申请实施例还提供了所述可用线程池中的线程可以被动态调整,包括:可以增加新的线程到所述可用线程池或者可以从所述可用线程池中移除线程。
根据第一方面的技术方案的一种可能的实现方式,本申请实施例还提供了所述业务流程是联邦学习任务,所述联邦学习任务的实施过程被转换为由四个子任务组成的子任务队列,所述四个子任务按照所述子任务队列的先后次序依次对应第一操作线程、第一发送线程、第二操作线程以及第二发送线程。
根据第一方面的技术方案的一种可能的实现方式,本申请实施例还提供了所述多个子任务中至少一个子任务用于消息传递,该至少一个子任务对应发送阶段,与该至少一个子任务所对应的阶段相对应的工作线程是发送线程。
根据第一方面的技术方案的一种可能的实现方式,本申请实施例还提供了所述多个子任务中至少一个子任务用于特定计算,该至少一个子任务对应执行阶段,与该至少一个子任务所对应的阶段相对应的工作线程是操作线程。
根据第一方面的技术方案的一种可能的实现方式,本申请实施例还提供了将所述业务流程的实施过程转换为由所述多个子任务组成的所述子任务队列,包括:根据所述业务流程的算法特性,确定针对所述业务流程的实施过程的拆分方式,以及根据该拆分方式将所述业务流程的实施过程转换为由所述多个子任务组成的所述子任务队列。
根据第一方面的技术方案的一种可能的实现方式,本申请实施例还提供了根据所述业务流程的算法特性,确定针对所述业务流程的实施过程的拆分方式,包括:当所述业务流程的算法特性包括迭代计算部分时,为该迭代计算部分提供专用子任务。
根据第一方面的技术方案的一种可能的实现方式,本申请实施例还提供了所述方法还包括:为该专用子任务所对应的阶段提供专用工作线程,该专用工作线程针对迭代算法优化。
根据第一方面的技术方案的一种可能的实现方式,本申请实施例还提供了为所述多个阶段提供所述多个工作线程,包括:根据可用硬件资源和当前所有业务流程的整体需求,确定所述多个阶段的阶段总数并根据所确定的所述多个阶段的阶段总数确定所述多个工作线程的线程总数。
第二方面,本申请实施例提供了一种非瞬时性计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,该计算机指令被处理器执行时实现根据第一方面中任一项所述的方法。
第二方面所描述的技术方案,有利于提高执行效率及提供精细化控制同时保证整体计算效率和控制复杂度,如此不仅在资源调度层面和作业调度层面实现细粒度流程控制和精细化管理,而且能够很好应对联邦学习和隐私计算的各种应用场景下复杂多变的需求。
第三方面,本申请实施例提供了一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器通过运行所述可执行指令以实现根据第一方面中任一项所述的方法。
第三方面所描述的技术方案,有利于提高执行效率及提供精细化控制同时保证整体计算效率和控制复杂度,如此不仅在资源调度层面和作业调度层面实现细粒度流程控制和精细化管理,而且能够很好应对联邦学习和隐私计算的各种应用场景下复杂多变的需求。
第四方面,本申请实施例提供了一种任务调度系统,包括:转换模块,配置为将业务流程的实施过程转换为由多个子任务组成的子任务队列,其中,所述多个子任务中的每一个子任务对应多个阶段中的一个阶段;任务队列存储器,与所述转换模块连接并配置为存储所述子任务队列;匹配模块,与所述任务队列存储器连接并配置为,为所述多个阶段提供多个工作线程,所述多个阶段中的每一个阶段对应所述多个工作线程中的一个工作线程;执行模块,与所述任务队列存储器和所述匹配模块连接并且配置为,按照所述子任务队列的先后次序逐个执行所述多个子任务中的每一个子任务并调用与该子任务所对应的阶段相对应的工作线程来执行该子任务。
第四方面所描述的技术方案,有利于提高执行效率及提供精细化控制同时保证整体计算效率和控制复杂度,如此不仅在资源调度层面和作业调度层面实现细粒度流程控制和精细化管理,而且能够很好应对联邦学习和隐私计算的各种应用场景下复杂多变的需求。
根据第四方面的技术方案的一种可能的实现方式,本申请实施例还提供了所述多个子任务中的每一个子任务包括配置信息,该配置信息指示该子任务所对应的阶段以及在所述子任务队列中相对于该子任务的上一个子任务所对应的阶段。
根据第四方面的技术方案的一种可能的实现方式,本申请实施例还提供了按照所述子任务队列的先后次序逐个执行所述多个子任务中的每一个子任务并调用与该子任务所对应的阶段相对应的工作线程来执行该子任务,包括:根据所述多个子任务各自的配置信息确定以及校验与所述多个子任务各自对应的阶段。
根据第四方面的技术方案的一种可能的实现方式,本申请实施例还提供了所述配置信息还指示该子任务的任务类型和该子任务的操作信息。
根据第四方面的技术方案的一种可能的实现方式,本申请实施例还提供了所述匹配模块还配置为:针对所述多个子任务中的每一个子任务,根据该子任务的配置信息所指示的该子任务的任务类型和该子任务的操作信息,确定与该子任务所对应的阶段相对应的工作线程。
根据第四方面的技术方案的一种可能的实现方式,本申请实施例还提供了将所述业务流程的实施过程转换为由所述多个子任务组成的所述子任务队列,包括:根据所述业务流程的算法特性,确定针对所述业务流程的实施过程的拆分方式,以及根据该拆分方式将所述业务流程的实施过程转换为由所述多个子任务组成的所述子任务队列。
根据第四方面的技术方案的一种可能的实现方式,本申请实施例还提供了根据所述业务流程的算法特性,确定针对所述业务流程的实施过程的拆分方式,包括:当所述业务流程的算法特性包括迭代计算部分时,为该迭代计算部分提供专用子任务,并且所述专用子任务对应的工作线程针对迭代算法优化。
附图说明
为了说明本申请实施例或背景技术中的技术方案,下面将对本申请实施例或背景技术中所需要使用的附图进行说明。
图1示出了本申请实施例提供的任务编排的示意图。
图2示出了本申请实施例提供的任务调度方法的流程示意图。
图3示出了本申请实施例提供的用于任务调度方法的电子设备的框图。
图4示出了本申请实施例提供的任务调度系统的框图。
具体实施方式
本申请实施例为了解决如何做到不仅在资源调度层面和作业调度层面实现细粒度流程控制和精细化管理,而且能够很好应对联邦学习和隐私计算的各种应用场景下复杂多变的需求,从而同时具有较好的执行效率和灵活性;提供了一种任务调度方法及系统,该方法包括:将业务流程的实施过程转换为由多个子任务组成的子任务队列,其中,所述多个子任务中的每一个子任务对应多个阶段中的一个阶段;为所述多个阶段提供多个工作线程,所述多个阶段中的每一个阶段对应所述多个工作线程中的一个工作线程;按照所述子任务队列的先后次序逐个执行所述多个子任务中的每一个子任务并调用与该子任务所对应的阶段相对应的工作线程来执行该子任务。如此,有利于提高执行效率及提供精细化控制同时保证整体计算效率和控制复杂度,如此不仅在资源调度层面和作业调度层面实现细粒度流程控制和精细化管理,而且能够很好应对联邦学习和隐私计算的各种应用场景下复杂多变的需求。
本申请实施例可用于以下应用场景,包括但是不限于,多方安全计算、与联邦学习有关的机器学习模型训练、数据安全、隐私保护或者应用隐私计算框架或算法的其它应用场景等。
本申请实施例可以依据具体应用环境进行调整和改进,此处不做具体限定。
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请的实施例进行描述。
图1示出了本申请实施例提供的任务编排的示意图。在联邦学习和隐私计算的各种应用场景下,经常需要针对各种需求或者业务场景来进行资源调度层面的调度和作业调度层面的调度。其中,资源调度层面的调度通常侧重于底层操作,有时候直接对操作系统的资源进行抽象化处理并对抽象化处理后的资源进行调度。被进行抽象化处理的资源可以包括例如内存、CPU、磁盘和网络带宽等,从而能够实现集群化以及整合大量计算节点的资源,进而满足资源需求巨大的业务场景。作业调度层面的调度通常侧重于上层操作,主要用于实现大数据任务的启动、执行以及调度。面对计算密集型任务或者输入输出密集型任务或者有类似需求的业务场景,往往需要同时实现资源整合以及细粒度流程控制和精细化管理,而且还需要考虑到工作线程的实际条件(例如单线程的工作线程只能同时处理单个任务),为此需要一种新型的任务调度方法或者任务调度系统。图1所示的任务编排的基本原理是采用了这种任务调度方法。具体地,该任务调度方法包括:将业务流程的实施过程转换为由多个子任务组成的子任务队列,其中,所述多个子任务中的每一个子任务对应多个阶段中的一个阶段;为所述多个阶段提供多个工作线程,所述多个阶段中的每一个阶段对应所述多个工作线程中的一个工作线程;按照所述子任务队列的先后次序逐个执行所述多个子任务中的每一个子任务并调用与该子任务所对应的阶段相对应的工作线程来执行该子任务。下面结合图1进一步说明利用该任务调度方法进行任务编排的过程。
请继续参阅图1,在联邦学习和隐私计算的各种应用场景下,一般可以将任务编排的需求根据其产生原因分成事件驱动类型和消息驱动类型。其中,事件驱动类型指的是监控到数据库或者其他来源中的待处理事件,例如事先安排好的联邦学习任务或者系统里设定好的定期任务等。事件调度器100与数据库102连接,数据库102用于存储及更新这些待处理事件,事件调度器100监控到待处理事件后,就会开始为待处理事件进行任务编排,也就是参考上述的任务调度方法来实施相应的业务流程。另一方面,消息驱动类型指的是监控到来自其他子系统或者参与方的消息及其附带的业务需求,例如上述提到的定期任务执行过程中发生了突发事件如隐私泄露,又例如某个参与方提出合作请求,又例如系统监测到需要紧急处理的状况如受到攻击等。消息代理服务110用于各个子系统之间以及与外部的消息中转。消息代理服务110将来自其他子系统或者参与方的消息及其附带的业务需求发送给消息调度器120。消息调度器120监控到消息及附带的业务需求后,就会开始为这些业务需求进行任务编排,也就是参考上述的任务调度方法来实施相应的业务流程。总的来说,在联邦学习和隐私计算的各种应用场景下,需要同时应对大量按照预先设定好的时间安排和方式进行的待处理事件以及大量无法事先预料而只能根据实际状况做出响应的突发性事件或者临时性事件。为此,需要不仅在资源调度层面和作业调度层面实现细粒度流程控制和精细化管理,而且能够很好应对联邦学习和隐私计算的各种应用场景下复杂多变的需求,下面结合图1来说明如何通过任务编排达到这些有益技术效果。
请参阅图1,事件调度器100将业务流程A1的实施过程转换为由多个子任务组成的子任务队列B1;子任务队列B1的多个子任务中的每一个子任务对应多个阶段M中的一个阶段;为多个阶段M提供多个工作线程C1,多个阶段M中的每一个阶段对应多个工作线程C1中的一个工作线程;按照子任务队列B1的先后次序逐个执行多个子任务中的每一个子任务并调用与该子任务所对应的阶段相对应的工作线程来执行该子任务。类似地,事件调度器100将业务流程A2的实施过程转换为由多个子任务组成的子任务队列B2;子任务队列B2的多个子任务中的每一个子任务对应多个阶段M中的一个阶段;为多个阶段M提供多个工作线程C2,多个阶段M中的每一个阶段对应多个工作线程C2中的一个工作线程;按照子任务队列B2的先后次序逐个执行多个子任务中的每一个子任务并调用与该子任务所对应的阶段相对应的工作线程来执行该子任务。应当理解的是,业务流程A1的实施过程被转换成子任务队列B1,业务流程A2的实施过程被转换成子任务队列B2,而子任务队列B1和子任务队列B2均对应对各个阶段M,或者说,子任务队列B1和子任务队列B2各自的多个子任务中的每一个子任务对应多个阶段M中的一个阶段。如此,将业务流程的实施过程及其相应的子任务队列映射到了相同的多个阶段M。假设多个阶段M是由四个阶段组成,依次为执行阶段、发送阶段、执行阶段、发送阶段,这样意味着子任务队列B1和子任务队列B2各自的多个子任务中的每一个子任务对应这四个阶段中的一个阶段,并且可能两个或者多个子任务对应同一个阶段。应当注意的是,子任务队列B1和子任务队列B2各自的子任务与这四个阶段之间的对应关系可能一致也可能不一致,这一点下面会详细说明。
另外,业务流程A2及相应的子任务队列B2执行完成后会发送消息到消息代理服务110。消息代理服务110用于各个子系统之间以及与外部的消息中转。消息代理服务110将业务流程A2及相应的子任务队列B2的执行结果发送给消息调度器120。消息调度器120监控到业务需求后,将业务流程A3的实施过程转换为由多个子任务组成的子任务队列B3;子任务队列B3的多个子任务中的每一个子任务对应多个阶段M中的一个阶段;为多个阶段M提供多个工作线程C3,多个阶段M中的每一个阶段对应多个工作线程C3中的一个工作线程;按照子任务队列B3的先后次序逐个执行多个子任务中的每一个子任务并调用与该子任务所对应的阶段相对应的工作线程来执行该子任务。应当理解的是,事件调度器100针对事件驱动类型也就是监控到数据库或者其他来源中的待处理事件,消息调度器120针对消息驱动类型也就是监控到来自其他子系统或者参与方的消息及其附带的业务需求。事件调度器100和消息调度器120可以整合为一个中央调度系统或者集中调度服务模块,在此不做具体限定。
请继续参阅图1,针对业务流程A1,为多个阶段M提供多个工作线程C1,多个阶段M中的每一个阶段对应多个工作线程C1中的一个工作线程;按照子任务队列B1的先后次序逐个执行多个子任务中的每一个子任务并调用与该子任务所对应的阶段相对应的工作线程来执行该子任务。类似地,针对业务流程A2,为多个阶段M提供多个工作线程C2,多个阶段M中的每一个阶段对应多个工作线程C2中的一个工作线程;按照子任务队列B2的先后次序逐个执行多个子任务中的每一个子任务并调用与该子任务所对应的阶段相对应的工作线程来执行该子任务。如此,将与业务流程A1对应的子任务队列B1通过多个阶段M映射到了多个工作线程C1,将与业务流程A2对应的子任务队列B2通过多个阶段M映射到了多个工作线程C2。应当理解的是,虽然通过相同的多个阶段M,但是与业务流程A1对应的多个工作线程C1可能不同于与业务流程A2对应的多个工作线程C2。假设多个阶段M是由四个阶段组成,依次为执行阶段、发送阶段、执行阶段、发送阶段,这样意味着这四个阶段中的每一个阶段分别对应多个工作线程C1中的一个工作线程以及多个工作线程C2中的一个工作线程,并且可能两个或者多个阶段对应同一个工作线程。一方面子任务队列B1的各子任务与多个阶段M中各阶段之间的对应关系可能与子任务队列B2的各子任务与多个阶段M中各阶段之间的对应关系不一致,另一方面多个阶段M中各阶段与多个工作线程C1之间的对应关系也可能与多个阶段M中各阶段与多个工作线程C2之间的对应关系不一致。下面结合表1来说明。
表1
如上面表1所示,多个阶段M是由五个阶段组成,依次为第一执行阶段、第二执行阶段、第一发送阶段、第三执行阶段、第二发送阶段。将业务流程A1的实施过程转换子任务队列B1,子任务队列B1由六个子任务组成分别为B1-1、B1-2、B1-3、B1-4、B1-5及B1-6。并且子任务队列B1的六个子任务(B1-1、B1-2、B1-3、B1-4、B1-5及B1-6)与多个阶段M的五个阶段(第一执行阶段、第二执行阶段、第一发送阶段、第三执行阶段、第二发送阶段)之间的对应关系如表1所示。可以看出,子任务B1-1和子任务B1-2对应第一执行阶段,子任务B1-3对应第二执行阶段。另一方面,为多个阶段M提供多个工作线程C1,多个阶段M中的每一个阶段对应多个工作线程C1中的一个工作线程。可以看出,第一执行阶段和第二执行阶段对应同一个工作线程也就是第一操作线程。
继续参见表1,将业务流程A2的实施过程转换子任务队列B2,子任务队列B2由六个子任务组成分别为B2-1、B2-2、B2-3、B2-4、B2-5及B2-6。并且子任务队列B2的六个子任务(B2-1、B2-2、B2-3、B2-4、B2-5及B2-6)与多个阶段M的五个阶段(第一执行阶段、第二执行阶段、第一发送阶段、第三执行阶段、第二发送阶段)之间的对应关系如表1所示。可以看出,子任务B2-1对应第一执行阶段,子任务B2-2和子任务B2-3对应第二执行阶段。另一方面,为多个阶段M提供多个工作线程C2,多个阶段M中的每一个阶段对应多个工作线程C2中的一个工作线程。可以看出,第一执行阶段对应第一操作线程,第二执行阶段对应第四操作线程。通过对比表1中对业务流程A1和业务流程A2分别展开后得到的子任务队列及工作线程可以得出,虽然通过相同的多个阶段M,而且子任务队列B1和子任务队列B2的子任务总数是相同的,但是最后调动的工作线程不相同。具体地,针对业务流程A1,第一执行阶段和第二执行阶段对应同一个工作线程也就是第一操作线程,并且该第一操作线程负责执行子任务队列B1的子任务B1-1、子任务B1-2以及子任务B1-3;针对业务流程A2,第一执行阶段对应第一操作线程,第二执行阶段对应第四操作线程,并且该第一操作线程负责执行子任务队列B2的子任务B2-1,而第四操作线程负责执行子任务队列B2的子任务B2-2以及子任务B2-3。因此,利用该任务调度方法进行任务编排,最终按照子任务队列的先后次序逐个执行多个子任务中的每一个子任务并调用与该子任务所对应的阶段相对应的工作线程来执行该子任务,可以得到上面表1所示的针对业务流程A1和业务流程A2的不同处理方式。值得注意的是,业务流程A1所对应的子任务队列B1和业务流程A2所对应的子任务队列B2之间,从第一发送阶段开始就采用相同的工作线程。这意味着,可以根据情况灵活地调整所调用的工作线程但是同时尽量保持整体不变,从而有利于提高执行效率及提供精细化控制同时保证整体计算效率和控制复杂度,下面详细说明这点。
在联邦学习和隐私计算的各种应用场景下,有些业务流程中的部分环节适合采用并行计算的方式,例如通过多核处理器进行并行计算,或者适合被拆分成多个并行处理任务,这样的业务流程的实施过程被转换成子任务队列的时候适合针对这些适用并行计算的环节提供相应的可调用多核处理器或者适合并行处理任务拆分的工作线程。也就是说,对于业务流程中适合并行化计算的环节,设计相应的子任务并配备针对并行化计算优化过的工作流程,从而提高执行效率同时做到细颗粒度的流程控制。另外,有些业务流程中的部分环节,因为其算法特性例如有较多的除法运算、模幂运算或者迭代计算,而这些算法特性又会导致通用的工作线程的工作效率降低,因此对于业务流程中具有某些算法特性的环节,提供相应的子任务并配备针对这些算法特性优化过的工作流程,从而提高执行效率同时做到细颗粒度的流程控制。例如,可以当所述业务流程的算法特性包括迭代计算部分时,为该迭代计算部分提供专用子任务,并且为该专用子任务所对应的阶段提供专用工作线程,该专用工作线程针对迭代算法优化。此外,可能存在其他因素,使得需要为特定业务流程的实施过程,在其拆分时就做出优化设计,也就是使得对应的子任务队列包括特定子任务,从而提高执行效率。
但是,受限于有限的硬件资源和计算性能,实际中可调用的工作线程往往是有限的,并且一般情况下工作线程是单线程的也就是只能同时处理单个任务。并且,考虑到在联邦学习和隐私计算的各种应用场景下往往需要同时运行大量的业务流程,例如面对计算密集型任务或者输入输出密集型任务或者有类似需求的业务场景,而这些海量的业务流程中往往有大体上一致但是细节上略微不同的需求。例如,上面表1中的业务流程A1所对应的子任务队列B1和业务流程A2所对应的子任务队列B2之间,从第一发送阶段开始就采用相同的工作线程。因此,通过将相同的多个阶段M作为工具,可以有效地规范化及统一化为这些海量的业务流程所提供的工作线程。通过设定相同的多个阶段,再要求所述多个子任务中的每一个子任务对应多个阶段中的一个阶段以及要求所述多个阶段中的每一个阶段对应所述多个工作线程中的一个工作线程,使得任务编排的过程围绕所设定的多个阶段而具有更好的规范性和统一化。这样能保证整体计算效率和控制复杂度,特别是在任务编排时可以围绕多个阶段简化设计成本。以上面表1为例,业务流程A1和业务流程A2各自的实施过程从第一发送阶段开始就基本相同,这意味着单个子任务对应单个阶段且单个阶段对应单个工作线程,这样就只需要针对第一执行阶段和第二执行阶段进行优化设计。而且这样的任务调度方法可以提供细颗粒度的流程控制和精细化管理。例如,针对业务流程A1,子任务B1-1、子任务B1-2以及子任务B1-3的计算需求中均包含较多的模幂运算,因此适合通过针对模幂运算优化过的第一操作线程执行;另一方面,针对业务流程A2,子任务B2-1的计算需求中包含较多的模幂运算,因此适合通过针对模幂运算优化过的第一操作线程执行,但是子任务B2-2和子任务B2-3的计算需求均包含较多的除法运算,因此适合通过针对除法运算优化过的第四操作线程执行。而业务流程A1的其他子任务和业务流程A2的其他子任务均有相似的计算需求,因此通过相同的工作线程依次执行,这样就既针对特定计算需求做出了优化设计和配置同时也降低了整体控制复杂度,有利于提高整体计算效率。此外,除了需要针对特定计算需求做出优化,还可能存在其它适合采用第四操作线程而不是采用第一操作线程的情况。例如,第一操作线程可能存在被更高优先级的业务流程调用的情况,因此用第四操作线程来执行子任务B2-2和子任务B2-3。又例如,第四操作线程可以调用多核处理器进行并行计算或者进行任务拆分,这样通过第四操作线程可以加快对子任务B2-2和子任务B2-3的处理速度。又例如,第四操作线程具有比第一操作线程更好的安全性,如基于更严格的安全标准或者安全认证技术,因此通过第四操作线程可以提高整体安全性。此外,计算密集型任务或者类似业务场景往往需要对大量基本相似的业务流程进行处理,例如需要进行大量的参数相同而输入数据不同的计算式,这种时候适合针对这些基本相似的业务流程提供定制化的任务编排。以表1为例,业务流程A1和业务流程A2可能基本相似例如是基于同一个计算式和相同参数对不同输入数据进行运算,但是业务流程A1对应的任务编排可能是常规的方式,而业务流程A2对应的任务编排是针对该计算式提供的定制化的任务编排,其中的第四操作线程可能针对该计算式中耗费较多计算资源的算法特性做出优化设计。如此,通过业务流程A2的任务编排,可以更好地快速处理大量基本相似的业务流程,但是同时又尽量抑制了对常规方式进行调整从而可能引起的控制成本的上升。总之,利用该任务调度方法进行任务编排,可以根据情况灵活地调整所调用的工作线程但是同时尽量保持整体不变,从而有利于提高执行效率及提供精细化控制同时保证整体计算效率和控制复杂度,如此不仅在资源调度层面和作业调度层面实现细粒度流程控制和精细化管理,而且能够很好应对联邦学习和隐私计算的各种应用场景下复杂多变的需求。另外,关于消息调度器120为业务流程A3做出的任务编排,可以参考上述事件调度器100为业务流程A1和业务流程A2做出的任务编排。上面提到,事件调度器100和消息调度器120可以整合为一个中央调度系统或者集中调度服务模块。因此,上面提到的利用该任务调度方法进行任务编排,可以适用于事件驱动类型也就是监控到数据库或者其他来源中的待处理事件,也可以适用于消息驱动类型也就是监控到来自其他子系统或者参与方的消息及其附带的业务需求,在此不做具体限定。
图2示出了本申请实施例提供的任务调度方法的流程示意图。如图2所示,任务调度方法200包括以下步骤。
步骤S202:将业务流程的实施过程转换为由多个子任务组成的子任务队列,其中,所述多个子任务中的每一个子任务对应多个阶段中的一个阶段。
步骤S204:为所述多个阶段提供多个工作线程,所述多个阶段中的每一个阶段对应所述多个工作线程中的一个工作线程。
步骤S206:按照所述子任务队列的先后次序逐个执行所述多个子任务中的每一个子任务并调用与该子任务所对应的阶段相对应的工作线程来执行该子任务。
参考上述图1所示的任务编排以及关于表1的说明,利用任务调度方法200进行任务编排,可以根据情况灵活地调整所调用的工作线程但是同时尽量保持整体不变,从而有利于提高执行效率及提供精细化控制同时保证整体计算效率和控制复杂度,如此不仅在资源调度层面和作业调度层面实现细粒度流程控制和精细化管理,而且能够很好应对联邦学习和隐私计算的各种应用场景下复杂多变的需求。
在一种可能的实施方式中,所述多个子任务中的每一个子任务包括配置信息,该配置信息指示该子任务所对应的阶段以及在所述子任务队列中相对于该子任务的上一个子任务所对应的阶段。以上面表1为例,针对业务流程A1,子任务B1-2可以包括配置信息以指示子任务B1-2对应第一执行阶段而上一个子任务B1-1也对应第一执行阶段。在一些示例性实施例中,按照所述子任务队列的先后次序逐个执行所述多个子任务中的每一个子任务并调用与该子任务所对应的阶段相对应的工作线程来执行该子任务,包括:根据所述多个子任务各自的配置信息确定以及校验与所述多个子任务各自对应的阶段。也就是说,通过提供上述的配置信息,可以有助于校验。在一些示例性实施例中,所述配置信息还指示该子任务的任务类型和该子任务的操作信息。例如,该子任务的操作信息包括该子任务的handler方法。handler方法可以理解为工作线程要执行的运行方法。另外,所述方法还包括:针对所述多个子任务中的每一个子任务,根据该子任务的配置信息所指示的该子任务的任务类型和该子任务的操作信息,确定与该子任务所对应的阶段相对应的工作线程。以上面表1为例,针对业务流程A1,子任务B1-2的配置信息可以指示子任务B1-2的任务类型和操作信息,并能用于确定与子任务B1-2所对应的阶段相对应的工作线程也就是第一操作线程。
在一种可能的实施方式中,所述多个子任务中至少两个子任务对应所述多个阶段中的同一个阶段,并且调用与该同一个阶段对应的同一个工作线程来执行所述至少两个子任务。以上面表1为例,子任务B1-1和子任务B1-2对应第一执行阶段,并且调用与该第一执行阶段对应的同一个工作线程也就是第一操作线程来执行子任务B1-1和子任务B1-2。
在一种可能的实施方式中,所述多个工作线程中的至少一个线程调用多核处理器提供并行计算。在一些示例性实施例中,所述多个子任务中的至少一个子任务被拆分成多个并行处理任务,与该至少一个子任务所对应的阶段相对应的工作线程调用多核处理器为所述多个并行处理任务提供并行计算。在一些示例性实施例中,所述多个子任务中的至少一个子任务被拆分成多个并行处理任务,与该至少一个子任务所对应的阶段相对应的工作线程被并行执行从而为所述多个并行处理任务提供并行计算。
在一种可能的实施方式中,所述多个工作线程从可用线程池中选择,所述可用线程池中的线程可以被动态调整。所述可用线程池中的线程可以被动态调整,包括:可以增加新的线程到所述可用线程池或者可以从所述可用线程池中移除线程。
在一种可能的实施方式中,所述业务流程是联邦学习任务,所述联邦学习任务的实施过程被转换为由四个子任务组成的子任务队列,所述四个子任务按照所述子任务队列的先后次序依次对应第一操作线程、第一发送线程、第二操作线程以及第二发送线程。
在一种可能的实施方式中,所述多个子任务中至少一个子任务用于消息传递,该至少一个子任务对应发送阶段,与该至少一个子任务所对应的阶段相对应的工作线程是发送线程。在一些示例性实施例中,所述多个子任务中至少一个子任务用于特定计算,该至少一个子任务对应执行阶段,与该至少一个子任务所对应的阶段相对应的工作线程是操作线程。
在一种可能的实施方式中,将所述业务流程的实施过程转换为由所述多个子任务组成的所述子任务队列,包括:根据所述业务流程的算法特性,确定针对所述业务流程的实施过程的拆分方式,以及根据该拆分方式将所述业务流程的实施过程转换为由所述多个子任务组成的所述子任务队列。根据所述业务流程的算法特性,确定针对所述业务流程的实施过程的拆分方式,包括:当所述业务流程的算法特性包括迭代计算部分时,为该迭代计算部分提供专用子任务。为该专用子任务所对应的阶段提供专用工作线程,该专用工作线程针对迭代算法优化。在联邦学习和隐私计算的各种应用场景下,有些业务流程中的部分环节适合采用并行计算的方式,例如通过多核处理器进行并行计算,或者适合被拆分成多个并行处理任务,这样的业务流程的实施过程被转换成子任务队列的时候适合针对这些适用并行计算的环节提供相应的可调用多核处理器或者适合并行处理任务拆分的工作线程。也就是说,对于业务流程中适合并行化计算的环节,设计相应的子任务并配备针对并行化计算优化过的工作流程,从而提高执行效率同时做到细颗粒度的流程控制。另外,有些业务流程中的部分环节,因为其算法特性例如有较多的除法运算、模幂运算或者迭代计算,而这些算法特性又会导致通用的工作线程的工作效率降低,因此对于业务流程中具有某些算法特性的环节,提供相应的子任务并配备针对这些算法特性优化过的工作流程,从而提高执行效率同时做到细颗粒度的流程控制。例如,可以当所述业务流程的算法特性包括迭代计算部分时,为该迭代计算部分提供专用子任务,并且为该专用子任务所对应的阶段提供专用工作线程,该专用工作线程针对迭代算法优化。此外,可能存在其他因素,使得需要为特定业务流程的实施过程,在其拆分时就做出优化设计,也就是使得对应的子任务队列包括特定子任务,从而提高执行效率。
在一种可能的实施方式中,为所述多个阶段提供所述多个工作线程,包括:根据可用硬件资源和当前所有业务流程的整体需求,确定所述多个阶段的阶段总数并根据所确定的所述多个阶段的阶段总数确定所述多个工作线程的线程总数。实际应用中,受限于有限的硬件资源和计算性能,实际中可调用的工作线程往往是有限的,并且一般情况下工作线程是单线程的也就是只能同时处理单个任务。并且,面对计算密集型任务或者输入输出密集型任务或者有类似需求的业务场景,往往需要同时运行大量的业务流程而这些海量的业务流程中往往有大体上一致但是细节上略微不同的需求。为此,结合可用硬件资源和当前所有业务流程的整体需求,确定所述多个阶段的阶段总数,同时使得任务编排的过程围绕所设定的多个阶段而具有更好的规范性和统一化,这样能保证整体计算效率和控制复杂度。
应当理解的是,图2所示的任务调度方法200可以通过相应的执行主体或者载体来实现。在一些示例性实施例中,一种非瞬时性计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,该计算机指令被处理器执行时实现任务调度方法200以及上述任意实施例、实施方式或者它们的组合。在一些示例性实施例中,一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器通过运行所述可执行指令以实现任务调度方法200以及上述任意实施例、实施方式或者它们的组合。
图3示出了本申请实施例提供的用于任务调度方法的电子设备的框图。如图3所示,电子设备300包括主处理器302,内部总线304,网络接口306,主存储器308,以及辅助处理器310和辅助内存312,还有辅助处理器320和辅助内存322。其中,主处理器302与主存储器308连接,主存储器308可用于存储主处理器302可执行的计算机指令,从而可以实现图2所示的任务调度方法200,包括其中部分或者全部步骤,也包括其中步骤的任意可能的组合或结合以及可能的替换或者变体。网络接口306用于提供网络连接以及通过网络收发数据。内部总线304用于提供在主处理器302、网络接口306、辅助处理器310以及辅助处理器320之间的内部的数据交互。其中,辅助处理器310与辅助内存312连接并一起提供辅助计算能力,而辅助处理器320与辅助内存322连接并一起提供辅助计算能力。辅助处理器310和辅助处理器320可以提供相同或者不同的辅助计算能力,包括但是不限于,针对特定计算需求进行优化的计算能力如并行处理能力或者张量计算能力,针对特定算法或者逻辑结构进行优化的计算能力例如迭代计算能力或者图计算能力等。辅助处理器310和辅助处理器320可以包括特定类型的一个或者多个处理器,如数字信号处理器(DSP),专用集成电路(ASIC),现场可编程门阵列(FPGA)等,从而可以提供定制化的功能和结构。在一些示例性实施例中,电子设备300可以不包括辅助处理器,可以包括仅一个辅助处理器,还可以包括任意数量的辅助处理器且各自具有相应的定制化功能及结构,在此不做具体限定。图3中所示出的两个辅助处理器的架构仅为说明性而不应解释为限制性。另外,主处理器302可以包括单核或者多核的计算单元,用于提供本申请实施例所必需的功能和操作。另外,主处理器302和辅助处理器(如图3中的辅助处理器310和辅助处理器320)可以具有不同的架构,也就是电子设备300可以是基于异构架构的系统,例如主处理器302可以是基于指令集操作体系的通用型处理器如CPU,而辅助处理器可以是适合并行化计算的图形处理器GPU或者是适合神经网络模型相关运算的专用加速器。辅助内存(例如图3所示的辅助内存312和辅助内存322)可以用于配合各自对应的辅助处理器来实现定制化功能及结构。而主存储器308用于存储必要的指令、软件、配置、数据等从而可以配合主处理器302提供本申请实施例所必需的功能和操作。在一些示例性实施例中,电子设备300可以不包括辅助内存,可以包括仅一个辅助内存,还可以包括任意数量的辅助内存,在此不做具体限定。图3中所示出的两个辅助内存的架构仅为说明性而不应解释为限制性。主存储器308以及可能的辅助内存可以包括以下一个或多个特征:易失性,非易失性,动态,静态,可读/写,只读,随机访问,顺序访问,位置可寻址性,文件可寻址性和内容可寻址性,并且可以包括随机存取存储器(RAM),闪存,只读存储器(ROM),可擦可编程只读存储器(EPROM),电可擦可编程只读存储器(EEPROM),寄存器,硬盘,可移动磁盘,可记录和/或可重写光盘(CD),数字多功能光盘(DVD),大容量存储介质设备或任何其他形式的合适存储介质。内部总线304可以包括不同总线结构中的任何一种或不同总线结构的组合,例如存储器总线或存储器控制器,外围总线,通用串行总线和/或利用多种总线体系结构中的任何一种的处理器或本地总线。应当理解的是,图3所示的电子设备300,其所示的结构并不构成对有关装置或系统的具体限定,在一些示例性实施例中,电子设备300可以包括比具体实施例和附图更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者具有不同的部件布置。
图4示出了本申请实施例提供的任务调度系统的框图。如图4所示,任务调度系统400包括转换模块402,任务队列存储器404,匹配模块406以及执行模块408。其中,转换模块402配置为将业务流程的实施过程转换为由多个子任务组成的子任务队列,其中,所述多个子任务中的每一个子任务对应多个阶段中的一个阶段。任务队列存储器404与所述转换模块402连接并配置为存储所述子任务队列。匹配模块406与所述任务队列存储器404连接并配置为,为所述多个阶段提供多个工作线程,所述多个阶段中的每一个阶段对应所述多个工作线程中的一个工作线程。执行模块408与所述任务队列存储器404和所述匹配模块406连接并且配置为,按照所述子任务队列的先后次序逐个执行所述多个子任务中的每一个子任务并调用与该子任务所对应的阶段相对应的工作线程来执行该子任务。参考上述图1所示的任务编排以及关于表1的说明,利用任务调度系统400进行任务编排,可以根据情况灵活地调整所调用的工作线程但是同时尽量保持整体不变,从而有利于提高执行效率及提供精细化控制同时保证整体计算效率和控制复杂度,如此不仅在资源调度层面和作业调度层面实现细粒度流程控制和精细化管理,而且能够很好应对联邦学习和隐私计算的各种应用场景下复杂多变的需求。
在一种可能的实施方式中,所述多个子任务中的每一个子任务包括配置信息,该配置信息指示该子任务所对应的阶段以及在所述子任务队列中相对于该子任务的上一个子任务所对应的阶段。按照所述子任务队列的先后次序逐个执行所述多个子任务中的每一个子任务并调用与该子任务所对应的阶段相对应的工作线程来执行该子任务,包括:根据所述多个子任务各自的配置信息确定以及校验与所述多个子任务各自对应的阶段。所述配置信息还指示该子任务的任务类型和该子任务的操作信息。所述匹配模块406还配置为:针对所述多个子任务中的每一个子任务,根据该子任务的配置信息所指示的该子任务的任务类型和该子任务的操作信息,确定与该子任务所对应的阶段相对应的工作线程。
在一种可能的实施方式中,将所述业务流程的实施过程转换为由所述多个子任务组成的所述子任务队列,包括:根据所述业务流程的算法特性,确定针对所述业务流程的实施过程的拆分方式,以及根据该拆分方式将所述业务流程的实施过程转换为由所述多个子任务组成的所述子任务队列。根据所述业务流程的算法特性,确定针对所述业务流程的实施过程的拆分方式,包括:当所述业务流程的算法特性包括迭代计算部分时,为该迭代计算部分提供专用子任务,并且所述专用子任务对应的工作线程针对迭代算法优化。
本申请提供的具体实施例可以用硬件,软件,固件或固态逻辑电路中的任何一种或组合来实现,并且可以结合信号处理,控制和/或专用电路来实现。本申请具体实施例提供的设备或装置可以包括一个或多个处理器(例如,微处理器,控制器,数字信号处理器(DSP),专用集成电路(ASIC),现场可编程门阵列(FPGA)等),这些处理器处理各种计算机可执行指令从而控制设备或装置的操作。本申请具体实施例提供的设备或装置可以包括将各个组件耦合在一起的系统总线或数据传输系统。系统总线可以包括不同总线结构中的任何一种或不同总线结构的组合,例如存储器总线或存储器控制器,外围总线,通用串行总线和/或利用多种总线体系结构中的任何一种的处理器或本地总线。本申请具体实施例提供的设备或装置可以是单独提供,也可以是系统的一部分,也可以是其它设备或装置的一部分。
本申请提供的具体实施例可以包括计算机可读存储介质或与计算机可读存储介质相结合,例如能够提供非暂时性数据存储的一个或多个存储设备。计算机可读存储介质/存储设备可以被配置为保存数据,程序器和/或指令,这些数据,程序器和/或指令在由本申请具体实施例提供的设备或装置的处理器执行时使这些设备或装置实现有关操作。计算机可读存储介质/存储设备可以包括以下一个或多个特征:易失性,非易失性,动态,静态,可读/写,只读,随机访问,顺序访问,位置可寻址性,文件可寻址性和内容可寻址性。在一个或多个示例性实施例中,计算机可读存储介质/存储设备可以被集成到本申请具体实施例提供的设备或装置中或属于公共系统。计算机可读存储介质/存储设备可以包括光存储设备,半导体存储设备和/或磁存储设备等等,也可以包括随机存取存储器(RAM),闪存,只读存储器(ROM),可擦可编程只读存储器(EPROM),电可擦可编程只读存储器(EEPROM),寄存器,硬盘,可移动磁盘,可记录和/或可重写光盘(CD),数字多功能光盘(DVD),大容量存储介质设备或任何其他形式的合适存储介质。
以上是本申请实施例的实施方式,应当指出,本申请具体实施例描述的方法中的步骤可以根据实际需要进行顺序调整、合并和删减。在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述的部分,可以参见其他实施例的相关描述。可以理解的是,本申请实施例以及附图所示的结构并不构成对有关装置或系统的具体限定。在本申请另一些实施例中,有关装置或系统可以包括比具体实施例和附图更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者具有不同的部件布置。本领域技术人员将理解,在不脱离本申请具体实施例的精神和范围的情况下,可以对具体实施例记载的方法和设备的布置,操作和细节进行各种修改或变化;在不脱离本申请实施例原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本申请的保护范围。
Claims (28)
1.一种任务调度方法,其特征在于,包括:
将业务流程的实施过程转换为由多个子任务组成的子任务队列,其中,所述多个子任务中的每一个子任务对应多个阶段中的一个阶段;
为所述多个阶段提供多个工作线程,所述多个阶段中的每一个阶段对应所述多个工作线程中的一个工作线程;
按照所述子任务队列的先后次序逐个执行所述多个子任务中的每一个子任务并调用与该子任务所对应的阶段相对应的工作线程来执行该子任务。
2.根据权利要求1所述的任务调度方法,其特征在于,所述多个子任务中的每一个子任务包括配置信息,该配置信息指示该子任务所对应的阶段以及在所述子任务队列中相对于该子任务的上一个子任务所对应的阶段。
3.根据权利要求2所述的任务调度方法,其特征在于,按照所述子任务队列的先后次序逐个执行所述多个子任务中的每一个子任务并调用与该子任务所对应的阶段相对应的工作线程来执行该子任务,包括:
根据所述多个子任务各自的配置信息确定以及校验与所述多个子任务各自对应的阶段。
4.根据权利要求2所述的任务调度方法,其特征在于,所述配置信息还指示该子任务的任务类型和该子任务的操作信息。
5.根据权利要求4所述的任务调度方法,其特征在于,该子任务的操作信息包括该子任务的handler方法。
6.根据权利要求4所述的任务调度方法,其特征在于,所述方法还包括:
针对所述多个子任务中的每一个子任务,根据该子任务的配置信息所指示的该子任务的任务类型和该子任务的操作信息,确定与该子任务所对应的阶段相对应的工作线程。
7.根据权利要求1所述的任务调度方法,其特征在于,所述多个子任务中至少两个子任务对应所述多个阶段中的同一个阶段,并且调用与该同一个阶段对应的同一个工作线程来执行所述至少两个子任务。
8.根据权利要求1所述的任务调度方法,其特征在于,所述多个工作线程中的至少一个线程调用多核处理器提供并行计算。
9.根据权利要求1所述的任务调度方法,其特征在于,所述多个子任务中的至少一个子任务被拆分成多个并行处理任务,与该至少一个子任务所对应的阶段相对应的工作线程调用多核处理器为所述多个并行处理任务提供并行计算。
10.根据权利要求1所述的任务调度方法,其特征在于,所述多个子任务中的至少一个子任务被拆分成多个并行处理任务,与该至少一个子任务所对应的阶段相对应的工作线程被并行执行从而为所述多个并行处理任务提供并行计算。
11.根据权利要求1所述的任务调度方法,其特征在于,所述多个工作线程从可用线程池中选择,所述可用线程池中的线程可以被动态调整。
12.根据权利要求11所述的任务调度方法,其特征在于,所述可用线程池中的线程可以被动态调整,包括:可以增加新的线程到所述可用线程池或者可以从所述可用线程池中移除线程。
13.根据权利要求1所述的任务调度方法,其特征在于,所述业务流程是联邦学习任务,所述联邦学习任务的实施过程被转换为由四个子任务组成的子任务队列,所述四个子任务按照所述子任务队列的先后次序依次对应第一操作线程、第一发送线程、第二操作线程以及第二发送线程。
14.根据权利要求1所述的任务调度方法,其特征在于,所述多个子任务中至少一个子任务用于消息传递,该至少一个子任务对应发送阶段,与该至少一个子任务所对应的阶段相对应的工作线程是发送线程。
15.根据权利要求1所述的任务调度方法,其特征在于,所述多个子任务中至少一个子任务用于特定计算,该至少一个子任务对应执行阶段,与该至少一个子任务所对应的阶段相对应的工作线程是操作线程。
16.根据权利要求1所述的任务调度方法,其特征在于,将所述业务流程的实施过程转换为由所述多个子任务组成的所述子任务队列,包括:
根据所述业务流程的算法特性,确定针对所述业务流程的实施过程的拆分方式,以及根据该拆分方式将所述业务流程的实施过程转换为由所述多个子任务组成的所述子任务队列。
17.根据权利要求16所述的任务调度方法,其特征在于,根据所述业务流程的算法特性,确定针对所述业务流程的实施过程的拆分方式,包括:
当所述业务流程的算法特性包括迭代计算部分时,为该迭代计算部分提供专用子任务。
18.根据权利要求17所述的任务调度方法,其特征在于,所述方法还包括:
为该专用子任务所对应的阶段提供专用工作线程,该专用工作线程针对迭代算法优化。
19.根据权利要求1所述的任务调度方法,其特征在于,为所述多个阶段提供所述多个工作线程,包括:
根据可用硬件资源和当前所有业务流程的整体需求,确定所述多个阶段的阶段总数并根据所确定的所述多个阶段的阶段总数确定所述多个工作线程的线程总数。
20.一种非瞬时性计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,该计算机指令被处理器执行时实现根据权利要求1至19中任一项所述的方法。
21.一种电子设备,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器通过运行所述可执行指令以实现根据权利要求1至19中任一项所述的方法。
22.一种任务调度系统,其特征在于,包括:
转换模块,配置为将业务流程的实施过程转换为由多个子任务组成的子任务队列,其中,所述多个子任务中的每一个子任务对应多个阶段中的一个阶段;
任务队列存储器,与所述转换模块连接并配置为存储所述子任务队列;
匹配模块,与所述任务队列存储器连接并配置为,为所述多个阶段提供多个工作线程,所述多个阶段中的每一个阶段对应所述多个工作线程中的一个工作线程;
执行模块,与所述任务队列存储器和所述匹配模块连接并且配置为,按照所述子任务队列的先后次序逐个执行所述多个子任务中的每一个子任务并调用与该子任务所对应的阶段相对应的工作线程来执行该子任务。
23.根据权利要求22所述的任务调度系统,其特征在于,所述多个子任务中的每一个子任务包括配置信息,该配置信息指示该子任务所对应的阶段以及在所述子任务队列中相对于该子任务的上一个子任务所对应的阶段。
24.根据权利要求23所述的任务调度系统,其特征在于,按照所述子任务队列的先后次序逐个执行所述多个子任务中的每一个子任务并调用与该子任务所对应的阶段相对应的工作线程来执行该子任务,包括:
根据所述多个子任务各自的配置信息确定以及校验与所述多个子任务各自对应的阶段。
25.根据权利要求23所述的任务调度系统,其特征在于,所述配置信息还指示该子任务的任务类型和该子任务的操作信息。
26.根据权利要求25所述的任务调度系统,其特征在于,所述匹配模块还配置为:
针对所述多个子任务中的每一个子任务,根据该子任务的配置信息所指示的该子任务的任务类型和该子任务的操作信息,确定与该子任务所对应的阶段相对应的工作线程。
27.根据权利要求22所述的任务调度系统,其特征在于,将所述业务流程的实施过程转换为由所述多个子任务组成的所述子任务队列,包括:
根据所述业务流程的算法特性,确定针对所述业务流程的实施过程的拆分方式,以及根据该拆分方式将所述业务流程的实施过程转换为由所述多个子任务组成的所述子任务队列。
28.根据权利要求27所述的任务调度系统,其特征在于,根据所述业务流程的算法特性,确定针对所述业务流程的实施过程的拆分方式,包括:
当所述业务流程的算法特性包括迭代计算部分时,为该迭代计算部分提供专用子任务,并且所述专用子任务对应的工作线程针对迭代算法优化。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111225495.4A CN113672374A (zh) | 2021-10-21 | 2021-10-21 | 用于联邦学习和隐私计算的任务调度方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111225495.4A CN113672374A (zh) | 2021-10-21 | 2021-10-21 | 用于联邦学习和隐私计算的任务调度方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113672374A true CN113672374A (zh) | 2021-11-19 |
Family
ID=78550755
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111225495.4A Pending CN113672374A (zh) | 2021-10-21 | 2021-10-21 | 用于联邦学习和隐私计算的任务调度方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113672374A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114116236A (zh) * | 2022-01-26 | 2022-03-01 | 中国电子科技集团公司第十五研究所 | 一种异构计算系统的构建方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109582455A (zh) * | 2018-12-03 | 2019-04-05 | 恒生电子股份有限公司 | 多线程任务处理方法、装置及存储介质 |
CN110908724A (zh) * | 2019-12-03 | 2020-03-24 | 深圳市迅雷网络技术有限公司 | 一种Android App启动方法及相关组件 |
CN111258774A (zh) * | 2020-01-07 | 2020-06-09 | 深圳壹账通智能科技有限公司 | 流程处理方法、装置、计算机设备及存储介质 |
US20200183741A1 (en) * | 2017-06-05 | 2020-06-11 | JRD Communication (Shenzhen) Ltd. | Gpp-based 5g terminal common platform optimization method and system |
-
2021
- 2021-10-21 CN CN202111225495.4A patent/CN113672374A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200183741A1 (en) * | 2017-06-05 | 2020-06-11 | JRD Communication (Shenzhen) Ltd. | Gpp-based 5g terminal common platform optimization method and system |
CN109582455A (zh) * | 2018-12-03 | 2019-04-05 | 恒生电子股份有限公司 | 多线程任务处理方法、装置及存储介质 |
CN110908724A (zh) * | 2019-12-03 | 2020-03-24 | 深圳市迅雷网络技术有限公司 | 一种Android App启动方法及相关组件 |
CN111258774A (zh) * | 2020-01-07 | 2020-06-09 | 深圳壹账通智能科技有限公司 | 流程处理方法、装置、计算机设备及存储介质 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114116236A (zh) * | 2022-01-26 | 2022-03-01 | 中国电子科技集团公司第十五研究所 | 一种异构计算系统的构建方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102713849B (zh) | 用于抽象对虚拟机的基于非功能需求的部署的方法和系统 | |
US8862933B2 (en) | Apparatus, systems and methods for deployment and management of distributed computing systems and applications | |
KR101656360B1 (ko) | 자동 분산병렬 처리 하둡 시스템을 지원하는 클라우드 시스템 | |
US10970805B2 (en) | Graphics processing unit operation | |
CN114064278A (zh) | 用于联邦学习的异构加速引擎及方法 | |
CN112256414A (zh) | 一种连接多种计算存储引擎的方法及系统 | |
CN112367363A (zh) | 一种信息共享方法、装置、服务器及存储介质 | |
CN113672374A (zh) | 用于联邦学习和隐私计算的任务调度方法及系统 | |
CN114816694A (zh) | 一种多流程协作的rpa任务调度方法及装置 | |
US9323509B2 (en) | Method and system for automated process distribution | |
CN116402318A (zh) | 面向配电网的多级算力资源分配方法、装置及网络架构 | |
Senthilkumar et al. | Energy aware task scheduling using hybrid firefly-GA in big data | |
Sfika et al. | Dynamic cloud resources allocation on multidomain/multiphysics problems | |
Upadhye et al. | Cloud resource allocation as non-preemptive approach | |
Meyer et al. | Pipel: exploiting resource reorganisation to optimise performance of pipeline-structured applications in the cloud | |
US11509528B2 (en) | Dynamic cloud native cluster construction using under-utilized machines | |
CN116032928B (zh) | 数据协同计算方法、装置、系统、电子装置和存储介质 | |
Hamed et al. | AVAILABILITY EVALUATION OF DIFFERENT PLANNING AND SCHEDULING ALGORITHMS IN HYBRID CLOUD SYSTEM | |
CN110147280B (zh) | 基于安全与成本感知的大数据应用调度方法 | |
US20230419160A1 (en) | 3-tier quantum computing execution model | |
Suri et al. | Stochastic simulator for optimal cloud resource allocation in a heterogeneous environment | |
Bala et al. | Design and deployment of workflows in cloud environment | |
CN117931394A (zh) | 基于tee的可信数据分析集群调度方法、系统及介质 | |
CN117952078A (zh) | 多源语言模型的管理方法、装置、计算机设备及存储介质 | |
US20200404041A1 (en) | Dynamically converting static and dynamic connections in a streaming application |
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 |