CN113805976A - 数据处理方法及装置、电子设备及计算机可读存储介质 - Google Patents

数据处理方法及装置、电子设备及计算机可读存储介质 Download PDF

Info

Publication number
CN113805976A
CN113805976A CN202111087466.6A CN202111087466A CN113805976A CN 113805976 A CN113805976 A CN 113805976A CN 202111087466 A CN202111087466 A CN 202111087466A CN 113805976 A CN113805976 A CN 113805976A
Authority
CN
China
Prior art keywords
task
execution
subtask
processed
workflow
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
CN202111087466.6A
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.)
Shanghai Sensetime Technology Development Co Ltd
Original Assignee
Shanghai Sensetime Technology Development Co Ltd
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 Shanghai Sensetime Technology Development Co Ltd filed Critical Shanghai Sensetime Technology Development Co Ltd
Priority to CN202111087466.6A priority Critical patent/CN113805976A/zh
Publication of CN113805976A publication Critical patent/CN113805976A/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/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本申请公开了一种数据处理方法及装置、电子设备及计算机可读存储介质。该方法包括:所述方法应用于服务器,所述方法包括:所述服务器获取待处理数据、第一工作流的第一描述文件和所述第一工作流的第一执行环境,所述第一工作流为待处理任务的工作流,所述待处理任务的输入数据包括所述待处理数据,所述第一描述文件携带所述第一工作流的定义信息和第二工作流的定义信息,所述第二工作流为所述待处理任务的子任务的工作流;所述服务器依据所述第一描述文件,控制所述至少两个执行设备通过所述第一执行环境执行所述待处理任务,得到第一处理结果。

Description

