一种任务执行的方法、装置、存储介质及电子设备与流程

文档序号:34879745发布日期:2023-07-25 12:17阅读:22来源:国知局
一种任务执行的方法、装置、存储介质及电子设备与流程

本说明书涉及深度学习,尤其涉及一种任务执行的方法、装置、存储介质及电子设备。


背景技术:

1、随着深度学习技术的发展,通过计算设备集群来对深度学习模型进行分布式训练的方法被广泛的应用。

2、通常情况下,在使用分布式训练的方式对深度学习模型进行训练的过程中,需要通过各计算设备中的主机来针对用户输入的任务代码进行编译,以得到按照用户输入的任务代码进行任务执行所需的各可执行子图(即由用于组成深度学习模型的各算子作为节点,各算子之间的数据传输关系作为边组成的可以由计算设备运行的图数据),并将各可执行子图分配给各计算设备中的其他计算设备来运行,从而导致主机的负载较高,根据用户输入的程度代码进行任务执行的效率较低。

3、因此,如何降低主机的负载以提升任务执行效率,则是一个亟待解决的问题。


技术实现思路

1、本说明书提供一种任务执行的方法、装置、存储介质及电子设备,以部分的解决现有技术存在的上述问题。

2、本说明书采用下述技术方案:

3、本说明书提供了一种任务执行的方法,所述方法应用于计算集群系统,所述计算集群系统包括:主机节点、各计算节点,所述方法包括:

4、接收待执行任务的任务代码;

5、通过所述主机节点,将所述待执行任务拆分为各子任务,并针对每个子任务,根据所述任务代码确定执行该子任务所需的各算子;

6、将各子任务分配给所述各计算节点,以针对每个计算节点,以使该计算节点根据执行分配给该计算节点的子任务所需的各算子,以及执行分配给该计算节点的子任务所需的各算子之间的数据传输关系,生成该计算节点的可执行任务子图;

7、通过各计算节点运行各可执行任务子图,以执行所述待执行任务。

8、可选地,通过所述主机节点,将所述待执行任务拆分为各子任务,并针对每个子任务,根据所述任务代码确定执行该子任务所需的各算子,具体包括:

9、通过所述主机节点根据所述任务代码确定所述待执行任务的全局计算图,所述全局计算图中包含执行所述待执行任务所需的各算子以及各算子之间的数据传输关系;

10、将所述全局计算图拆分为各子任务计算图,以将所述待执行任务拆分为各子任务,所述子任务计算图中包含有所述全局计算图中的至少部分算子;

11、将各子任务分配给所述各计算节点,以针对每个计算节点,使得该计算节点根据执行分配给该计算节点的子任务所需的各算子,以及执行分配给该计算节点的子任务所需的各算子之间的数据传输关系,生成该计算节点的可执行任务子图,具体包括:

12、将各子任务计算图分配给所述各计算节点,以针对每个计算节点,以使该计算节点根据分配给该计算节点的子任务计算图中包含的各算子,以及分配给该计算节点的子任务计算图中包含的各算子之间的数据传输关系,生成该计算节点的可执行任务子图。

13、可选地,以使该计算节点根据分配给该计算节点的子任务计算图中包含的各算子,以及分配给该计算节点的子任务计算图中包含的各算子之间的数据传输关系,生成该计算节点的可执行任务子图,具体包括:

14、以使该计算节点根据分配给该计算节点的子任务计算图中包含的各算子,以及分配给该计算节点的子任务计算图中包含的各算子之间的数据传输关系,确定各算子之间执行的先后顺序;以及

15、确定执行分配给该计算节点的子任务计算图对应的子任务时所需的内存单元块信息,所述内存单元块信息包括:所述内存单元块的标识信息、使用所述内存单元块的子任务的标识信息、使用所述内存单元块存储的数据传输的数据的信息;

16、根据确定出的所述先后顺序以及所述内存单元块信息,生成该计算节点的可执行任务子图。

17、可选地,根据所述任务代码确定执行该子任务所需的各算子,具体包括:

18、根据所述任务代码,确定执行该子任务所需的各算子,以及确定该子任务与其他子任务之间的数据传输关系;

