CN109885388A - 一种适用于异构系统的数据处理方法和装置 - Google Patents
一种适用于异构系统的数据处理方法和装置 Download PDFInfo
- Publication number
- CN109885388A CN109885388A CN201910100608.4A CN201910100608A CN109885388A CN 109885388 A CN109885388 A CN 109885388A CN 201910100608 A CN201910100608 A CN 201910100608A CN 109885388 A CN109885388 A CN 109885388A
- Authority
- CN
- China
- Prior art keywords
- subtask
- sequence
- task
- information
- resource
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了一种适用于异构系统的数据处理方法和装置。本发明实施例通过确定数据处理请求对应的多个任务和任务间的执行顺序,从而分别确定多个任务对应的多个子任务和子任务间的执行顺序,同时,获取异构系统的资源信息,其中,资源信息包括所述异构系统内运行的硬件的属性信息和状态信息,进而根据资源信息对子任务进行资源分配,确定资源分配信息,从而根据资源分配信息、任务间的执行顺序和子任务间的执行顺序执行所述子任务,使得每个子任务能够以较高的效率在对应的硬件上执行,由此可以获取所述数据处理请求对应的结果。由此,能够对资源进行合理分配,提升每个子任务的执行效率,从而有效提升数据处理的效率。
Description
技术领域
本发明涉及计算机技术领域,具体涉及一种适用于异构系统的数据处理方法和装置。
背景技术
随着计算机技术领域的迅速发展,处理器的种类和功能也在快速发展,例如CPU(Central Processing Unit,中央处理器),GPU(Graphics Processing Unit,图形处理器),TPU(Tensor Processing Unit,张量处理器),BPU(Brain Processing Unit,大脑处理器)等。其中,CPU适用于逻辑复杂的串行数据处理任务,GPU适用于处理简单且可大规模并行加速的任务。
现有的数据处理方案仅针对通用处理器(例如CPU)或特定类型的处理器(例如GPU)进行设计,因此数据处理的效率有时不理想。
发明内容
有鉴于此,本发明实施例公开了一种适用于异构系统的数据处理方法和装置,能够有效提升数据处理的效率。
第一方面,本发明实施例提供了一种适用于异构系统的数据处理方法,所述方法包括:
获取数据处理请求;
确定所述数据处理请求对应的多个任务和第一执行顺序,所述第一执行顺序为所述多个任务的执行顺序;
确定所述任务对应的多个子任务和第二执行顺序,所述第二执行顺序为所述多个子任务的执行顺序;
获取所述异构系统的资源信息,所述资源信息包括所述异构系统内运行的硬件的属性信息和状态信息;
根据所述资源信息对所述子任务进行资源分配,确定资源分配信息;
根据所述资源分配信息和执行顺序执行所述子任务,获取所述数据处理请求对应的结果,所述执行顺序包括所述第一执行顺序和/或所述第二执行顺序。
优选地,所述确定所述任务对应的多个子任务和第二执行顺序包括:
根据预定的任务类型-子任务类型的对应关系确定所述任务对应的多个子任务和所述第二执行顺序。
优选地,所述获取所述异构系统的资源信息包括:
根据预定的子任务类型-硬件类型的对应关系获取所述子任务对应的至少一个所述资源;
获取所述子任务对应的所述资源信息。
优选地,所述状态信息包括所述硬件的可用状态和所述硬件的子任务执行情况。
优选地,所述根据所述资源信息对所述子任务进行资源分配,确定资源分配信息包括:
根据所述资源信息和所述第二执行顺序对所述子任务进行资源分配,确定所述资源分配信息。
优选地,所述根据所述资源信息和所述第二执行顺序对所述子任务进行资源分配,确定所述资源分配信息包括:
根据所述硬件的子任务执行情况获取所述硬件正在执行的子任务;
根据所述第二执行顺序获取所述多个子任务的依赖关系;
响应于所述正在执行的子任务与待分配的所述子任务存在所述依赖关系且所述正在执行的子任务对应的硬件类型与所述待分配的子任务对应的硬件类型相同,确定所述待分配的子任务对应的资源分配信息为与所述正在执行的子任务的资源分配信息相同。
优选地,所述根据所述资源分配信息和所述执行顺序执行所述子任务包括:
响应于被分配的资源的可用状态为不可用,将对应的所述子任务挂起。
优选地,所述根据所述资源分配信息和所述执行顺序执行所述子任务,获取所述数据处理请求对应的结果包括:
根据所述第一执行顺序确定至少一个当前执行任务;
根据所述资源分配信息和所述第二执行顺序执行所述当前执行任务内的所述多个子任务,获取所述当前执行任务的执行结果。
优选地,所述根据所述资源分配信息和所述第二执行顺序执行所述当前执行任务内的所述多个子任务,获取所述当前执行任务的执行结果包括:
响应于存在第二执行顺序在前的所述子任务,获取所述第二执行顺序在前的子任务的执行结果;
根据所述第二执行顺序在前的子任务的执行结果和所述第二执行顺序执行当前子任务;
响应于同一所述任务内的所述多个子任务全部执行完毕,获取第二执行顺序在最后的子任务的执行结果作为所述当前执行任务的执行结果。
第二方面,本发明实施例公开了一种适用于异构系统的数据处理装置,所述装置包括:
请求获取单元,用于获取数据处理请求;
第一确定单元,用于确定所述数据处理请求对应的多个任务和第一执行顺序,所述第一执行顺序为所述多个任务的执行顺序;
第二确定单元,用于确定所述任务对应的多个子任务和第二执行顺序,所述第二执行顺序为所述多个子任务的执行顺序;
资源获取单元,用于获取所述异构系统的资源信息,所述资源信息包括所述异构系统内运行的硬件的属性信息和状态信息;
资源分配单元,用于根据所述资源信息对所述子任务进行资源分配,确定资源分配信息;
子任务执行单元,用于根据所述资源分配信息和执行顺序执行所述子任务,获取所述数据处理请求对应的结果,所述执行顺序包括所述第一执行顺序和/或所述第二执行顺序。
第三方面,本发明实施例公开了一种计算机可读存储介质,其上存储计算机程序指令,其特征在于,所述计算机程序指令在被处理器执行时实现如第一方面中任一项所述的方法。
第四方面,本发明实施例公开了一种电子设备,包括存储器和处理器,其特征在于,所述存储器用于存储一条或多条计算机程序指令,其中,所述一条或多条计算机程序指令被所述处理器执行以实现如第一方面中任一项所述的方法。
本发明实施例通过确定数据处理请求对应的多个任务和任务间的执行顺序,从而分别确定多个任务对应的多个子任务和子任务间的执行顺序,同时,获取异构系统的资源信息,其中,资源信息包括所述异构系统内运行的硬件的属性信息和状态信息,进而根据资源信息对子任务进行资源分配,确定资源分配信息,从而根据资源分配信息、任务间的执行顺序和子任务间的执行顺序执行所述子任务,使得每个子任务能够以较高的效率在对应的硬件上执行,由此可以获取所述数据处理请求对应的结果。由此,能够对资源进行合理分配,提升每个子任务的执行效率,从而有效提升数据处理的效率。
附图说明
通过以下参照附图对本发明实施例的描述,本发明的上述以及其它目的、特征和优点将更为清楚,在附图中:
图1是本发明第一实施例的适用于异构系统的数据处理方法的流程图;
图2是本发明第一实施例的第一执行顺序的示意图;
图3是本发明第一实施例的一种应用场景图;
图4是本发明第一实施例的一个可选的实现方式中确定资源分配信息的流程图;
图5是本发明第一实施例的另一个可选的实现方式中获取数据处理请求对应的结果的流程图;
图6是本发明第一实施例的另一种应用场景图;
图7是本发明第一实施例的适用于异构系统的数据处理方法的数据流程图;
图8是本发明第二实施例的适用于异构系统的数据处理装置的示意图;
图9是本发明第三实施例的电子设备的示意图。
具体实施方式
以下基于实施例对本发明进行描述,但是本发明并不仅仅限于这些实施例。在下文对本发明的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本发明。为了避免混淆本发明的实质,公知的方法、过程、流程、元件和电路并没有详细叙述。
此外,本领域普通技术人员应当理解,在此提供的附图都是为了说明的目的,并且附图不一定是按比例绘制的。
除非上下文明确要求,否则整个说明书和权利要求书中的“包括”、“包含”等类似词语应当解释为包含的含义而不是排他或穷举的含义;也就是说,是“包括但不限于”的含义。
在本发明的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
随着硬件技术的不断发展,处理器的种类和功能也在不断发展。不同类型的处理器具有不同的特性,从而适用于处理不同类型的任务。以数据处理类的任务为例,数据的类型和格式多种多样,例如数值类型、字符串类型或多媒体数据类型等。因此,对于数据的分析与处理逻辑也日渐丰富,例如关系型数据查询、数据统计分析、深度学习模型训练等。不同类型的处理器通常只能对特定类型的数据进行高效处理或分析,因此现有的数据处理逻辑或数据分析逻辑仅针对通用处理器(例如CPU)或特定类型的处理器(例如GPU)进行设计。随着上述逻辑的多样化,单一类型的处理器无法对数据处理请求对应的全部任务进行高效处理,因此数据处理的效率有时不理想。
因此,为了高效地执行多样化的数据处理逻辑或数据分析逻辑,异构处理系统(在本实施例中,也即,异构系统)应运而生。异构系统能够结合不同类型的处理器的处理优势,因此在数据处理方案较为多样的情况下仍然能够高效地执行不同类型的数据处理逻辑。
在本实施例中,以数据处理请求对应多个任务,每个任务对应多个子任务为例进行说明。但是本领域技术人员容易理解,在数据处理请求对应一个任务或每个任务对应一个子任务时,本实施例的方法同样适用。
图1是本发明第一实施例的适用于异构系统的数据处理方法的流程图。如图1所示,本实施例的方法包括如下步骤:
步骤S100,获取数据处理请求。
在本实施例中,可以通过SQL(Structured Query Language,结构化查询语言)语句、HQL(Hibernate Query Language,查询语言的一种)语句、JPQL(Java PersistenceQuery Language,Java持久化查询语言)语言等查询语言对数据处理请求进行描述。
步骤S200,确定数据处理请求对应的多个任务和第一执行顺序。
其中,第一执行顺序为多个任务的执行顺序。在本实施例中,第一执行顺序用于表征任务间的依赖关系。具体地,对数据处理请求进行解析后,可以获取数据处理请求对应的多个任务和第一执行顺序。
图2是本发明第一实施例的第一执行顺序的示意图。如图2所示,为数据处理请求1对应的7个任务的第一执行顺序。具体地,任务1对应的第一执行顺序为:任务1→任务4→任务7;任务2对应的第一执行顺序为任务2→任务5→任务7和任务2→任务6→任务7;任务3对应的第一执行顺序为:任务3→任务6→任务7。
应理解,在本实施例中,任务对应的第一执行顺序为以该任务为执行起点的任务执行顺序。
步骤S300,确定任务对应的多个子任务和第二执行顺序。
其中,第二执行顺序为多个子任务的执行顺序。在本实施例中,第二执行顺序用于表征子任务间的依赖关系。
在本实施例中,任务可以被进一步分解为子任务。优选地,在本实施例中,可以预先获得任务类型-子任务类型的对应关系,由此可以根据预定的任务类型-子任务类型的对应关系确定每个任务对应的多个子任务,并根据每个任务的逻辑顺序获取第二执行顺序。
可选地,任务类型可以为条件过滤、聚合分析、排序、哈希(也即,散列)等。应理解,在本实施例中,任务类型不限于上述类型,还可以为其他类型。
步骤S400,获取异构系统的资源信息。
在本实施例中,资源信息包括异构系统内运行的每个硬件的属性信息和状态信息。具体地,属性信息可以包括硬件的数量和硬件参数,状态信息包括硬件的可用状态和子任务执行情况。在本实施例中,可用状态用于表征硬件的空闲资源是否充足。应理解,异构系统中可以运行有多个相同(或相同类型)的硬件,且在异构系统中运行有多个相同(或相同类型)的硬件(例如,GPU中的GTS)时,硬件的数量包括相同(或相同类型)的硬件的数量。子任务执行情况可以包括当前是否在执行子任务以及当前被分配的子任务。
优选地,在本实施例中,可以预先获得子任务类型-硬件类型的对应关系,由此可以根据预定的子任务类型-硬件类型确定每个子任务对应的至少一个资源,并获取每个子任务对应的资源信息。由此,可以降低获取资源信息的时间成本和资源消耗成本。可选地,硬件类型可以包括通用处理器、多媒体处理器、图形处理器等。应理解,在本实施例中,硬件类型不限于上述类型,还可以为其他类型。
例如,子任务1对应的硬件类型为GPU,且异构系统中GPU包括GTX、GTS、GT(GTX、GTS和GT为GPU类硬件的不同型号),则子任务1对应的资源可以为GTX、GTS和GT。
步骤S500,根据资源信息对子任务进行资源分配,确定资源分配信息。
具体地,可以根据资源信息和第二执行顺序对每个子任务进行资源分配,从而确定每个子任务对应的资源分配信息。
可选地,若异构系统内运行N个相同类型的硬件,其中M个硬件的可用状态为可用,且存在子任务与该硬件的硬件类型存在对应关系,可以确定该子任务对应的资源分配信息为M个硬件中的至少一个硬件(也即,在M个硬件中的至少一个硬件上执行)。其中,N为大于等于2的整数,M为大于等于1的整数,且N大于M。
图3是本发明第一实施例的一种应用场景图。如图3所示,异构系统内运行的GPU类的硬件集合32中包括5个的GT(GT的型号可以不同),其中321所示的3个GT的可用状态为可用,322所示的2个GT的可用状态为不可用(阴影表示硬件当前的可用状态为不可用)。子任务1(也即,31)对应的硬件类型为GPU,则可以确定31对应的资源分配信息为在321所示的3个GT中的至少一个GT上执行。
应理解,子任务无法在不同类型的硬件上并行执行。例如,子任务1对应的硬件类型为GPU和CPU,则子任务1对应的资源可以为GTX、GTS、GT和Pentium(CPU类硬件的一种型号)。子任务1可以在GTX、GTS和GT上并行执行,但无法在GTX和Pentium上并行执行。
图4是本发明第一实施例的一个可选的实现方式中确定资源分配信息的流程图。如图4所示,在本实施例的一个可选的实现方式中,步骤S500包括如下步骤:
步骤S510,根据硬件的子任务执行情况获取硬件正在执行的子任务。
具体地,可以获取每个子任务对应的硬件的子任务执行情况,从而获取对应的硬件正在执行的子任务。优选地,可以获取正在执行的子任务的标识,由此可以降低后续确定资源分配信息的时间成本和资源消耗成本。
步骤S520,根据第二执行顺序获取多个子任务的依赖关系。
在本实施例中,可以根据第一执行顺序获取任务间的依赖关系。对于任一任务,如果该任务的输入依赖于至少一个其他任务的输出(也即,执行结果),则称该任务与上述其他任务存在依赖关系。
以图2所示的第一执行顺序为例,任务1、任务2和任务3之间不存在依赖关系,任务4、任务5和任务6之间不存在依赖关系。任务4与任务1存在依赖关系,任务5与任务2存在依赖关系,任务6与任务2和任务3存在依赖关系,任务7与任务4、任务5和任务6存在依赖关系。
因此,容易理解,也可以根据第二执行顺序获取子任务间的依赖关系。
步骤S530,判断正在执行的子任务与待分配的子任务是否存在依赖关系。
如果存在依赖关系,则进入步骤S540;如果不存在依赖关系,则进入步骤S560。
容易理解,如果当前没有正在执行的子任务,也可以认为不存在依赖关系。
步骤S540,判断正在执行的子任务对应的硬件类型与待分配的子任务对应的硬件类型是否相同。
如果相同,则进入步骤S550;如果不相同,进入步骤S560。
步骤S550,确定待分配的子任务对应的资源分配信息为与正在执行的子任务的资源分配信息相同。
在本实施例中,正在执行的子任务的资源分配信息也即正在执行的子任务对应的资源分配信息。
图6是本发明第一实施例的另一种应用场景图。如图6所示,子任务1和子任务2存在依赖关系,其中,实线箭头用于表示子任务1和子任务2的执行顺序,子任务1为正在执行的子任务,子任务2为待分配的子任务。61为异构系统内正在执行的GPU类的硬件集合,其中包括GT、GTX和GTS,子任务1对应的资源分配信息为GTS(也即,分配到GTS上执行)。根据子任务类型-硬件类型的对应关系,子任务2对应的硬件类型为GPU,与子任务1对应的硬件类型相同,则可以确定子任务2的资源分配信息与子任务1的资源分配信息相同,也即,分配到子任务1对应的GTS上执行。其中,虚线箭头用于表示子任务对应的资源分配信息。
由此,在正在执行的子任务(例如,上述子任务1)执行完毕后,无需对该子任务的执行结果进行传输,即可根该子任务的执行结果在该子任务对应的硬件(例如,上述子任务1对应的GTS)上立刻执行下一子任务(例如,上述子任务2),降低了执行结果的传输时间。因此,进一步提升了子任务的执行效率,从而进一步提升了数据处理的效率。
在一种可能的情况中,与当前执行的子任务存在依赖关系的下一子任务无需等待当前执行的子任务执行完毕就可以开始执行。例如,子任务1和子任务2存在依赖关系,其中,子任务1为当前执行的子任务,子任务2为下一子任务。若子任务2的执行是对子任务1的多条执行结果进行逐条处理,则在子任务1产生至少一条执行结果时,任务2可以开始对子任务1产生的至少一条执行结果进行处理。由此,下一子任务可以提前开始执行,降低了当前执行的子任务和下一子任务的整体执行时间。因此,更进一步提升了子任务的执行效率,从而更进一步提升了数据处理的效率。
步骤S560,根据硬件的可用状态确定待分配的子任务对应的资源分配信息。
例如,子任务1对应的资源为GTX、GTS和GT,其中GTX和GTS的可用状态均为不可用,则可以将子任务1对应的资源分配信息确定为GT。
应理解,在本实施例中,响应于被分配的资源的可用状态为不可用,将资源对应的子任务挂起。若硬件的可用状态为不可用,则该硬件当前无法执行子任务,此时可以将资源对应的子任务挂起。
步骤S600,根据资源分配信息和执行顺序执行子任务,获取数据处理请求对应的结果。
在本实施例中,执行顺序包括第一执行顺序和/或第二执行顺序。
图5是本发明第一实施例的另一个可选的实现方式中获取数据处理请求对应的结果的流程图。如图7所示,在本实施例的另一个可选的实现方式中,步骤S600包括如下步骤:
步骤S610,根据第一执行顺序确定至少一个当前执行任务。
可选地,可以根据第一执行顺序和各任务的执行结果确定至少一个当前执行任务。
以图2所示的第一执行顺序为例,在全部任务均未获得执行结果时,可以将任务1、任务2和任务3均确定为当前执行任务。如果已获得任务1的执行结果且没有获得任务4的执行结果时,可以将任务4作为当前执行任务。
应理解,也可以根据资源信息确定至少一个当前执行任务。具体地,可以根据子任务执行情况获取至少一个正在执行的子任务,并将正在执行的子任务对应的任务确定为当前执行任务。
步骤S620,根据资源分配信息和第二执行顺序执行当前执行任务内的多个子任务,获取当前执行任务的执行结果。
具体地,在本实施例中,步骤S620可以包括如下步骤:
步骤S621,响应于存在第二执行顺序在前的子任务,获取第二执行顺序在前的子任务的执行结果。
在本步骤中,第二执行顺序在前的子任务为同一任务内已经执行完毕(也即,已获取执行结果)的子任务,因此若存在第二执行顺序在前的子任务,可以获取该任务的执行结果。
步骤S622,根据第二执行顺序在前的子任务的执行结果和第二执行顺序执行当前子任务。
第二执行顺序在前的子任务与当前子任务存在依赖关系,因此需要根据第二执行顺序在前的子任务的执行结果执行当前子任务。具体地,若存在多个第二执行顺序在前的子任务,则获取与当前执行任务相邻且存在依赖关系的第二执行顺序在前的子任务的执行结果。
例如,任务1对应的子任务的第二执行顺序为:子任务1→子任务2→子任务3,其中,子任务3为当前子任务。则需要根据子任务2的执行结果执行子任务3。容易理解,子任务2的执行需要依赖子任务1的执行结果。
步骤S623,判断同一任务内的多个子任务是否全部执行完毕。
如果是,则进入步骤S624;如果否,则进入步骤S621。
步骤S624,获取第二执行顺序在最后的子任务的执行结果作为当前执行任务的执行结果。
例如,当前执行任务为任务1,任务1对应的子任务的第二执行顺序为:子任务1→子任务2→子任务3,若子任务1、子任务2和子任务3全部执行完毕,则获取子任务3的执行结果作为任务1的执行结果。
步骤S630,判断数据处理请求对应的多个任务是否全部执行完毕。
如果是,则进入步骤S640;如果否,则进入步骤S610。
步骤S640,获取第一执行顺序在最后的任务的执行结果作为数据处理请求对应的结果。
与步骤S624相似,对于数据处理请求,若数据处理请求对应的多个任务全部执行完毕,则获取第一执行顺序在最后的任务的执行结果作为数据处理请求对应的结果。
以图2所示的第一执行顺序为例,当任务1至任务7全部执行完毕后,任务7的执行结果为数据处理请求1对应的结果。
在本实施例中,数据处理请求对应的多个任务被分别拆分成多个子任务,且在异构系统中,能够对资源进行合理分配,使得每个子任务在对应的硬件上执行时均能达到较高的执行效率,同时,在资源信息较为理想的状态下(例如,大部分硬件的可用状态均为可用时),不存在依赖关系的任务中的不存在依赖关系的子任务可以并行执行。由此,可用进一步提升子任务的执行效率,从而有效提升数据处理的效率。
图7是本发明第一实施例的适用于异构系统的数据处理方法的数据流程图。如图7所示,在本实施例中,数据的变化如下:
步骤S100,获取数据处理请求。
步骤S200,确定数据处理请求对应的多个任务和第一执行顺序。
步骤S300,确定任务对应的多个子任务和第二执行顺序。
优选地,根据预定的任务类型-子任务类型的对应关系确定每个任务对应的多个子任务和第二执行顺序。
步骤S400,获取异构系统的资源信息。
优选地,可以根据预定的子任务类型-硬件类型的对应关系获取每个子任务对应的资源信息。具体地,获取每个子任务对应的硬件的属性信息和状态信息。
步骤S500,根据资源信息对子任务进行资源分配,确定资源分配信息。
可选地,可以根据资源信息和第二执行顺序确定每个子任务对应的资源分配信息。
步骤S600,根据资源分配信息和执行顺序执行子任务,获取数据处理请求对应的结果。
具体地,执行顺序包括第一执行顺序和第二执行顺序。由此,可以根据第二执行顺序执行每个任务中的子任务,并根据第一执行顺序执行每个任务,从而获得数据处理请求对应的结果。
本实施例通过确定数据处理请求对应的多个任务和任务间的执行顺序,从而分别确定多个任务对应的多个子任务和子任务间的执行顺序,同时,获取异构系统的资源信息,其中,资源信息包括所述异构系统内运行的硬件的属性信息和状态信息,进而根据资源信息对子任务进行资源分配,确定资源分配信息,从而根据资源分配信息、任务间的执行顺序和子任务间的执行顺序执行所述子任务,使得每个子任务能够以较高的效率在对应的硬件上执行,由此可以获取所述数据处理请求对应的结果。由此,能够对资源进行合理分配,提升每个子任务的执行效率,从而有效提升数据处理的效率。
图8是本发明第二实施例的适用于异构系统的数据处理装置的示意图。如图8所示,本实施例的适用于异构系统的数据处理装置包括请求获取单元81、第一确定单元82、第二确定单元83、资源获取单元84、资源分配单元85和子任务执行单元86。
其中,请求获取单元81用于获取数据处理请求。第一确定单元82用于确定所述数据处理请求对应的多个任务和第一执行顺序,所述第一执行顺序为所述多个任务的执行顺序。第二确定单元83用于确定所述任务对应的多个子任务和第二执行顺序,所述第二执行顺序为所述多个子任务的执行顺序。资源获取单元84用于获取所述异构系统的资源信息,所述资源信息包括所述异构系统内运行的硬件的属性信息和状态信息。资源分配单元85用于根据所述资源信息对所述子任务进行资源分配,确定资源分配信息。子任务执行单元86用于根据所述资源分配信息和执行顺序执行所述子任务,获取所述数据处理请求对应的结果,所述执行顺序包括所述第一执行顺序和/或所述第二执行顺序。
本实施例通过确定数据处理请求对应的多个任务和任务间的执行顺序,从而分别确定多个任务对应的多个子任务和子任务间的执行顺序,同时,获取异构系统的资源信息,其中,资源信息包括所述异构系统内运行的硬件的属性信息和状态信息,进而根据资源信息对子任务进行资源分配,确定资源分配信息,从而根据资源分配信息、任务间的执行顺序和子任务间的执行顺序执行所述子任务,使得每个子任务能够以较高的效率在对应的硬件上执行,由此可以获取所述数据处理请求对应的结果。由此,能够对资源进行合理分配,提升每个子任务的执行效率,从而有效提升数据处理的效率。
图9是本发明第三实施例的电子设备的示意图。图9所示的电子设备为通用数据处理装置,其包括通用的计算机硬件结构,其至少包括CPU91、GPU92、其他处理器93和存储器94。CPU91、GPU92、其他处理器93和存储器94通过总线95连接。存储器94适于存储CPU91、GPU92和其他处理器93可执行的指令或程序。CPU91可以是独立的微处理器,也可以是一个或者多个微处理器集合。由此,CPU91通过执行存储器94所存储的命令,从而执行如上所述的本发明实施例的方法流程实现对于数据的处理和对于GPU92、其他处理器93和其他装置的控制。总线94将上述多个组件连接在一起,同时将上述组件连接到显示控制器和显示装置以及输入/输出(I/O)装置96。输入/输出(I/O)装置95可以是鼠标、键盘、调制解调器、网络接口、触控输入装置、体感输入装置、打印机以及本领域公知的其他装置。典型地,输入/输出(I/O)装置96通过输入/输出(I/O)控制器97与系统相连。
其中,存储器94可以存储软件组件,例如操作系统、通信模块、交互模块以及应用程序。以上所述的每个模块和应用程序都对应于完成一个或多个功能和在发明实施例中描述的方法的一组可执行程序指令。
上述根据本发明实施例的方法、设备(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应理解,流程图和/或框图的每个块以及流程图图例和/或框图中的块的组合可以由计算机程序指令来实现。这些计算机程序指令可以被提供至通用计算机、专用计算机或其它可编程数据处理设备的处理器,以产生机器,使得(经由计算机或其它可编程数据处理设备的处理器执行的)指令创建用于实现流程图和/或框图块或块中指定的功能/动作的装置。
同时,如本领域技术人员将意识到的,本发明实施例的各个方面可以被实现为系统、方法或计算机程序产品。因此,本发明实施例的各个方面可以采取如下形式:完全硬件实施方式、完全软件实施方式(包括固件、常驻软件、微代码等)或者在本文中通常可以都称为“电路”、“模块”或“系统”的将软件方面与硬件方面相结合的实施方式。此外,本发明的方面可以采取如下形式:在一个或多个计算机可读介质中实现的计算机程序产品,计算机可读介质具有在其上实现的计算机可读程序代码。
可以利用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质可以是如(但不限于)电子的、磁的、光学的、电磁的、红外的或半导体系统、设备或装置,或者前述的任意适当的组合。计算机可读存储介质的更具体的示例(非穷尽列举)将包括以下各项:具有一根或多根电线的电气连接、便携式计算机软盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪速存储器)、光纤、便携式光盘只读存储器(CD-ROM)、光存储装置、磁存储装置或前述的任意适当的组合。在本发明实施例的上下文中,计算机可读存储介质可以为能够包含或存储由指令执行系统、设备或装置使用的程序或结合指令执行系统、设备或装置使用的程序的任意有形介质。
计算机可读信号介质可以包括传播的数据信号,所述传播的数据信号具有在其中如在基带中或作为载波的一部分实现的计算机可读程序代码。这样的传播的信号可以采用多种形式中的任何形式,包括但不限于:电磁的、光学的或其任何适当的组合。计算机可读信号介质可以是以下任意计算机可读介质:不是计算机可读存储介质,并且可以对由指令执行系统、设备或装置使用的或结合指令执行系统、设备或装置使用的程序进行通信、传播或传输。
用于执行针对本发明各方面的操作的计算机程序代码可以以一种或多种编程语言的任意组合来编写,所述编程语言包括:面向对象的编程语言如Java、Smalltalk、C++、PHP、Python等;以及常规过程编程语言如“C”编程语言或类似的编程语言。程序代码可以作为独立软件包完全地在用户计算机上、部分地在用户计算机上执行;部分地在用户计算机上且部分地在远程计算机上执行;或者完全地在远程计算机或服务器上执行。在后一种情况下,可以将远程计算机通过包括局域网(LAN)或广域网(WAN)的任意类型的网络连接至用户计算机,或者可以与外部计算机进行连接(例如通过使用因特网服务供应商的因特网)。
以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (12)
1.一种适用于异构系统的数据处理方法,其特征在于,所述方法包括:
获取数据处理请求;
确定所述数据处理请求对应的多个任务和第一执行顺序,所述第一执行顺序为所述多个任务的执行顺序;
确定所述任务对应的多个子任务和第二执行顺序,所述第二执行顺序为所述多个子任务的执行顺序;
获取所述异构系统的资源信息,所述资源信息包括所述异构系统内运行的硬件的属性信息和状态信息;
根据所述资源信息对所述子任务进行资源分配,确定资源分配信息;
根据所述资源分配信息和执行顺序执行所述子任务,获取所述数据处理请求对应的结果,所述执行顺序包括所述第一执行顺序和/或所述第二执行顺序。
2.根据权利要求1所述的方法,其特征在于,所述确定所述任务对应的多个子任务和第二执行顺序包括:
根据预定的任务类型-子任务类型的对应关系确定所述任务对应的多个子任务和所述第二执行顺序。
3.根据权利要求1所述的方法,其特征在于,所述获取所述异构系统的资源信息包括:
根据预定的子任务类型-硬件类型的对应关系获取所述子任务对应的至少一个所述资源;
获取所述子任务对应的所述资源信息。
4.根据权利要求1所述的方法,其特征在于,所述状态信息包括所述硬件的可用状态和所述硬件的子任务执行情况。
5.根据权利要求4所述的方法,其特征在于,所述根据所述资源信息对所述子任务进行资源分配,确定资源分配信息包括:
根据所述资源信息和所述第二执行顺序对所述子任务进行资源分配,确定所述资源分配信息。
6.根据权利要求5所述的方法,其特征在于,所述根据所述资源信息和所述第二执行顺序对所述子任务进行资源分配,确定所述资源分配信息包括:
根据所述硬件的子任务执行情况获取所述硬件正在执行的子任务;
根据所述第二执行顺序获取所述多个子任务的依赖关系;
响应于所述正在执行的子任务与待分配的所述子任务存在所述依赖关系且所述正在执行的子任务对应的硬件类型与所述待分配的子任务对应的硬件类型相同,确定所述待分配的子任务对应的资源分配信息为与所述正在执行的子任务的资源分配信息相同。
7.根据权利要求4所述的方法,其特征在于,所述根据所述资源分配信息和所述执行顺序执行所述子任务包括:
响应于被分配的资源的可用状态为不可用,将对应的所述子任务挂起。
8.根据权利要求1所述的方法,其特征在于,所述根据所述资源分配信息和所述执行顺序执行所述子任务,获取所述数据处理请求对应的结果包括:
根据所述第一执行顺序确定至少一个当前执行任务;
根据所述资源分配信息和所述第二执行顺序执行所述当前执行任务内的所述多个子任务,获取所述当前执行任务的执行结果。
9.根据权利要求8所述的方法,其特征在于,所述根据所述资源分配信息和所述第二执行顺序执行所述当前执行任务内的所述多个子任务,获取所述当前执行任务的执行结果包括:
响应于存在第二执行顺序在前的所述子任务,获取所述第二执行顺序在前的子任务的执行结果;
根据所述第二执行顺序在前的子任务的执行结果和所述第二执行顺序执行当前子任务;
响应于同一所述任务内的所述多个子任务全部执行完毕,获取第二执行顺序在最后的子任务的执行结果作为所述当前执行任务的执行结果。
10.一种适用于异构系统的数据处理装置,其特征在于,所述装置包括:
请求获取单元,用于获取数据处理请求;
第一确定单元,用于确定所述数据处理请求对应的多个任务和第一执行顺序,所述第一执行顺序为所述多个任务的执行顺序;
第二确定单元,用于确定所述任务对应的多个子任务和第二执行顺序,所述第二执行顺序为所述多个子任务的执行顺序;
资源获取单元,用于获取所述异构系统的资源信息,所述资源信息包括所述异构系统内运行的硬件的属性信息和状态信息;
资源分配单元,用于根据所述资源信息对所述子任务进行资源分配,确定资源分配信息;
子任务执行单元,用于根据所述资源分配信息和执行顺序执行所述子任务,获取所述数据处理请求对应的结果,所述执行顺序包括所述第一执行顺序和/或所述第二执行顺序。
11.一种计算机可读存储介质,其上存储计算机程序指令,其特征在于,所述计算机程序指令在被处理器执行时实现如权利要求1-9中任一项所述的方法。
12.一种电子设备,包括存储器和处理器,其特征在于,所述存储器用于存储一条或多条计算机程序指令,其中,所述一条或多条计算机程序指令被所述处理器执行以实现如权利要求1-9中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910100608.4A CN109885388A (zh) | 2019-01-31 | 2019-01-31 | 一种适用于异构系统的数据处理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910100608.4A CN109885388A (zh) | 2019-01-31 | 2019-01-31 | 一种适用于异构系统的数据处理方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109885388A true CN109885388A (zh) | 2019-06-14 |
Family
ID=66927732
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910100608.4A Pending CN109885388A (zh) | 2019-01-31 | 2019-01-31 | 一种适用于异构系统的数据处理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109885388A (zh) |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110334049A (zh) * | 2019-07-02 | 2019-10-15 | 上海联影医疗科技有限公司 | 数据处理方法、装置、计算机设备及存储介质 |
CN110351345A (zh) * | 2019-06-25 | 2019-10-18 | 阿里巴巴集团控股有限公司 | 用于业务请求处理的方法及装置 |
CN110532103A (zh) * | 2019-09-09 | 2019-12-03 | 北京西山居互动娱乐科技有限公司 | 一种多任务处理的方法及装置 |
CN110647388A (zh) * | 2019-09-16 | 2020-01-03 | 北京镁伽机器人科技有限公司 | 用于自动饮品机的任务处理方法、自动饮品机和存储介质 |
CN110706148A (zh) * | 2019-10-10 | 2020-01-17 | 中国建设银行股份有限公司 | 人脸图像处理方法、装置、设备和存储介质 |
CN110716987A (zh) * | 2019-10-18 | 2020-01-21 | 浪潮软件股份有限公司 | 一种同步任务异步执行的方法和调度系统 |
CN111190739A (zh) * | 2019-12-31 | 2020-05-22 | 西安翔腾微电子科技有限公司 | 一种资源分配方法、装置、电子设备及存储介质 |
CN111324443A (zh) * | 2020-03-04 | 2020-06-23 | 广东南方数码科技股份有限公司 | 数据处理方法、装置、电子设备及存储介质 |
CN111597040A (zh) * | 2020-04-30 | 2020-08-28 | 中国科学院深圳先进技术研究院 | 一种资源分配方法、装置、存储介质和电子设备 |
CN111680791A (zh) * | 2020-06-16 | 2020-09-18 | 北京字节跳动网络技术有限公司 | 适用于异构环境中的通信方法、装置、系统 |
CN111708842A (zh) * | 2020-06-10 | 2020-09-25 | 武汉钢铁有限公司 | 一种热轧板材异构数据的处理方法及装置 |
CN111860930A (zh) * | 2020-03-30 | 2020-10-30 | 北京嘀嘀无限科技发展有限公司 | 数据处理方法、装置、电子设备和计算机可读存储介质 |
CN112162644A (zh) * | 2020-09-24 | 2021-01-01 | 深圳哇哇鱼网络科技有限公司 | 多语言输入法的硬件加速方法、终端及介质 |
WO2021136512A1 (zh) * | 2020-01-03 | 2021-07-08 | 深圳鲲云信息科技有限公司 | 基于深度学习节点计算的调度方法、设备及存储介质 |
CN113821311A (zh) * | 2020-06-19 | 2021-12-21 | 华为技术有限公司 | 任务执行方法及存储设备 |
CN115292055A (zh) * | 2022-10-09 | 2022-11-04 | 南方电网数字电网研究院有限公司 | 电力芯片的资源分配方法、装置、计算机设备和存储介质 |
WO2023071273A1 (zh) * | 2021-10-29 | 2023-05-04 | 上海商汤智能科技有限公司 | 点云数据的处理 |
CN116860464A (zh) * | 2023-09-05 | 2023-10-10 | 苏州浪潮智能科技有限公司 | 负载资源的分配方法和装置、存储介质及电子装置 |
CN111832773B (zh) * | 2020-05-29 | 2024-05-17 | 北京嘀嘀无限科技发展有限公司 | 信息显示方法、装置、存储介质和电子设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102763086A (zh) * | 2012-01-18 | 2012-10-31 | 华为技术有限公司 | 分布式计算任务处理系统和任务处理方法 |
CN103365713A (zh) * | 2012-04-01 | 2013-10-23 | 华为技术有限公司 | 一种资源的调度和管理方法及装置 |
US9152921B2 (en) * | 2013-01-11 | 2015-10-06 | International Business Machines Corporation | Computing regression models |
WO2016078008A1 (zh) * | 2014-11-19 | 2016-05-26 | 华为技术有限公司 | 调度数据流任务的方法和装置 |
CN106886503A (zh) * | 2017-02-08 | 2017-06-23 | 无锡十月中宸科技有限公司 | 异构系统、数据处理方法及装置 |
CN107450972A (zh) * | 2017-07-04 | 2017-12-08 | 阿里巴巴集团控股有限公司 | 一种调度方法、装置以及电子设备 |
CN109213587A (zh) * | 2018-09-12 | 2019-01-15 | 中国人民解放军战略支援部队信息工程大学 | GPU平台下的多Stream并行DAG图任务映射策略 |
-
2019
- 2019-01-31 CN CN201910100608.4A patent/CN109885388A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102763086A (zh) * | 2012-01-18 | 2012-10-31 | 华为技术有限公司 | 分布式计算任务处理系统和任务处理方法 |
CN103365713A (zh) * | 2012-04-01 | 2013-10-23 | 华为技术有限公司 | 一种资源的调度和管理方法及装置 |
US9152921B2 (en) * | 2013-01-11 | 2015-10-06 | International Business Machines Corporation | Computing regression models |
WO2016078008A1 (zh) * | 2014-11-19 | 2016-05-26 | 华为技术有限公司 | 调度数据流任务的方法和装置 |
CN106886503A (zh) * | 2017-02-08 | 2017-06-23 | 无锡十月中宸科技有限公司 | 异构系统、数据处理方法及装置 |
CN107450972A (zh) * | 2017-07-04 | 2017-12-08 | 阿里巴巴集团控股有限公司 | 一种调度方法、装置以及电子设备 |
CN109213587A (zh) * | 2018-09-12 | 2019-01-15 | 中国人民解放军战略支援部队信息工程大学 | GPU平台下的多Stream并行DAG图任务映射策略 |
Cited By (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110351345A (zh) * | 2019-06-25 | 2019-10-18 | 阿里巴巴集团控股有限公司 | 用于业务请求处理的方法及装置 |
CN110351345B (zh) * | 2019-06-25 | 2021-10-12 | 创新先进技术有限公司 | 用于业务请求处理的方法及装置 |
CN110334049A (zh) * | 2019-07-02 | 2019-10-15 | 上海联影医疗科技有限公司 | 数据处理方法、装置、计算机设备及存储介质 |
CN110532103A (zh) * | 2019-09-09 | 2019-12-03 | 北京西山居互动娱乐科技有限公司 | 一种多任务处理的方法及装置 |
CN110647388A (zh) * | 2019-09-16 | 2020-01-03 | 北京镁伽机器人科技有限公司 | 用于自动饮品机的任务处理方法、自动饮品机和存储介质 |
CN110706148A (zh) * | 2019-10-10 | 2020-01-17 | 中国建设银行股份有限公司 | 人脸图像处理方法、装置、设备和存储介质 |
CN110706148B (zh) * | 2019-10-10 | 2023-08-15 | 中国建设银行股份有限公司 | 人脸图像处理方法、装置、设备和存储介质 |
CN110716987A (zh) * | 2019-10-18 | 2020-01-21 | 浪潮软件股份有限公司 | 一种同步任务异步执行的方法和调度系统 |
CN110716987B (zh) * | 2019-10-18 | 2023-06-20 | 浪潮软件股份有限公司 | 一种同步任务异步执行的方法和调度系统 |
CN111190739A (zh) * | 2019-12-31 | 2020-05-22 | 西安翔腾微电子科技有限公司 | 一种资源分配方法、装置、电子设备及存储介质 |
CN111190739B (zh) * | 2019-12-31 | 2023-09-01 | 西安翔腾微电子科技有限公司 | 一种资源分配方法、装置、电子设备及存储介质 |
WO2021136512A1 (zh) * | 2020-01-03 | 2021-07-08 | 深圳鲲云信息科技有限公司 | 基于深度学习节点计算的调度方法、设备及存储介质 |
CN111324443A (zh) * | 2020-03-04 | 2020-06-23 | 广东南方数码科技股份有限公司 | 数据处理方法、装置、电子设备及存储介质 |
CN111324443B (zh) * | 2020-03-04 | 2024-04-05 | 广东南方数码科技股份有限公司 | 数据处理方法、装置、电子设备及存储介质 |
CN111860930A (zh) * | 2020-03-30 | 2020-10-30 | 北京嘀嘀无限科技发展有限公司 | 数据处理方法、装置、电子设备和计算机可读存储介质 |
CN111597040A (zh) * | 2020-04-30 | 2020-08-28 | 中国科学院深圳先进技术研究院 | 一种资源分配方法、装置、存储介质和电子设备 |
CN111832773B (zh) * | 2020-05-29 | 2024-05-17 | 北京嘀嘀无限科技发展有限公司 | 信息显示方法、装置、存储介质和电子设备 |
CN111708842A (zh) * | 2020-06-10 | 2020-09-25 | 武汉钢铁有限公司 | 一种热轧板材异构数据的处理方法及装置 |
CN111708842B (zh) * | 2020-06-10 | 2023-05-23 | 武汉钢铁有限公司 | 一种热轧板材异构数据的处理方法及装置 |
CN111680791B (zh) * | 2020-06-16 | 2023-04-18 | 北京字节跳动网络技术有限公司 | 适用于异构环境中的通信方法、装置、系统 |
CN111680791A (zh) * | 2020-06-16 | 2020-09-18 | 北京字节跳动网络技术有限公司 | 适用于异构环境中的通信方法、装置、系统 |
CN113821311A (zh) * | 2020-06-19 | 2021-12-21 | 华为技术有限公司 | 任务执行方法及存储设备 |
CN112162644A (zh) * | 2020-09-24 | 2021-01-01 | 深圳哇哇鱼网络科技有限公司 | 多语言输入法的硬件加速方法、终端及介质 |
WO2023071273A1 (zh) * | 2021-10-29 | 2023-05-04 | 上海商汤智能科技有限公司 | 点云数据的处理 |
CN115292055A (zh) * | 2022-10-09 | 2022-11-04 | 南方电网数字电网研究院有限公司 | 电力芯片的资源分配方法、装置、计算机设备和存储介质 |
CN116860464A (zh) * | 2023-09-05 | 2023-10-10 | 苏州浪潮智能科技有限公司 | 负载资源的分配方法和装置、存储介质及电子装置 |
CN116860464B (zh) * | 2023-09-05 | 2024-01-09 | 苏州浪潮智能科技有限公司 | 负载资源的分配方法和装置、存储介质及电子装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109885388A (zh) | 一种适用于异构系统的数据处理方法和装置 | |
KR102628902B1 (ko) | 계산 그래프들 프로세싱 | |
EP3353655B1 (en) | Stream-based accelerator processing of computational graphs | |
CN107943577B (zh) | 用于调度任务的方法和装置 | |
US8756209B2 (en) | Computing resource allocation based on query response analysis in a networked computing environment | |
CN105808328B (zh) | 任务调度的方法、装置和系统 | |
US20140012866A1 (en) | Using annotators in genome research | |
CN110096344A (zh) | 任务管理方法、系统、服务器集群和计算机可读介质 | |
CN103765415A (zh) | 文档主题的并行生成 | |
CN112035251A (zh) | 基于强化学习作业布局的深度学习训练系统及方法 | |
EP3106982B1 (en) | Determination of branch convergence in a sequence of program instructions | |
JP2018088242A (ja) | データ処理装置、方法およびプログラム | |
RU2004104017A (ru) | Декларативная последовательная параметризация отчетов | |
CN112507102B (zh) | 基于预训练范式模型的预测部署系统、方法、装置及介质 | |
CN110196884A (zh) | 基于分布式数据库的数据写入方法、存储介质和电子设备 | |
US9141936B2 (en) | Systems and methods for simulating a resource constrained process | |
US9336195B2 (en) | Method and system for dictionary noise removal | |
CN102184124B (zh) | 任务调度方法及系统 | |
CN110413749A (zh) | 确定标准问题的方法及装置 | |
CN114896114B (zh) | 计分板实现方法、装置、计分板、电子设备及存储介质 | |
Chen et al. | Branch-and-bound style resource constrained scheduling using efficient structure-aware pruning | |
Chen et al. | Efficient two-phase approaches for branch-and-bound style resource constrained scheduling | |
Galleguillos et al. | A job dispatcher for large and heterogeneous HPC systems running modern applications | |
CN110618865B (zh) | Hadoop任务调度方法及装置 | |
CN117370638B (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190614 |