数据处理方法及装置、电子设备及计算机可读存储介质
技术领域
本申请涉及计算机技术领域,尤其涉及一种数据处理方法及装置、电子设备及计算机可读存储介质。
背景技术
近年来随着网格、云计算工作流等分布式计算技术的发展,关于任务的工作流在分布式系统环境下的调度问题越来越受到关注。但是,目前的技术中,分布式工作流的描述文件所携带的任务定义信息对任务逻辑的描述不够准确。
发明内容
本申请提供一种数据处理方法及装置、电子设备及计算机可读存储介质。
第一方面,提供了一种数据处理方法,所述方法应用于服务器,所述服务器属于分布式系统,所述分布式系统还包括至少两个执行设备,所述方法包括:
所述服务器获取待处理数据、第一工作流的第一描述文件和所述第一工作流的第一执行环境,所述第一工作流为待处理任务的工作流,所述待处理任务的输入数据包括所述待处理数据,所述第一描述文件携带所述第一工作流的定义信息和第二工作流的定义信息,所述第二工作流为所述待处理任务的子任务的工作流;
所述服务器依据所述第一描述文件,控制所述至少两个执行设备通过所述第一执行环境执行所述待处理任务,得到第一处理结果。
结合本申请任一实施方式,所述服务器依据所述第一描述文件,控制所述至少两个执行设备通过所述第一执行环境执行所述待处理任务,得到第一处理结果,包括:
在确定所述第一工作流的数据结构为有向无环图的情况下,所述服务器依据所述第一描述文件,控制所述至少两个执行设备通过所述第一执行环境执行所述待处理任务,得到第一处理结果。
结合本申请任一实施方式,所述在确定所述第一工作流的数据结构为有向无环图的情况下,所述服务器依据所述第一描述文件,控制所述至少两个执行设备通过所述第一执行环境执行所述待处理任务,得到第一处理结果,包括:
在确定所述第一工作流的数据结构为有向无环图,且所述第二工作流中的任务不包含所述待处理任务的子任务的情况下,所述服务器依据所述第一描述文件,控制所述至少两个执行设备通过所述第一执行环境执行所述待处理任务,得到第一处理结果。
结合本申请任一实施方式,所述服务器依据所述第一描述文件,控制所述至少两个执行设备通过所述第一执行环境执行所述待处理任务,得到第一处理结果,包括:
所述服务器依据所述第一描述文件确定所述待处理任务的至少两个子任务的执行顺序;
所述服务器依据所述第一描述文件确定所述待处理任务的至少两个子任务的执行设备,得到设备结果;
所述服务器依据所述执行顺序和所述设备结果,控制所述至少两个执行设备通过所述第一执行环境执行所述待处理任务,得到所述第一处理结果。
结合本申请任一实施方式,所述服务器依据所述执行顺序和所述设备结果,控制所述至少两个执行设备通过所述第一执行环境执行所述待处理任务,得到第一处理结果,包括:
所述服务器向第一执行设备发送所述待处理数据、用于执行第一任务的第二执行环境和执行所述第一任务的第一指令;所述第二执行环境属于所述第一执行环境,所述第一任务为所述执行顺序中最先执行的子任务,所述第一执行设备为依据所述设备结果确定的所述第一任务的执行设备;
在所述服务器接收到所述第一执行设备针对所述第一指令返回的所述第一任务的第二处理结果和所述第一任务已执行完的第二指令情况下,向第二执行设备发送所述第二处理结果和执行第二任务的第三指令,所述第二任务为所述执行顺序中在执行次序在所述第一任务之后的子任务,所述第二执行设备为依据所述设备结果确定的所述第二任务的执行设备;
所述服务器在接收到第三执行设备返回的第三任务的第三处理结果的情况下,确定所述第三处理结果为所述第一处理结果,所述第三任务为所述执行顺序中最后执行的子任务,所述第三执行设备为依据所述设备结果确定的所述第三任务的执行设备。
结合本申请任一实施方式,所述第二工作流的数据结构为有向无环图。
结合本申请任一实施方式,所述服务器依据所述第一描述文件确定所述待处理任务的至少两个子任务的执行顺序,包括:
所述服务器依据所述第一描述文件确定所述待处理任务的至少两个子任务的依赖关系;
所述服务器依据所述至少两个子任务的依赖关系对所述至少两个子任务以广度优先搜索方式进行搜索,确定所述至少两个子任务的执行顺序。
第二方面,提供了一种服务器,所述服务器属于分布式系统,所述分布式系统还包括至少两个执行设备,所述服务器包括:
获取单元,用于获取待处理数据、第一工作流的第一描述文件和所述第一工作流的第一执行环境,所述第一工作流为待处理任务的工作流,所述待处理任务的输入数据包括所述待处理数据,所述第一描述文件携带所述第一工作流的定义信息和第二工作流的定义信息,所述第二工作流为所述待处理任务的子任务的工作流;
处理单元,用于依据所述第一描述文件,控制所述至少两个执行设备通过所述第一执行环境执行所述待处理任务,得到第一处理结果。
结合本申请任一实施方式,所述处理单元,用于:
在确定所述第一工作流的数据结构为有向无环图的情况下,所述服务器依据所述第一描述文件,控制所述至少两个执行设备通过所述第一执行环境执行所述待处理任务,得到第一处理结果。
结合本申请任一实施方式,所述处理单元,用于:
在确定所述第一工作流的数据结构为有向无环图,且所述第二工作流中的任务不包含所述待处理任务的子任务的情况下,所述服务器依据所述第一描述文件,控制所述至少两个执行设备通过所述第一执行环境执行所述待处理任务,得到第一处理结果。
结合本申请任一实施方式,所述处理单元,用于:
所述服务器依据所述第一描述文件确定所述待处理任务的至少两个子任务的执行顺序;
所述服务器依据所述第一描述文件确定所述待处理任务的至少两个子任务的执行设备,得到设备结果;
所述服务器依据所述执行顺序和所述设备结果,控制所述至少两个执行设备通过所述第一执行环境执行所述待处理任务,得到所述第一处理结果。
结合本申请任一实施方式,所述处理单元,用于:
所述服务器向第一执行设备发送所述待处理数据、用于执行第一任务的第二执行环境和执行所述第一任务的第一指令;所述第二执行环境属于所述第一执行环境,所述第一任务为所述执行顺序中最先执行的子任务,所述第一执行设备为依据所述设备结果确定的所述第一任务的执行设备;
在所述服务器接收到所述第一执行设备针对所述第一指令返回的所述第一任务的第二处理结果和所述第一任务已执行完的第二指令情况下,向第二执行设备发送所述第二处理结果和执行第二任务的第三指令,所述第二任务为所述执行顺序中在执行次序在所述第一任务之后的子任务,所述第二执行设备为依据所述设备结果确定的所述第二任务的执行设备;
所述服务器在接收到第三执行设备返回的第三任务的第三处理结果的情况下,确定所述第三处理结果为所述第一处理结果,所述第三任务为所述执行顺序中最后执行的子任务,所述第三执行设备为依据所述设备结果确定的所述第三任务的执行设备。
结合本申请任一实施方式,所述第二工作流的数据结构为有向无环图。
结合本申请任一实施方式,所述处理单元,用于:
所述服务器依据所述第一描述文件确定所述待处理任务的至少两个子任务的依赖关系;
所述服务器依据所述至少两个子任务的依赖关系对所述至少两个子任务以广度优先搜索方式进行搜索,确定所述至少两个子任务的执行顺序。
第三方面,提供了一种电子设备,其特征在于,包括:处理器和存储器,所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,在所述处理器执行所述计算机指令的情况下,所述电子设备执行如上述第一方面及其任意一种可能实现的方式的方法。
第四方面,提供了另一种电子设备,包括:处理器、发送装置、输入装置、输出装置和存储器,所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,在所述处理器执行所述计算机指令的情况下,所述电子设备执行如上述第一方面及其任意一种可能实现的方式的方法。
第五方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序包括程序指令,在所述程序指令被处理器执行的情况下,使所述处理器执行如上述第一方面及其任意一种可能实现的方式的方法。
第六方面,提供了一种计算机程序产品,所述计算机程序产品包括计算机程序或指令,在所述计算机程序或指令在计算机上运行的情况下,使得所述计算机执行上述第一方面及其任一种可能的实现方式的方法。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本申请。
本申请中,第一描述文件包括第二工作流,而第二工作流所对应的任务包括至少两个子任务,那么就可以将子任务A和子任务B合并为一个子任务,并将子任务C、子任务D和子任务E合并一个子任务,进而可使第一描述文件对待处理任务的子任务的划分更符合待处理任务的处理逻辑,从而使第一描述文件可更好的描述第一工作流,并可提高相关人员开发第一执行环境的效率。
附图说明
为了更清楚地说明本申请实施例或背景技术中的技术方案,下面将对本申请实施例或背景技术中所需要使用的附图进行说明。
此处的附图被并入说明书中并构成本说明书的一部分,这些附图示出了符合本申请的实施例,并与说明书一起用于说明本申请的技术方案。
图1为本申请实施例提供的一种分布式系统架构示意图;
图2为本申请实施例提供的一种数据处理方法的流程示意图;
图3为本申请实施例提供的一种第一工作流的数据结构示意图;
图4为本申请实施例提供的一种第一工作流的描述文件示意图;
图5为本申请实施例提供的一种第二子任务的定义信息示意图;
图6为本申请实施例提供的一种第二工作流的描述文件示意图;
图7为本申请实施例提供的一种服务器的结构示意图;
图8为本申请实施例提供的一种服务器的硬件结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上,“至少两个(项)”是指两个或三个及三个以上,“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”可表示前后关联对象是一种“或”的关系,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。字符“/”还可表示数学运算中的除号,例如,a/b=a除以b;6/3=2。“以下至少一项(个)”或其类似表达。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
下面结合本申请实施例中的附图对本申请实施例进行描述。
请参阅图1,图1是本申请提供的一种分布式系统1000的架构示意图。在图1中,服务器1001与至少两个执行设备1002之间具有通信连接。本申请实施例中,执行设备可以是任意电子设备。可选的,执行设备为以下中的一种:计算机、服务器、工作站、平板电脑、手机。服务器1001可通过通信连接向至少两个执行设备1002中的任意一个执行设备发送指令和数据,以控制执行设备执行工作流中的任务,从而完成工作流。可选的,本申请实施例中的工作流为分布式工作流。
请参阅图2,图2是本申请实施例提供的一种数据处理方法的流程示意图。本申请实施例提供的技术方案应用于分布式系统1000中服务器1001。
201、服务器获取待处理数据、第一工作流的第一描述文件和第一工作流的第一执行环境。
本申请实施例中,第一工作流为待处理任务的工作流,其中,待处理任务可以是任意任务。例如,待处理任务为对神经网络进行训练。又例如,待处理任务为对数据库进行检索。再例如,待处理任务为依据路况信息进行车辆调度。
本申请实施例中,待处理任务的输入数据包括待处理数据。例如,在待处理任务为对神经网络进行训练的情况下,待处理任务的输入数据包括训练神经网络所需的训练数据。又例如,在待处理任务为对数据库进行检索的情况下,待处理任务的输入数据包括检索信息和待检索的数据库。再例如,在待处理任务为依据路况信息进行车辆调度的情况下,待处理任务的输入数据包括路况信息。
本申请实施例中,执行环境包括用于执行相应任务的文件。例如,待处理任务为对神经网络进行训练,用于执行待处理任务的文件为对神经网络进行训练的计算机程序。又例如,待处理任务为对数据库进行检索,用于执行待处理任务的文件为对数据库进行检索的计算机程序代码。
本申请实施例中,第一工作流的执行环境(compnoent)为第一执行环境,即第一执行环境包括用于执行待处理任务的文件。
应理解,在待处理任务包括至少两个子任务的情况下,第一执行环境包括每个子任务的执行环境。例如,训练神经网络的过程包括使用神经网络对训练数据进行处理得到训练结果、依据训练结果和标注信息对神经网络的参数进行更新。在待处理任务为对神经网络进行训练的情况下,待处理任务包括第一子任务和第二子任务,其中,第一子任务为对使用神经网络训练数据进行处理得到训练结果,第二子任务为依据训练结果和标注信息对神经网络的参数进行更新。此时,第一执行环境包括第一子任务的执行环境和第二子任务的执行环境。
本申请实施例中,工作流(包括上述第一工作流和第二工作流)的定义信息包括工作流所对应的任务的子任务的定义信息。例如,第一工作流所对应的任务为待处理任务,而待处理任务的子任务包括第一子任务和第二子任务,那么第一工作流的定义信息包括第一子任务的定义信息和第二子任务的定义信息。又例如,第二工作流所对应的任务为目标任务,而目标任务的子任务包括第三子任务和第四子任务,那么第二工作流的定义信息包括第三子任务的定义信息和第四子任务的定义信息。
本申请实施例中,工作流所对应的任务的子任务的定义信息包括以下至少一种:用于执行子任务的执行环境、执行子任务的起始指令、子任务与工作流所对应的任务中其他子任务之间的依赖关系、子任务的输入数据、子任务的输出数据。
例如,待处理任务包括第一子任务和第二子任务。第一工作流的定义信息包括第一执行环境的存储路径(下文称为第一存储路径)。第一子任务的定义信息包括用于执行第一子任务的执行环境存储于第一存储路径下名称为“ABC”的文件夹内。那么,服务器可依据第一存储路径获取用于执行第一子任务的执行环境。
在第一子任务的定义信息中,执行第一子任务的起始指令为“bash start.sh”,那么执行第一子任务的设备在检测到“bash start.sh”的情况下,执行第一子任务。
第一子任务的定义信息还包括第一子任务与第二子任务的依赖关系为,第一子任务的输出作为第二子任务的输入。那么服务器在确定第一子任务已执行完的情况下,将第一子任务的输出作为第二子任务的输入并执行第二子任务。
第一子任务的定义信息还包括,第一子任务的输入数据和第一子任务的输出数据。第一子任务的输入数据可以是参数,第一子任务的输入数据也可以是第一子任务的输入数据的存储路径。第一子任务的输出数据可以是参数,第一子任务的输出数据也可以是第一子任务的输入数据的存储路径。如,
本申请实施例中,第一工作流的描述文件为第一描述文件,其中,第一描述文件携带第一工作流的定义信息和第二工作流的定义信息。
可选的,工作流的定义信息还包括工作流的数据结构。例如,第一工作流的定义信息还包括第一工作流的数据结构为有向无环图(directed acyclic graph,DAG)。第二工作流的定义信息还包括第二工作流的数据结构为有向无环图(directed acyclic graph,DAG)。
本申请实施例中,第二工作流为待处理任务的子任务的工作流,即第二工作流对应的任务为待处理任务的子任务。例如,待处理任务的子任务包括第一子任务和第二子任务,此时,第二工作流是第一子任务的工作流,第二工作流或是第二子任务的工作流。
202、上述服务器依据上述第一描述文件,控制上述至少两个执行设备通过上述第一执行环境执行上述待处理任务,得到第一处理结果。
本申请实施例中,第一处理结果即为执行完待处理任务所得到的结果。
在一种可能实现的方式中,服务器依据第一描述文件确定待处理任务的至少两个子任务的执行顺序。服务器确定待处理任务的至少两个子任务的执行设备,得到设备结果。所述服务器依据执行顺序和设备结果,控制至少两个执行设备通过第一执行环境执行待处理任务,得到第一处理结果。
在该种实现方式中,待处理任务包括至少两个子任务。由于第一描述文件携带每个子任务的定义信息,而子任务的定义信息又携带子任务之间的依赖关系,服务器依据第一描述文件可确定至少两个子任务的执行顺序。
例如,待处理任务包括第一子任务和第二子任务。第一子任务的定义信息包括第一子任务与第二子任务的依赖关系为,第一子任务的输出作为第二子任务的输入。此时,服务器可确定第一子任务和第二子任务的执行顺序为,先执行第一子任务,在执行完第一子任务的情况下执行第二子任务。
作为一种可选的实施方式,在服务器控制至少两个执行设备执行待处理任务之前,至少两个执行设备中的每个执行设备均已在服务器上注册,即服务器存储有每个执行设备的注册信息,其中,执行设备的注册信息包括执行设备所执行的子任务。
例如,待处理任务包括第一子任务和第二子任务,至少两个执行设备包括第一执行设备和第二执行设备。在服务器中,第一执行设备的注册信息包括第一执行设备为第一子任务的执行设备,第二执行设备的注册信息包括第二执行设备为第二子任务的执行设备。
在该种实施方式中,服务器依据至少两个执行设备的注册信息,得到设备执行结果。例如,待处理任务包括第一子任务和第二子任务,至少两个执行设备包括第一执行设备和第二执行设备。服务器依据注册信息确定第一子任务由第一执行设备执行,第二子任务由第二执行设备执行。因此在服务器得到的设备结果中,第一子任务由第一执行设备执行,第二子任务由第二执行设备执行。
作为另一种可选的实施方式,第一描述文件中携带待处理任务的子任务的执行设备信息,服务器依据第一描述文件可确定待处理任务的至少两个子任务的执行设备,得到设备结果。
例如,待处理任务包括第一子任务和第二子任务,至少两个执行设备包括第一执行设备和第二执行设备。服务器依据第一描述文件确定第一子任务由第一执行设备执行,第二子任务由第二执行设备执行。因此在服务器得到的设备结果中,第一子任务由第一执行设备执行,第二子任务由第二执行设备执行。
在得到执行顺序和设备结果之后,服务器依据执行顺序和设备结果,控制至少两个执行通过第一执行环境执行待处理任务,得到待处理任务的处理结果。
例如,待处理任务包括第一子任务和第二子任务,至少两个执行设备包括第一执行设备和第二执行设备。在执行顺序中,第一子任务的执行顺序比先第二子任务先执行。在设备结果中,第一执行设备为第一子任务的执行设备,第二执行设备为第二子任务的执行设备。
服务器依据第一描述文件从第一执行环境中确定用于执行第一子任务的执行环境(下文称为第一子任务执行环境),并向第一执行设备发送第一子任务执行环境、待处理数据以及执行第一子任务的起始指令。
第一执行设备在接收到第一子任务执行环境、待处理数据以及执行第一子任务的起始指令的情况下,通过第一子任务执行环境对待处理数据进行处理,完成第一子任务的执行,得到第一子任务的执行结果。第一执行设备向服务器发送已执行完第一子任务的指令以及第一子任务的执行结果。
服务器在接收到已执行完第一子任务的指令以及第一子任务的执行结果的情况下,依据第一描述文件从第一执行环境中确定用于执行第二子任务的执行环境(下文称为第二子任务执行环境),并向第二执行设备发送第二子任务执行环境、第一子任务的执行结果以及执行第二子任务的起始指令。
应理解,在第二工作流为待处理任务的子任务的工作流,而工作流所对应的任务包括至少两个子任务,即待处理任务中至少一个子任务包括两个子任务。例如,待处理任务包括第一子任务和第二子任务。若第二工作流所对应的任务为第一子任务,则第一子任务包括至少两个子任务。
若将待处理任务中包括至少两个子任务的子任务称为嵌套子任务,那么嵌套子任务的执行设备的数量大于1,具体的,嵌套子任务的执行设备包括嵌套子任务所包括的子任务的执行设备。
例如,待处理任务包括第一子任务和第二子任务。若第二工作流所对应的任务为第一子任务,则第一子任务包括至少两个子任务,即第一子任务为嵌套子任务。若第一子任务的子任务包括第三子任务和第四子任务,其中,第三子任务的执行设备为第一执行设备,第四子任务的执行设备为第二执行设备,那么第一子任务的执行设备包括第一执行设备和第二执行设备。
本申请实施例中,分布式系统依据第一描述文件,控制至少两个执行设备执行待处理任务,可实现在数据处理量大的情况下,实现并行处理,从而提高处理速度。
此外,由于本申请实施例中的第一描述文件包括第二工作流,而第二工作流所对应的任务包括至少两个子任务,第一描述文件可更好的描述第一工作流,并可提高相关人员开发第一执行环境的效率。
例如,神经网络的训练过程包括以下几个步骤:对训练图像进行预处理、使用神经网络对预处理后的训练图像进行处理得到训练结果、依据训练结果和训练数据的标注信息更新神经网络的参数。对训练图像进行预处理包括:先调整训练图像的尺寸在调整训练图像的分辨率,使训练图像的尺寸为预设尺寸、训练图像的分辨率为预设分辨率,得到预处理后的训练图像。使用神经网络对预处理后的训练图像进行处理得到训练结果包括:对预处理后的训练图像依次进行卷积处理、池化处理、非线性变换。
在待处理任务为对神经网络进行训练的情况下,待处理任务的包括以下几个步骤:调整训练图像的尺寸、调整第一中间图像(调整训练图像的尺寸得到的图像)的分辨率、对预处理后的训练图像(即调整第一中间图像的分辨率得到的图像)进行卷积处理、对第二中间图像(对预处理后的训练图像进行卷积处理得到的图像)进行池化处理、对第三中间图像(对第二中间图像进行池化处理得到的图像)进行非线性变换、依据训练结果(即对第三中间图像进行非线性变换得到的结果)和训练数据的标注信息更新神经网络的参数。
若将待处理任务中的每个步骤作为一个子任务,那么待处理任务包括以下几个子任务:子任务A、子任务B、子任务C、子任务D、子任务E、子任务F。子任务A为调整训练图像的尺寸,子任务B为调整第一中间图像的分辨率,子任务C为对预处理后的训练图像进行卷积处理,子任务D为对第二中间图像进行池化处理,子任务E为对第三中间图像进行非线性变换,子任务F为依据训练结果和训练数据的标注信息更新神经网络的参数。
显然,在待处理任务中,子任务A和子任务B均属于对训练图像进行预处理这一步骤的过程,如果将子任务A和子任务B合并为一个子任务,更符合待处理任务的处理逻辑。同理,子任务C、子任务D和子任务E的均属于对预处理后的训练图像进行处理得到训练结果这一步骤的过程,如果将子任务C、子任务D和子任务E合并为一个子任务,也更符合待处理任务的处理逻辑。
此外,若将子任务A和子任务B合并为子任务F,相关人员在开发第一执行环境的过程中,可更好的理解子任务F在待处理任务中的作用,有助于相关人员开发第一执行环境。
再者,若不将子任务A和子任务B合并,那么在开发第一执行环境的过程中,可能需要不同的人员分别开发用于执行子任务A的执行环境和用于执行任务B的执行环境,而子任务B的输入数据为子任务A的输出数据,这样开发用于执行子任务A的执行环境的人员(下文称为子任务A的开发人员)和开发用于执行任务B的执行环境的人员(下文称为子任务B的开发人员)在开发过程中需要通过沟通确定子任务A与子任务B之间的数据传输。如子任务A在一个处理周期内可处理三张图像,那么子任务A的开发人员和子任务B的开发人员需要确定,子任务A输出的三张图像的顺序与输入至子任务A的三张图像的顺序之间是何种关系。
这显然会增加相关人员开发第一执行环境的沟通成本,降低第一执行环境的开发效率。同理,若不将子任务C、子任务D和子任务E合并为一个子任务,也会增加相关人员开发第一执行环境的沟通成本,降低第一执行环境的开发效率。
在本申请实施例中,第一描述文件包括第二工作流,而第二工作流所对应的任务包括至少两个子任务,那么就可以将子任务A和子任务B合并为一个子任务,并将子任务C、子任务D和子任务E合并一个子任务,进而可使第一描述文件对待处理任务的子任务的划分更符合待处理任务的处理逻辑,从而使第一描述文件可更好的描述第一工作流,并可提高相关人员开发第一执行环境的效率。
作为一种可选的实施方式,服务器在确定第一工作流的数据结构为有向无环图的情况下,执行步骤202。由于有向无环图可更好的描述工作流的数据结构,服务器在确定第一工作流的数据结构为有向无环图的情况下,控制至少两个执行设备执行待处理任务,可提升待处理任务的处理效率。
作为一种可选的实施方式,服务器在确定第一工作流的数据结构为有向无环图,且第二工作流中的任务不包含待处理任务的子任务的情况下,服务器依据第一描述文件,控制至少两个执行设备通过第一执行环境执行待处理任务,得到第一处理结果。
在该种实施方式中,第二工作流中的任务为第二工作流所对应的任务所包括的子任务。例如,第二工作流所对应的任务为待处理任务的第一子任务,第一子任务的子任务包括第二子任务和第三子任务。此时,第二工作流中的任务包括第二子任务和第三子任务。
若第二工作流中的任务包括待处理任务的子任务,说明第一工作流的处理逻辑可能是错误的。因此,服务器在确定第二工作流中的任务不包含待处理任务的子任务的情况下,依据第一描述文件控制至少两个执行设备执行待处理任务,可提高待处理任务的执行成功率,进而提高待处理任务的处理效率。
作为一种可选的实施方式,服务器依据执行顺序和设备结果,控制至少两个执行设备通过第一执行环境执行待处理任务,得到第一处理结果,具体包括以下步骤:
1、服务器向第一执行设备发送待处理数据、用于执行第一任务的第二执行环境和执行第一任务的第一指令。
本申请实施例中,第二执行环境用于执行第一任务,第二执行环境属于第一执行环境,第一任务为执行顺序中最先执行的子任务,第一执行设备为依据设备结果确定的第一任务的执行设备。
2、在服务器接收到第一执行设备针对第一指令返回的第一任务的第二处理结果和第一任务已执行完的第二指令情况下,向第二执行设备发送第二处理结果和执行第二任务的第三指令,第二任务为执行顺序中在执行次序在第一任务之后的子任务,第二执行设备为依据设备结果确定的第二任务的执行设备。
3、服务器在接收到第三执行设备返回的第三任务的第三处理结果的情况下,确定第三处理结果为第一处理结果,第三任务为执行顺序中最后执行的子任务,第三执行设备为依据设备结果确定的第三任务的执行设备。
本申请实施例中,第二任务为执行次序在第一任务之后的子任务,即在第一任务执行完的情况下执行第二任务。在待处理任务包括两个子任务的情况下,步骤2中的第二任务与步骤3中的第三任务相同。此时,服务器在接收到第二执行设备返回的第二任务的第三处理结果的情况下,确定第三处理结果为第一处理结果。
在待处理任务的子任务的数量为3的情况下,第一任务、第二任务、第三任务为待处理任务包括的三个不同的子任务,且在执行顺序中第一任务为最先执行的子任务,第二任务为第二个执行的子任务,第三任务为最后执行的子任务。
在待处理任务的子任务的数量大于3的情况下,第二任务表示执行次序在第一任务的执行次序后,且在第三任务的执行次序前的任务。
例如,待处理任务包括四个子任务,这四个子任务分别为子任务A、子任务B、子任务C和子任务D。若在执行顺序中,子任务A为最先执行的子任务,子任务B为第二个执行的子任务,子任务C为第三个执行的子任务,子任务D为最后执行的子任务。此时,第二任务可以是子任务C,第二任务也可以是任务D。
若子任务A的执行设备为执行设备a,子任务B的执行设备为执行设备b,子任务C的执行设备为执行设备c,子任务D的执行设备为执行设备d。服务器先向执行设备a发送待处理数据、用于执行子任务A的执行环境和执行子任务A的指令,以使执行设备a执行子任务A。
服务器在接收到执行设备a返回的子任务A的执行结果以及已执行完子任务A的指令的情况下,向执行设备b发送子任务A的执行结果、用于执行子任务B的执行环境和执行子任务B的指令,以使执行设备b执行子任务B。
服务器在接收到执行设备b返回的子任务B的执行结果以及已执行完子任务B的指令的情况下,向执行设备c发送子任务B的执行结果、用于执行子任务C的执行环境和执行子任务C的指令,以使执行设备c执行子任务C。
服务器在接收到执行设备c返回的子任务C的执行结果以及已执行完子任务C的指令的情况下,向执行设备d发送子任务D的执行结果、用于执行子任务D的执行环境和执行子任务D的指令,以使执行设备d执行子任务D。
服务器在接收到执行设备d返回的子任务D的处理结果的情况下,确定子任务D的执行结果为第一处理结果。
作为一种可选的实施方式,第二工作流的数据结构为有向无环图。如上所述,由于有向无环图可更好的描述工作流的数据结构,在第二工作流的数据结构为有向无环图的情况下,可更好的描述第二工作流的数据结构,从而提升第二工作流所对应的任务的处理效率。
作为一种可选的实施方式,服务器依据第一描述文件确定待处理任务的至少两个子任务的执行顺序,具体包括以下步骤:
4、服务器依据第一描述文件确定待处理任务的至少两个子任务的依赖关系。
本申请实施例中,依赖关系包括以下至少一种:子任务之间的数据传输、子任务的执行先后顺序。例如,子任务A与子任务B之间的数据传输是,子任务A的输出数据作为子任务B的输入数据。又例如,待处理任务包括子任务A和子任务B,子任务A和子任务B的依赖关系包括:先执行子任务A,再执行子任务B。
5、服务器依据至少两个子任务的依赖关系对至少两个子任务以广度优先搜索方式进行搜索,确定至少两个子任务的执行顺序。
可选的,第一工作流的描述文件以另一种标记语言(YAML Ain't MarkupLanguage,YAML)编写得到。
可选的,第一工作流的描述文件的语法格式为预设语法格式。该预设语法格式可以是任意自定义语法格式。例如,预设语法格式包括:描述文件的第一行为描述文件的版本,描述文件的第二行为工作流的数据结构。
可选的,第一工作流的描述文件以YAML语言编写得到,且第一工作流的描述文件的语法格式为预设语法格式。
基于本申请实施例提供的技术方案,本申请还提供了一种可能的应用场景。
随着神经网络性能的愈发强大,神经网络的应用越来越广。而在使用神经网络执行相关任务(如图像分类)之前,需要对神经网络进行训练。由于在神经网络的训练过程中,神经网络所需处理的数据量非常大,为缩短训练时间通常会基于分布式系统实现神经网络的训练。在基于分布式系统对神经网络进行训练之前,相关人员需要构建训练神经网络的工作流、开发用于训练神经网络的执行环境。基于本申请实施例提供的技术方案,构建训练神经网络的工作流,不仅可提高相关人员构建工作流的效率,还可提高相关人员开发用于训练神经网络的执行环境的效率。
具体的,相关人员将训练神经网络这一任务拆分成多个子任务,依据多个子任务构建训练神经网络这一任务的工作流,作为第一工作流,其中,第一工作流包括至少两个子任务,且第一工作流包括至少一个嵌套子任务。
例如,相关人员将训练神经网络这一任务拆分成第一子任务、第二子任务、第三子任务、第四子任务、第五子任务、第六子任务、第七子任务、第八子任务,并构建训练神经网络这一任务的第一工作流。图3所示为第一工作流的数据结构,其中,A表示第一子任务、B表示第二子任务、C表示第三子任务、D表示第四子任务、E表示第五子任务、F表示第六子任务、G表示第七子任务、H表示第八子任务。在图3所示的第一工作流中,第二子任务包括第五子任务、第六子任务、第七子任务、第八子任务,即第二子任务为嵌套子任务。
在构建好第一工作流的数据结构后,相关人员依据第一工作流编写第一工作流的描述文件。例如,相关人员依据图3所示的数据结构撰写图4所示的描述文件。在图4所示的描述文件中,定义了该描述文件的版本为第一版以及第一工作流的数据结构为有向无环图,还定义了第一执行设备用于执行第一子任务,第二执行设备用于执行第二子任务,第三执行设备用于执行第三子任务,第四执行设备用于执行第四子任务。
图4所示的描述文件还包括第一子任务的定义信息、第二子任务的定义信息、第三子任务的定义信息、第四子任务的定义信息。
图5所示为第二子任务的定义信息,其中,第二子任务的定义信息包括用于执行第二子任务的执行环境的存储路径为存储路径1(依据存储路径1可下载用于执行第二子任务的执行环境)、第二子任务的起始指令为bash start.sh、第二子任务与第一子任务之间的依赖关系为第二子任务的输入数据包括第一子任务的输出数据、第二子任务的输入数据中除第一子任务的输出数据之外的数据的存储路径为存储路径2(依据存储路径2可下载输入数据中除第一子任务的输出数据之外的数据)、第二子任务的输出数据的存储路径为存储路径3(第二执行设备将第二子任务的输出数据存储在存储路径3下)、第二子任务的工作流的描述文件为第二工作流的描述文件。
图6所示为第二工作流的描述文件,该描述文件包括第二工作流的定义信息,其中,第二工作流的定义信息包括该描述文件的版本为第一版以及第二工作流的数据结构为有向无环图,第五执行设备用于执行第五子任务,第六执行设备用于执行第六子任务,第七执行设备用于执行第七子任务,第八执行设备用于执行第八子任务。
这样可按执行训练神经网络这一任务的过程中各步骤之间的逻辑关系,对执行训练神经网络这一任务进行拆分得到多个子任务,由此依据多个子任务构建第一工作流可提高构建第一工作流的效率,并可提高相关人员开发用于执行各个子任务的执行环境的效率,进而提高开发训练神经网络的执行环境的效率。
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
上述详细阐述了本申请实施例的方法,下面提供了本申请实施例的装置。
请参阅图7,图7为本申请实施例提供的一种服务器的结构示意图,该服务器1属于分布式系统,所述分布式系统还包括至少两个执行设备,所述服务器1包括获取单元11、处理单元12,其中:
获取单元11,用于获取待处理数据、第一工作流的第一描述文件和所述第一工作流的第一执行环境,所述第一工作流为待处理任务的工作流,所述待处理任务的输入数据包括所述待处理数据,所述第一描述文件携带所述第一工作流的定义信息和第二工作流的定义信息,所述第二工作流为所述待处理任务的子任务的工作流;
处理单元12,用于依据所述第一描述文件,控制所述至少两个执行设备通过所述第一执行环境执行所述待处理任务,得到第一处理结果。
结合本申请任一实施方式,所述处理单元12,用于:
在确定所述第一工作流的数据结构为有向无环图的情况下,所述服务器依据所述第一描述文件,控制所述至少两个执行设备通过所述第一执行环境执行所述待处理任务,得到第一处理结果。
结合本申请任一实施方式,所述处理单元12,用于:
在确定所述第一工作流的数据结构为有向无环图,且所述第二工作流中的任务不包含所述待处理任务的子任务的情况下,所述服务器依据所述第一描述文件,控制所述至少两个执行设备通过所述第一执行环境执行所述待处理任务,得到第一处理结果。
结合本申请任一实施方式,所述处理单元12,用于:
所述服务器依据所述第一描述文件确定所述待处理任务的至少两个子任务的执行顺序;
所述服务器依据所述第一描述文件确定所述待处理任务的至少两个子任务的执行设备,得到设备结果;
所述服务器依据所述执行顺序和所述设备结果,控制所述至少两个执行设备通过所述第一执行环境执行所述待处理任务,得到所述第一处理结果。
结合本申请任一实施方式,所述处理单元12,用于:
所述服务器向第一执行设备发送所述待处理数据、用于执行第一任务的第二执行环境和执行所述第一任务的第一指令;所述第二执行环境属于所述第一执行环境,所述第一任务为所述执行顺序中最先执行的子任务,所述第一执行设备为依据所述设备结果确定的所述第一任务的执行设备;
在所述服务器接收到所述第一执行设备针对所述第一指令返回的所述第一任务的第二处理结果和所述第一任务已执行完的第二指令情况下,向第二执行设备发送所述第二处理结果和执行第二任务的第三指令,所述第二任务为所述执行顺序中在执行次序在所述第一任务之后的子任务,所述第二执行设备为依据所述设备结果确定的所述第二任务的执行设备;
所述服务器在接收到第三执行设备返回的第三任务的第三处理结果的情况下,确定所述第三处理结果为所述第一处理结果,所述第三任务为所述执行顺序中最后执行的子任务,所述第三执行设备为依据所述设备结果确定的所述第三任务的执行设备。
结合本申请任一实施方式,所述第二工作流的数据结构为有向无环图。
结合本申请任一实施方式,所述处理单元12,用于:
所述服务器依据所述第一描述文件确定所述待处理任务的至少两个子任务的依赖关系;
所述服务器依据所述至少两个子任务的依赖关系对所述至少两个子任务以广度优先搜索方式进行搜索,确定所述至少两个子任务的执行顺序。
在一些实施例中,本申请实施例提供的装置具有的功能或包含的模块可以用于执行上文方法实施例描述的方法,其具体实现可以参照上文方法实施例的描述,为了简洁,这里不再赘述。
图8为本申请实施例提供的一种服务器的硬件结构示意图。该服务器2包括处理器21,存储器22,输入装置23,输出装置24。该处理器21、存储器22、输入装置23和输出装置24通过连接器相耦合,该连接器包括各类接口、传输线或总线等等,本申请实施例对此不作限定。应当理解,本申请的各个实施例中,耦合是指通过特定方式的相互联系,包括直接相连或者通过其他设备间接相连,例如可以通过各类接口、传输线、总线等相连。
处理器21可以是一个或多个图形处理器(graphics processing unit,GPU),在处理器21是一个GPU的情况下,该GPU可以是单核GPU,也可以是多核GPU。可选的,处理器21可以是多个GPU构成的处理器组,多个处理器之间通过一个或多个总线彼此耦合。可选的,该处理器还可以为其他类型的处理器等等,本申请实施例不作限定。
存储器22可用于存储计算机程序指令,以及用于执行本申请方案的程序代码在内的各类计算机程序代码。可选地,存储器包括但不限于是随机存储记忆体(random accessmemory,RAM)、只读存储器(read-only memory,ROM)、可擦除可编程只读存储器(erasableprogrammable read only memory,EPROM)、或便携式只读存储器(compact disc read-only memory,CD-ROM),该存储器用于相关指令及数据。
输入装置23用于输入数据和/或信号,以及输出装置24用于输出数据和/或信号。输入装置23和输出装置24可以是独立的器件,也可以是一个整体的器件。
可理解,本申请实施例中,存储器22不仅可用于存储相关指令,还可用于存储相关数据,又或者该存储器22还可用于存储通过处理器21等等,本申请实施例对于该存储器中具体所存储的数据不作限定。
可以理解的是,图8仅仅示出了一种服务器的简化设计。在实际应用中,服务器还可以分别包含必要的其他元件,包含但不限于任意数量的输入/输出装置、处理器、存储器等,而所有可以实现本申请实施例的服务器都在本申请的保护范围之内。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。所属领域的技术人员还可以清楚地了解到,本申请各个实施例描述各有侧重,为描述的方便和简洁,相同或类似的部分在不同实施例中可能没有赘述,因此,在某一实施例未描述或未详细描述的部分可以参见其他实施例的记载。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者通过所述计算机可读存储介质进行传输。所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriberline,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,数字通用光盘(digital versatiledisc,DVD))、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,该流程可以由计算机程序来指令相关的硬件完成,该程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法实施例的流程。而前述的存储介质包括:只读存储器(read-only memory,ROM)或随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可存储程序代码的介质。