19、将各子任务分配给所述各计算节点,以针对每个计算节点,以使该计算节点根据执行分配给该计算节点的子任务所需的各算子,以及执行分配给该计算节点的子任务所需的各算子之间的数据传输关系,生成该计算节点的可执行任务子图,具体包括:

20、将各子任务分配给所述各计算节点,以针对每个计算节点,以使该计算节点根据执行分配给该计算节点的子任务所需的各算子、执行分配给该计算节点的子任务所需的各算子之间的数据传输关系以及分配给该计算节点的子任务与其他子任务之间的数据传输关系,生成该计算节点的可执行任务子图。

21、可选地,根据所述任务代码确定执行该子任务所需的各算子,具体包括:

22、根据所述任务代码,确定执行该子任务所需的各算子,以及确定该子任务与其他子任务之间的数据传输关系;

23、将各子任务分配给所述各计算节点,以针对每个计算节点,以使该计算节点根据执行分配给该计算节点的子任务所需的各算子,以及执行分配给该计算节点的子任务所需的各算子之间的数据传输关系,生成该计算节点的可执行任务子图,具体包括:

24、将各子任务分配给所述各计算节点,以针对每个计算节点,以使该计算节点根据每个子任务与其他子任务之间的数据传输关系,确定与分配给该计算节点的子任务存在数据传输关系的其他子任务,作为目标子任务;

25、判断该计算节点执行分配给该计算节点的子任务时进行数据传输的属性与执行目标子任务的计算节点进行数据传输的属性是否一致;

26、若是,则根据执行分配给该计算节点的子任务所需的各算子、执行分配给该计算节点的子任务所需的各算子之间的数据传输关系以及分配给该计算节点的子任务与其他子任务之间的数据传输关系,生成该计算节点的可执行任务子图。

27、可选地,所述方法还包括:

28、若确定该计算节点执行分配给该计算节点的子任务时进行数据传输的属性与执行目标子任务的计算节点进行数据传输的属性不一致,则向所述主机节点发送该计算节点和执行目标子任务的计算节点之间存在数据传输异常的异常信息,以使所述主机节点根据各计算节点返回的所述异常信息,生成转换子图,所述转换子图用于对任意一个计算节点的数据传输属性进行转换以使所述任意一个计算节点的数据传输属性与另一个计算节点的数据传输属性一致;

29、根据执行分配给该计算节点的子任务所需的各算子、执行分配给该计算节点的子任务所需的各算子之间的数据传输关系以及所述转换子图,生成该计算节点的可执行任务子图。

30、可选地,根据各计算节点返回的所述异常信息,生成转换子图,具体包括:

31、根据各计算节点返回的所述异常信息,生成转换子图;

32、针对每个计算节点,根据转换子图中该计算节点执行分配给该计算节点的子任务时与其他计算节点之间通过所述转换子图进行数据传输时的数据的信息,确定该计算节点执行分配给该计算节点的子任务时与其他计算节点之间通过所述转换子图进行数据传输所需的内存单元块信息,作为目标内存单元块信息;

33、确定所述目标内存单元块信息的标识编号,并将所述目标内存单元块信息的标识编号与该计算节点的标识编号作为标识编号对,保存到所述转换子图中;

34、根据执行分配给该计算节点的子任务所需的各算子、执行分配给该计算节点的子任务所需的各算子之间的数据传输关系以及所述转换子图,生成该计算节点的可执行任务子图,具体包括:

35、判断所述转换子图中是否存在该计算节点的标识编号对应的标识标号对;

36、若存在,则根据该计算节点的标识编号对应的标识标号对中的目标内存单元块信息的标识编号,获取目标内存单元块信息,并根据执行分配给该计算节点的子任务所需的各算子、执行分配给该计算节点的子任务所需的各算子之间的数据传输关系、所述转换子图以及所述目标内存单元块信息,生成该计算节点的可执行任务子图。

37、可选地,所述方法还包括:

38、若不存在,则根据转换子图中该计算节点执行分配给该计算节点的子任务时与其他计算节点之间通过所述转换子图进行数据传输时的数据的信息,确定该计算节点执行分配给该计算节点的子任务时与其他计算节点之间通过所述转换子图进行数据传输所需的内存单元块信息。

39、本说明书提供了一种任务执行的装置,包括:

