电子装置、分布式系统以及任务调度方法与流程

文档序号:37541251发布日期:2024-04-08 13:40阅读:10来源:国知局
电子装置、分布式系统以及任务调度方法与流程

本技术实施例涉及计算机,尤其涉及一种电子装置、分布式系统以及任务调度方法。


背景技术:

1、随着科学技术的发展,计算机技术得到突飞猛进的提升,人工智能(ai,artificial intelligence)领域成为主流研究方向,以人工智能为代表的新应用和新算法所需算力呈指数增长。然而,半导体制程演进所面临的阻力日增,芯片上晶体管密度的增速也随之放缓,单独芯片或集成芯片难以支撑人工智能应用的算力,发掘应用算法中的并行机会,采用分布式计算成为人工智能算法的研究方向。

2、传统分布式计算中,通常采用进程-线程模型,例如应用于高性能计算领域的mpi+openmp方案。该方案由基于进程模型的mpi处理分布式存储间的任务部署和调度,同时用基于线程模型的openmp处理共享存储范围内的任务部署和调度。然而,传统的进程-线程模型通常需要过多的人工干预,例如处理数据切分和负载均衡、在不同硬件架构的分布式集群间定制化调优;此外,传统的进程-线程模型所能表带的并行粒度过大且调度策略固定,对一些运行时动态特征明显的应用(如稀疏矩阵计算、有限元分析、分子动力学模拟等)存在算力利用率过低的问题。由此,业界进一步提出基于计算图的分布式计算实现方案,计算图中通常呈现各任务对象之间的输入输出关系。例如,由美国伊利诺伊州立大学香槟分校开发的charm++,该charm++是一个面向对象的、基于异步消息传递机制的并行编程框架。然而,基于charm++的分布式计算中,计算图的表达中将程序与数据联合作为对象管理,计算图的语义限制了对数据的管理效率,调度过程无法对数据单独处理,对于ai类应用(涉及大块数据搬运、片上存储空间复用)的存储空间利用率不高。此外,这些基于计算图的分布式计算实现方案,均采用纯软件实现,调度器线程和计算任务间的频繁切换代价高,也即存在调度线程占用算力、任务调度并发能力差等问题。综上,当分布式计算系统应用于ai领域时,如何提高分布式计算系统的任务处理速度以及任务处理性能,成为需要解决的问题。


技术实现思路

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、应当理解的是,本技术的第二至六方面与本技术的第一方面的技术方案一致,各方面及对应的可行实施方式所取得的有益效果相似,不再赘述。

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