Claims (10)

1.一种数据处理方法,其特征在于,所述方法应用于服务器,所述服务器属于分布式系统,所述分布式系统还包括至少两个执行设备,所述方法包括:
所述服务器获取待处理数据、第一工作流的第一描述文件和所述第一工作流的第一执行环境,所述第一工作流为待处理任务的工作流,所述待处理任务的输入数据包括所述待处理数据,所述第一描述文件携带所述第一工作流的定义信息和第二工作流的定义信息,所述第二工作流为所述待处理任务的子任务的工作流;
所述服务器依据所述第一描述文件,控制所述至少两个执行设备通过所述第一执行环境执行所述待处理任务,得到第一处理结果。
2.根据权利要求1所述的方法,其特征在于,所述服务器依据所述第一描述文件,控制所述至少两个执行设备通过所述第一执行环境执行所述待处理任务,得到第一处理结果,包括:
在确定所述第一工作流的数据结构为有向无环图的情况下,所述服务器依据所述第一描述文件,控制所述至少两个执行设备通过所述第一执行环境执行所述待处理任务,得到第一处理结果。
3.根据权利要求2所述的方法,其特征在于,所述在确定所述第一工作流的数据结构为有向无环图的情况下,所述服务器依据所述第一描述文件,控制所述至少两个执行设备通过所述第一执行环境执行所述待处理任务,得到第一处理结果,包括:
在确定所述第一工作流的数据结构为有向无环图,且所述第二工作流中的任务不包含所述待处理任务的子任务的情况下,所述服务器依据所述第一描述文件,控制所述至少两个执行设备通过所述第一执行环境执行所述待处理任务,得到第一处理结果。
4.根据权利要求1至3中任意一项所述的方法,其特征在于,所述服务器依据所述第一描述文件,控制所述至少两个执行设备通过所述第一执行环境执行所述待处理任务,得到第一处理结果,包括:
所述服务器依据所述第一描述文件确定所述待处理任务的至少两个子任务的执行顺序;
所述服务器依据所述第一描述文件确定所述待处理任务的至少两个子任务的执行设备,得到设备结果;
所述服务器依据所述执行顺序和所述设备结果,控制所述至少两个执行设备通过所述第一执行环境执行所述待处理任务,得到所述第一处理结果。
5.根据权利要求4所述的方法,其特征在于,所述服务器依据所述执行顺序和所述设备结果,控制所述至少两个执行设备通过所述第一执行环境执行所述待处理任务,得到第一处理结果,包括:
所述服务器向第一执行设备发送所述待处理数据、用于执行第一任务的第二执行环境和执行所述第一任务的第一指令;所述第二执行环境属于所述第一执行环境,所述第一任务为所述执行顺序中最先执行的子任务,所述第一执行设备为依据所述设备结果确定的所述第一任务的执行设备;
在所述服务器接收到所述第一执行设备针对所述第一指令返回的所述第一任务的第二处理结果和所述第一任务已执行完的第二指令情况下,向第二执行设备发送所述第二处理结果和执行第二任务的第三指令,所述第二任务为所述执行顺序中在执行次序在所述第一任务之后的子任务,所述第二执行设备为依据所述设备结果确定的所述第二任务的执行设备;
所述服务器在接收到第三执行设备返回的第三任务的第三处理结果的情况下,确定所述第三处理结果为所述第一处理结果,所述第三任务为所述执行顺序中最后执行的子任务,所述第三执行设备为依据所述设备结果确定的所述第三任务的执行设备。
6.根据权利要求1至5中任意一项所述的方法,其特征在于,所述第二工作流的数据结构为有向无环图。
7.根据权利要求4至6中任意一项所述的方法,其特征在于,所述服务器依据所述第一描述文件确定所述待处理任务的至少两个子任务的执行顺序,包括:
所述服务器依据所述第一描述文件确定所述待处理任务的至少两个子任务的依赖关系;
所述服务器依据所述至少两个子任务的依赖关系对所述至少两个子任务以广度优先搜索方式进行搜索,确定所述至少两个子任务的执行顺序。
8.一种服务器,其特征在于,所述服务器属于分布式系统,所述分布式系统还包括至少两个执行设备,所述服务器包括:
获取单元,用于获取待处理数据、第一工作流的第一描述文件和所述第一工作流的第一执行环境,所述第一工作流为待处理任务的工作流,所述待处理任务的输入数据包括所述待处理数据,所述第一描述文件携带所述第一工作流的定义信息和第二工作流的定义信息,所述第二工作流为所述待处理任务的子任务的工作流;
处理单元,用于依据所述第一描述文件,控制所述至少两个执行设备通过所述第一执行环境执行所述待处理任务,得到第一处理结果。
9.一种电子设备,其特征在于,包括:处理器和存储器,所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,在所述处理器执行所述计算机指令的情况下,所述电子设备执行如权利要求1至7中任意一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序包括程序指令,在所述程序指令被处理器执行的情况下,使所述处理器执行权利要求1至7中任意一项所述的方法。
CN202111087466.6A 2021-09-16 2021-09-16 数据处理方法及装置、电子设备及计算机可读存储介质 Pending CN113805976A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111087466.6A CN113805976A (zh) 2021-09-16 2021-09-16 数据处理方法及装置、电子设备及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111087466.6A CN113805976A (zh) 2021-09-16 2021-09-16 数据处理方法及装置、电子设备及计算机可读存储介质