40、接收模块,用于接收待执行任务的任务代码;

41、确定模块,用于通过主机节点,将所述待执行任务拆分为各子任务,并针对每个子任务,根据所述任务代码确定执行该子任务所需的各算子;

42、生成模块,用于将各子任务分配给各计算节点,以针对每个计算节点,以使该计算节点根据执行分配给该计算节点的子任务所需的各算子,以及执行分配给该计算节点的子任务所需的各算子之间的数据传输关系,生成该计算节点的可执行任务子图;

43、执行模块,用于通过各计算节点运行各可执行任务子图,以执行所述待执行任务。

44、可选地,所述确定模块具体用于,通过所述主机节点根据所述任务代码确定所述待执行任务的全局计算图,所述全局计算图中包含执行所述待执行任务所需的各算子以及各算子之间的数据传输关系;将所述全局计算图拆分为各子任务计算图,以将所述待执行任务拆分为各子任务,所述子任务计算图中包含有所述全局计算图中的至少部分算子;

45、所述生成模块具体用于,将各子任务计算图分配给所述各计算节点,以针对每个计算节点,以使该计算节点根据分配给该计算节点的子任务计算图中包含的各算子,以及分配给该计算节点的子任务计算图中包含的各算子之间的数据传输关系,生成该计算节点的可执行任务子图。

46、可选地,所述生成模块具体用于,以使该计算节点根据分配给该计算节点的子任务计算图中包含的各算子,以及分配给该计算节点的子任务计算图中包含的各算子之间的数据传输关系,确定各算子之间执行的先后顺序;以及确定执行分配给该计算节点的子任务计算图对应的子任务时所需的内存单元块信息,所述内存单元块信息包括:所述内存单元块的标识信息、使用所述内存单元块的子任务的标识信息、使用所述内存单元块存储的数据传输的数据的信息;根据确定出的所述先后顺序以及所述内存单元块信息,生成该计算节点的可执行任务子图。

47、可选地,所述生成模块具体用于,根据所述任务代码,确定执行该子任务所需的各算子,以及确定该子任务与其他子任务之间的数据传输关系;将各子任务分配给所述各计算节点,以针对每个计算节点,以使该计算节点根据执行分配给该计算节点的子任务所需的各算子、执行分配给该计算节点的子任务所需的各算子之间的数据传输关系以及分配给该计算节点的子任务与其他子任务之间的数据传输关系,生成该计算节点的可执行任务子图。

48、可选地,所述确定模块具体用于,根据所述任务代码,确定执行该子任务所需的各算子,以及确定该子任务与其他子任务之间的数据传输关系;

49、所述生成模块具体用于,将各子任务分配给所述各计算节点,以针对每个计算节点,以使该计算节点根据每个子任务与其他子任务之间的数据传输关系,确定与分配给该计算节点的子任务存在数据传输关系的其他子任务,作为目标子任务;判断该计算节点执行分配给该计算节点的子任务时进行数据传输的属性与执行目标子任务的计算节点进行数据传输的属性是否一致;若是,则根据执行分配给该计算节点的子任务所需的各算子、执行分配给该计算节点的子任务所需的各算子之间的数据传输关系以及分配给该计算节点的子任务与其他子任务之间的数据传输关系,生成该计算节点的可执行任务子图。

50、本说明书提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述任务执行的方法。

51、本说明书提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任务执行的方法。

52、本说明书采用的上述至少一个技术方案能够达到以下有益效果:

53、在本说明书提供的任务执行的方法中,首先接收待执行任务的任务代码,通过主机节点,将待执行任务拆分为各子任务,并针对每个子任务,根据任务代码确定执行该子任务所需的各算子,将各子任务分配给各计算节点,以针对每个计算节点,以使该计算节点根据执行分配给该计算节点的子任务所需的各算子,以及执行分配给该计算节点的子任务所需的各算子之间的数据传输关系,生成该计算节点的可执行任务子图,通过各计算节点运行各可执行任务子图,以执行待执行任务。

54、从上述方法可以看出,可以通过主机节点将用户输入的待执行任务的任务代码的编译工作进行拆分,并将部分编译工作分配给计算节点来执行,进而可以降低主机节点的工作负载以及提升待执行任务的执行效率。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1