Publications (1)

Publication Number Publication Date
CN113805976A true CN113805976A (zh) 2021-12-17

Family

ID=78941411

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111087466.6A Pending CN113805976A (zh) 2021-09-16 2021-09-16 数据处理方法及装置、电子设备及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN113805976A (zh)

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050283786A1 (en) * 2004-06-17 2005-12-22 International Business Machines Corporation Optimizing workflow execution against a heterogeneous grid computing topology
JP2016177619A (ja) * 2015-03-20 2016-10-06 株式会社リコー ワークフロー管理装置、ワークフロー管理システム、ワークフロー管理方法、プログラム、及び、情報処理装置
CN110019207A (zh) * 2017-11-02 2019-07-16 阿里巴巴集团控股有限公司 数据处理方法和装置以及脚本显示方法和装置
CN110333940A (zh) * 2019-06-25 2019-10-15 深圳前海微众银行股份有限公司 基于条件的任务调度方法、装置、设备及存储介质
CN110716802A (zh) * 2019-10-11 2020-01-21 恩亿科(北京)数据科技有限公司 一种跨集群的任务调度系统及方法
CN111813391A (zh) * 2020-07-21 2020-10-23 腾讯科技(深圳)有限公司 工作流生成方法、装置、计算机设备及存储介质
CN112527471A (zh) * 2019-09-19 2021-03-19 中移(苏州)软件技术有限公司 任务处理方法及其装置、存储介质
CN112799797A (zh) * 2019-11-14 2021-05-14 北京沃东天骏信息技术有限公司 一种任务管理的方法和装置
CN112817744A (zh) * 2021-01-14 2021-05-18 内蒙古蒙商消费金融股份有限公司 一种任务处理方法及装置
CN113010296A (zh) * 2021-04-01 2021-06-22 上海交通大学 基于形式化模型的任务解析与资源分配方法及系统
US20210209069A1 (en) * 2018-08-17 2021-07-08 Siemens Aktiengesellschaft Method, device, and system for processing distributed data, and machine readable medium

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050283786A1 (en) * 2004-06-17 2005-12-22 International Business Machines Corporation Optimizing workflow execution against a heterogeneous grid computing topology
JP2016177619A (ja) * 2015-03-20 2016-10-06 株式会社リコー ワークフロー管理装置、ワークフロー管理システム、ワークフロー管理方法、プログラム、及び、情報処理装置
CN110019207A (zh) * 2017-11-02 2019-07-16 阿里巴巴集团控股有限公司 数据处理方法和装置以及脚本显示方法和装置
US20210209069A1 (en) * 2018-08-17 2021-07-08 Siemens Aktiengesellschaft Method, device, and system for processing distributed data, and machine readable medium
CN110333940A (zh) * 2019-06-25 2019-10-15 深圳前海微众银行股份有限公司 基于条件的任务调度方法、装置、设备及存储介质
CN112527471A (zh) * 2019-09-19 2021-03-19 中移(苏州)软件技术有限公司 任务处理方法及其装置、存储介质
CN110716802A (zh) * 2019-10-11 2020-01-21 恩亿科(北京)数据科技有限公司 一种跨集群的任务调度系统及方法
CN112799797A (zh) * 2019-11-14 2021-05-14 北京沃东天骏信息技术有限公司 一种任务管理的方法和装置
CN111813391A (zh) * 2020-07-21 2020-10-23 腾讯科技(深圳)有限公司 工作流生成方法、装置、计算机设备及存储介质
CN112817744A (zh) * 2021-01-14 2021-05-18 内蒙古蒙商消费金融股份有限公司 一种任务处理方法及装置
CN113010296A (zh) * 2021-04-01 2021-06-22 上海交通大学 基于形式化模型的任务解析与资源分配方法及系统

Similar Documents

Publication Publication Date Title
KR102225822B1 (ko) 인공지능 수행을 위한 학습 데이터 생성장치 및 방법
CN109951547B (zh) 事务请求并行处理方法、装置、设备和介质
US20210026614A1 (en) Container orchestration framework
EP4198771A1 (en) Data processing method and apparatus, computer readable medium, and electronic device
CN111966361B (zh) 用于确定待部署模型的方法、装置、设备及其存储介质
CN113641413A (zh) 目标模型加载更新方法及装置、可读介质和电子设备
CN113590199A (zh) 指令调度方法、人工智能芯片、计算机设备和存储介质
CN111045932A (zh) 业务系统仿真处理方法、装置、电子设备及存储介质
CN115358404A (zh) 基于机器学习模型推理的数据处理方法、装置及设备
CN110516000B (zh) 一种支持复杂工作流结构的工作流管理系统
CN109976744B (zh) 一种可视化编程方法、系统及终端设备
CN111340605B (zh) 训练用户行为预测模型、用户行为预测的方法和装置
CN109840072B (zh) 信息处理方法和装置
CN114816719B (zh) 多任务模型的训练方法及装置
CN113805976A (zh) 数据处理方法及装置、电子设备及计算机可读存储介质
CN113344214B (zh) 数据处理模型的训练方法、装置、电子设备及存储介质
CN114219091A (zh) 网络模型推理加速的方法、装置、设备及存储介质
CN114189518A (zh) 应用于计算机集群的通信方法及通信装置
CN109857838B (zh) 用于生成信息的方法和装置
CN113569256A (zh) 漏洞扫描方法和装置、系统、电子设备、计算机可读介质
CN113391813A (zh) 程序编译方法和装置、存储介质及电子设备
CN112308074A (zh) 用于生成缩略图的方法和装置
CN111353585A (zh) 神经网络模型的结构搜索方法和装置
US20230110520A1 (en) Ui service package generation and registration method and apparatus, and ui service loading method and apparatus
CN115660064B (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