一种慢节点检测方法、装置、电子设备及存储介质与流程

文档序号:29631639发布日期:2022-04-13 16:05阅读:104来源:国知局
一种慢节点检测方法、装置、电子设备及存储介质与流程

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.图1是根据本公开实施例的分布式集群系统的场景图;
31.图2是根据本公开实施例的慢节点检测方法的流程示意图;
32.图3是根据本公开实施例的慢节点检测方法的流程示意图;
33.图4是应用于本公开实施例的一应用示例的集群系统架构示意图;
34.图5是应用于本公开实施例的一应用示例的实现感知流程的架构示意图;
35.图6是根据本公开实施例的慢节点检测装置的组成结构示意图;
36.图7是根据本公开实施例的慢节点检测装置的组成结构示意图;
37.图8是用来实现本公开实施例的慢节点检测方法的电子设备的框图。
具体实施方式
38.以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
39.本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括a、b、c中的至少一种,可以表示包括从a、b和c构成的集合中选择的任意一个或多个元素。本文中术语“第一”、“第二”表示指代多个类似的技术用语并对其进行区分,并不是限定顺序的意思,或者限定只有两个的意思,例如,第一特征和第二特征,是指代有两类/两个特征,第一特征可以为一个或多个,第二特征也可以为一个或多个。
40.另外,为了更好的说明本公开,在下文的具体实施方式中给出了众多的具体细节。
本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。
41.在集群系统(如分布式集群系统)的多个节点或一个节点下的多个电子设备(如终端设备或服务器等)中可以采用中央处理器(central processing unit,cpu)及图形处理器(graphic processing unit,gpu),随着深度学习技术的发展,cpu和gpu都可以通过深度学习技术进行模型训练,该分布式集群系统集群系统还可以是基于采样的分布式机器学习系统,以提高上述电子设备、节点的运行效率,从而使上述集群系统的运行效率、调度功能等软硬件能力更强。
42.以gpu为例,随着gpu训练规模的增长,已经迈向了千卡、万卡的级别,针对gpu大规模的训练任务对服务的稳定性和易用性提出了很高的要求。
43.首先,与传统的cpu训练相比,就gpu训练而言,存在一些特点,比如基础软硬件的迭代更快,但是存在无法预知的情况,需要在实践中应对;比如功耗散热压力更高,硬件会长期处于高压状态,容易导致故障,且高度集成化的硬件导致运维效率低;比如,训练规模快速扩张,给网络的部署和集群调度带来了很大的压力。这些gpu训练的这些特点,容易造成针对gpu的训练任务更容易出现服务或者节点故障,影响gpu的训练。
44.其次,大规模的训练也存在一些特点:比如,训练规模大且一般没有冗余计算的设计,单点失败会影响整个训练任务;比如,大模型、大数据量的训练,以天为单位的计算、以月为单位的计算很常见,换言之,大模型、大数据量的训练时间长,若缺少及时的告警,很容易造成在数天后才发现问题,造成较大损失;比如,同步模式情况下出现单点性能问题,会传播到整个大规模训练的训练任务范围。
45.综上所述,针对gpu的训练任务,尤其是gpu大规模的训练任务更容易遇到故障,且故障带来的损失更大。需要及时发现故障,以保障gpu大规模训练任务的训练任务稳定性,降低集群运行及调度的综合运行成本。其中,造成训练任务故障或者性能下降的问题节点可以称之为慢节点,要想保障gpu大规模训练任务的训练任务稳定性,降低集群运行及调度的综合运行成本,需要检测出该慢节点。然而,针对gpu大规模的训练任务,无法实现该慢节点的检测。
46.采用本公开,针对集群系统中节点的大规模训练任务(不限于上述示例的gpu大规模训练任务),可以通过感知模块向第一节点发起计时请求后,接收该第一节点反馈的计时信息,从而可以根据该计时信息检测出该集群系统存在慢节点,实现了慢节点的检测。
47.根据本公开的实施例,图1是应用本公开实施例的慢节点检测方法的分布式集群系统的场景图,该分布式集群系统为集群系统的一个示例,示例性的描述了可以利用该分布式集群系统进行模型训练,以完成训练任务。如图1所示,在该分布式集群系统100中包括多个节点(如服务器集群101、服务器102、服务器集群103、服务器104、服务器105,服务器105还可以连接电子设备,如手机1051及台式机1052),多个节点间,以及多个节点与连接的电子设备间可以共同执行一个或多个模型训练任务。可选地,该分布式集群系统中的多个节点可以采用数据并行的模型训练方式,则多个节点可以基于相同的训练方式执行训练任务,以更好的训练模型;若该分布式集群系统中的多个节点采用的是模型并行的模型训练方式,则多个节点可以基于不同的训练方式执行训练任务,以更好以训练模型。可选地,在每一轮模型训练完成后,多个节点之间都可以进行数据交换(如数据同步)。
48.根据本公开的实施例,提供了一种慢节点检测方法,图2是根据本公开实施例的慢节点检测方法的流程示意图,该方法可以应用于慢节点检测装置,例如,该装置可以部署于集群系统中的终端或服务器或其它处理设备执行的情况下,可以实现计时及慢节点检测等等处理。其中,终端可以为用户设备(ue,user equipment)、移动设备、个人数字处理(pda,personal digital assistant)、手持设备、计算设备、车载设备、可穿戴设备等。在一些可能的实现方式中,该方法还可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。如图2所示,该方法应用于集群系统中的感知模块,包括:
49.s201、感知模块向第一节点发起计时请求,其中,该第一节点为一个或多个在集群系统中执行训练任务的训练节点。
50.s202、该感知模块接收该第一节点反馈的计时信息。
51.s203、该感知模块根据该计时信息检测出该集群系统存在慢节点。
52.s201-s203的一示例中,第一节点作为该集群系统中的训练节点,可以包括:训练框架程序和集合通信库(该训练框架程序和该集合通信库都可以设置于该训练节点的cpu上),则该感知模块可以向该训练节点发起计时请求,训练框架程序基于该计时请求调用该集合通信库,以进行集合通信操作。其中,该集群系统中任一个训练节点可以包括一个cpu和多个gpu,该cpu可以将训练过程中的计算指令和通信指令下发至多个gpu,在多个gpu实现该集合通信操作,比如,在多个gpu上运行大规模训练任务的情况下,实现多个gpu间的数据交换(如数据同步)。进行该集合通信操作时,集合通信库可以启动计时功能,得到该计时信息,该感知模块接收到该计时信息后可以根据该计时信息检测出该集群系统存在慢节点。
53.采用本公开实施例,针对集群系统中节点的大规模训练任务(不限于图2上述示例的gpu大规模训练任务),可以通过该感知模块向该第一节点发起计时请求后,接收该第一节点反馈的计时信息,从而可以根据该计时信息检测出该集群系统存在慢节点,实现了慢节点的检测。
54.一实施方式中,感知模块根据计时信息检测出集群系统存在慢节点,包括:感知模块在计时信息大于阈值的情况下,检测出集群系统存在慢节点。采用本实施方式,可以通过第一节点反馈的该计时信息与阈值的比对,检测出集群系统中存在慢节点,从而实现了慢节点的检测。
55.一实施方式中,还包括:感知模块向第一节点发起暂停训练任务的请求,该感知模块运行慢节点检测程序,检测出慢节点在集群系统中的位置。采用本实施方式,不仅可以检测出该集群系统中存在慢节点,还可以根据运行的慢节点检测程序,检测出慢节点在集群系统中的位置,从而可以从该集群系统中及时完成慢节点的排查,以定位出该慢节点的具体位置。
56.一实施方式中,感知模块运行慢节点检测程序,检测出慢节点在集群系统中的位置,包括:该感知模块以单机检测、集群检测、二分法的方式循环执行集合通信检测中的至少一种检测模式运行该慢节点检测程序,检测出该慢节点在该集群系统中的位置。采用本实施方式,可以采用多种检测模式中择一方式或组合方式来运行对应的慢节点检测程序,检测出慢节点在集群系统中的位置,从而可以在该集群系统中实现单机、多机、二分法等更多高效的慢节点排查手段,以更快、更准确的定位出该慢节点的具体位置。
57.一实施方式中,还包括:感知模块将慢节点信息通知调度模块,该慢节点信息用于表征慢节点在集群系统中的位置。其中,调度模块(如运行调度器程序的模块)可以位于第一节点(如该集群系统中的训练节点)、或与第一节点存在通信交互的第二节点(如该集群系统中的控制节点)。采用本实施方式,该调度模块根据实际需要可以部署于第一节点(如该集群系统中的训练节点)、或与第一节点存在通信交互的第二节点(如该集群系统中的控制节点),当接收到该慢节点信息后,可以对集群系统中的多个训练节点所执行的训练任务进行调度,比如,从多个训练节点中检测出慢节点及其在集群系统中的位置后,保存慢节点所执行训练任务的进度状态(即慢节点的进度状态),以便触发主备倒换操作(即将该慢节点的进度状态替换到正常的备选节点,继续执行该训练任务)。
58.根据本公开的实施例,提供了一种慢节点检测方法,图3是根据本公开实施例的慢节点检测方法的流程示意图,如图3所示,该方法应用于集群系统中的感知模块,包括:
59.s301、第一节点接收感知模块发起的计时请求;其中,该第一节点为一个或多个在集群系统中执行训练任务的训练节点。
60.s302、该第一节点基于该计时请求进行集合通信操作,完成该集群系统中的数据交换,得到计时信息。
61.s303、该第一节点向该感知模块发送该计时信息,以使该感知模块根据该计时信息检测出该集群系统存在慢节点。
62.s301-s303的一示例中,第一节点作为该集群系统中的训练节点,可以包括:训练框架程序和集合通信库(该训练框架程序和该集合通信库都可以设置于该训练节点的cpu上),则该训练模块可以接收该感知模块发起的计时请求,该训练框架程序基于该计时请求调用该集合通信库,以进行集合通信操作。其中,该集群系统中任一个训练节点可以包括一个cpu和多个gpu,该cpu可以将训练过程中的计算指令和通信指令下发至多个gpu,在多个gpu实现该集合通信操作,比如,在多个gpu上运行大规模训练任务的情况下,实现多个gpu间的数据交换(如数据同步)。进行该集合通信操作时,集合通信库可以启动计时功能,得到该计时信息,该训练节点向该感知模块发送该计时信息后,使得该感知模块可以根据该计时信息检测出该集群系统存在慢节点。
63.采用本公开实施例,针对集群系统中节点的大规模训练任务(不限于图3上述示例的gpu大规模训练任务),可以通过该训练模块向该感知模块反馈的该计时信息,使该感知模块可以检测出该集群系统存在慢节点,从而实现了慢节点的检测。
64.一实施方式中,还包括:第一节点接收感知模块发起的暂停训练任务的请求;第一节点响应该暂停训练任务的请求,暂停训练任务,存储训练任务的进度状态。该第一节点通知该感知模块运行慢节点检测程序。采用本实施方式,可以通过第一节点反馈的通知使得该感知模块运行该慢节点检测程序,以检测出集群系统中存在慢节点,从而实现了慢节点的检测。
65.一实施方式中,还包括:调度模块接收感知模块发送的慢节点信息,该慢节点信息用于表征慢节点在集群系统中的位置。其中,该调度模块(如运行调度器程序的模块)可以位于第一节点(如该集群系统中的训练节点)、或与第一节点存在通信交互的第二节点(如该集群系统中的控制节点)。
66.在调度模块位于该第一节点(如该集群系统中的训练节点)的情况下,该第一节点
接受该调度模块的调度控制,根据该慢节点信息,将由该慢节点执行的训练任务的进度状态替换到正常的备选节点,继续执行该训练任务。采用本实施方式,当该调度模块接收到该慢节点信息后,可以对集群系统中的多个训练节点所执行的训练任务进行调度,比如,从多个训练节点中检测出慢节点及其在集群系统中的位置后,保存慢节点所执行训练任务的进度状态(即慢节点的进度状态),之后执行主备倒换操作,即将该慢节点的进度状态替换到正常的备选节点(该备选节点与该慢节点存在主备倒换关系),继续执行该训练任务。
67.一实施方式中,还包括:调度模块接收感知模块发送的慢节点信息,该慢节点信息用于表征该慢节点在集群系统中的位置。其中,该调度模块(如运行调度器程序的模块)可以位于第一节点(如该集群系统中的训练节点)、或与第一节点存在通信交互的第二节点(如该集群系统中的控制节点)。
68.在该调度模块位于位于与该第一节点存在通信交互的第二节点(如该集群系统中的控制节点)的情况下,该第一节点从该第二节点接收该慢节点信息,即:该慢节点信息为:该第二节点接受该调度模块的调度控制后转发给该第一节点的信息。该第一节点根据该慢节点信息,将由该慢节点执行的训练任务的进度状态替换到正常的备选节点,继续执行该训练任务。采用本实施方式,当该调度模块接收到该慢节点信息后,可以对集群系统中的多个训练节点所执行的训练任务进行调度,比如,从多个训练节点中检测出慢节点及其在集群系统中的位置后,保存慢节点所执行训练任务的进度状态(即慢节点的进度状态),之后执行主备倒换操作,即将该慢节点的进度状态替换到正常的备选节点(该备选节点与该慢节点存在主备倒换关系),继续执行该训练任务。
69.下面对上述本公开实施例提供的慢节点检测方法进行示例说明。
70.大规模的训练任务,按集群系统中训练节点的类型可以分为:纯cpu、纯gpu、及cpu和gpu混合设置的类型,按训练模式可以分为同步训练和异步训练。其中,在同步训练中进一步包括:参数服务器(parameter server,ps)架构和集合(collective)架构,该ps架构是深度学习最常采用的分布式训练架构,该collective架构是实现多gpu集合通信的架构。在大规模的训练任务需要进行慢节点的检测,尤其是针对纯gpu、同步训练及collective架构场景的慢节点检测,是慢节点定位最困难的研究方向,也是需要尤为关注的问题。
71.在集群系统中实现集合通信操作,如果遇到集合通信阻塞,则一慢全慢,无法精确分析集合通信中慢节点发生的原因,也就无法精确定位该集群系统中慢节点异常的训练节点。在集合通信中,集合通信库可以提供训练节点间高性能的gpu间或cpu间通信实现,在一次集合通信操作中,该集群系统中的多个训练节点可以完成各自的数据计算和传输操作后进行同步等待,在所有训练节点都完成该操作后各节点才会感知到训练任务的进度,也就是说,无法直接区分出单个或部分慢节点。需要在训练任务运行前和运行时更高效的检测出慢节点。
72.采用如下图4的集群系统架构、及图5所示的基于感知模块与训练节点交互的感知流程的感知架构,可以在训练任务运行前和运行时更高效的检测出慢节点。
73.图4是应用于本公开实施例的一应用示例的集群系统架构示意图,包括一个或多个控制节点(如控制节点1-控制节点m,m为大于1的整数),及与该控制节点通过网络进行通信交互的一个或多个训练节点(如训练节点1-训练节点n,n为大于1的整数)。在任一个控制节点中可以部署用于通信交互的网卡、及用于向任一个训练节点下发控制指令的cpu;在任
一个训练节点中可以部署用于通信交互的网卡、及用于向gpu下发控制指令的cpu。
74.就训练节点上的cpu和gpu而言,训练框架程序以多进程多线程或单进程多线程的方式运行在该训练节点的cpu上,以便将训练任务执行过程中的主要计算指令和通信指令下发至该训练节点的gpu。集合通信库也运行在该训练节点的cpu上,以提供多个训练节点间高性能的gpu间或cpu间通信实现(如gpu间的数据交换)。调度器程序可以一部分运行在一个或多个训练节点的cpu上,另一部分运行在这些训练节点之外,且能和这些训练节点通信的控制节点的cpu上,该调度器程序用于负责训练任务的节点资源分配和运行环境准备。本应用示例中所检测得到的慢节点均为训练节点。
75.需要指出的是,该感知模块可以为集群系统中的模块,不限于部署于集群系统中的训练节点或控制节点,可以位于集群系统中的任一个节点,或者独立设置,即:位于集群系统中且与节点分开配置。通过感知模块与训练节点交互(如该感知模块与该训练节点中的该训练框架程序及该集合通信库交互)的感知流程,可以执行慢节点检测及慢节点的定位。
76.图5是应用于本公开实施例的一应用示例的实现感知流程的架构示意图,基于如图5所示的架构示意图,包括如下内容:
77.本应用示例中,可以通过感知模块来执行慢节点的检测,还可以采用一些其他程序/模块来响应该慢节点的检测,比如,可以设置运行在训练节点cpu上的训练框架程序,还可以设置调度器程序(该调度器程序,可以一部分运行在一个或多个训练节点的cpu上,另一部分运行在这些训练节点之外,且能和这些训练节点通信的控制节点的cpu上)。该慢节点的检测的流程可以包括如下内容:
78.1、感知模块将计时请求发至训练框架程序(该训练框架程序可以采用多进程多线程或单进程多线程的方式运行在训练节点的cpu上),训练框架程序基于计时请求调用集合通信库(该集合通信库运行于训练节点的cpu上,可以提供训练节点间高性能的gpu间通信实现或cpu间通信实现,例如gpu间的数据交换)进行集合通信操作时,集合通信库启动计时功能,执行集群系统内部的集合通信实现,完成该次操作的计时和记录。比如,触发一个训练节点中多个gpu间的数据交换、或者多个训练节点所包含gpu间的数据交换,最终完成该次集合通信操作后,予以的计时和记录。
79.需要指出的是,进行上述集合通信操作的情况下,可以响应该集合通信操作,比如,所有参与数据交换的训练节点和/或电子设备(一个训练节点可以包括多个电子设备)进行一次集体的数据交换(如数据同步),不限于上述gpu间的数据交换,考虑到针对gpu的大规模训练任务,本应用示例以gpu间的数据交换进行举例描述。执行该数据交换之后,可以通过计时操作记录下一次交换过程的时间(比如记录为“时间1”)。
80.2、该感知模块判断该“时间1”是否慢于一个时间阈值,即是否大于该时间阈值,如果大于,则确定为“慢”,即当前集群系统中存在慢节点,该感知模块向运行在训练节点cpu上的训练框架程序发出申请暂停训练任务的请求。换言之,通过该“时间1”与该时间阈值的比对,可以发现该集群系统的一个或多个训练节点中存在慢节点,但是无法定位出慢节点的准确位置,需要通过如下步骤3的慢节点检测程序定位出慢节点的准确位置。其中,该训练任务指:一个主要过程在gpu上完成的训练任务,上述数据交换为训练任务的一个子任务。
81.3、运行在训练节点cpu上的训练框架程序收到该感知模块发起的该暂停训练任务的请求后,暂停当前训练任务,并保存参与训练任务的多个训练节点的进度状态,并通知该感知模块执行如下的慢节点检测程序,如下的慢节点检测程序可以择一或组合使用。运行该慢节点检测程序,从而在多个训练节点中定位出慢节点,并将定位出的慢节点信息(即用于表征该慢节点在集群系统中的位置,如慢节点id)通知调度模块(运行调度器程序的模块)。
82.该慢节点检测程序包括如下至少之一:
83.3.1、执行单机检测,对基础环境进行检测,即:扫描所有参与训练任务的多个训练节点的硬件的状态,以找出慢节点。
84.3.2、执行集群检测,扫描所有集群基础环境配置参数,以找出慢节点。
85.3.3、用二分法的方式循环执行集合通信的检测,以找出慢节点。具体的,是将所有参与训练任务的多个训练节点进行分区,得到多个子区,对每个子区做集合通信带宽和延时测试,得到各个子区的延时和带宽。将各个子区的延时和带宽与延时和带宽的期望值做比较,若延时大于期望值和/或带宽小于期望值,则判定该子区存在慢节点。对该子区继续进行划分,执行二分法的方式,直至定位出慢节点。
86.为了提高慢节点的检测速度,考虑到3.3比较耗时,可以先执行3.1或3.2,再执行3.3。通过3.1或3.2检测出慢节点后,将其从当测试的所有训练节点的集合中排除,再执行3.3以对集合中剩下的训练节点是否存在慢节点进行排查。
87.4、该感知模块通过慢节点检测程序得到慢节点信息后,将该慢节点信息发送至该训练框架程序,由训练框架程序同步至调度器程序。以调度器程序运行于该集群系统中的控制节点为例,该调度器程序可以将定位出的慢节点进行替换,并恢复训练任务,使其继续运行,比如,找到一个与该慢节点存在主备倒换关系的备选节点(备选节点处于正常运行状态),为该备选节点准备好训练任务的运行环境,将通过该感知模块定位出的该慢节点的进度状态复制到该备选节点,从而,将该慢节点的进度状态替换到该备选节点。将慢节点的进度状态替换到该备选节点后恢复训练任务。换言之,在整个慢节点检测过程中,不需要先停止慢节点再重启训练任务。
88.相关技术中是使用基于同步的集合通信模式,若集群系统中存在慢节点,发生了故障,其他训练节点会退出训练任务并释放训练节点的计算资源。当故障恢复后,训练节点再获取训练任务并退出当前的模型数据,重新执行训练任务。由于训练节点需要重新加载模型数据,重新分配计算资源,也就是说,需要先停止慢节点再重启训练任务,非常耗时,而采用本应用示例,实现了不需要重启训练任务即可实现慢节点的检测及替换,节省了gpu大规模训练下训练任务停止/训练任务恢复所需的大量时间,节约了大量的时间成本,可以更高效的得到训练好的模型,将训练得到的该模型部署于集群系统中,提高了集群系统的运行效率。
89.根据本公开的实施例,提供了一种慢节点检测装置,图6是根据本公开实施例的慢节点检测装置的组成结构示意图,如图6所示,慢节点检测装置600包括:感知模块601,用于向第一节点发起计时请求,其中,所述第一节点为一个或多个在集群系统中执行训练任务的训练节点;接收所述第一节点反馈的计时信息;根据所述计时信息检测出所述集群系统存在慢节点。
90.一实施方式中,所述感知模块,用于在所述计时信息大于阈值的情况下,检测出所述集群系统存在慢节点。
91.一实施方式中,所述感知模块,用于向所述第一节点发起暂停训练任务的请求;运行慢节点检测程序,检测出所述慢节点在所述集群系统中的位置。
92.一实施方式中,所述感知模块,用于以单机检测、集群检测、二分法的方式循环执行集合通信检测中的至少一种检测模式运行所述慢节点检测程序,检测出所述慢节点在所述集群系统中的位置。
93.一实施方式中,所述感知模块,用于将慢节点信息通知调度模块,所述慢节点信息用于表征所述慢节点在所述集群系统中的位置;其中,所述调度模块位于所述第一节点、或与所述第一节点存在通信交互的第二节点。
94.根据本公开的实施例,提供了一种慢节点检测装置,图7是根据本公开实施例的慢节点检测装置的组成结构示意图,如图7所示,慢节点检测装置700包括:第一节点701,用于接收感知模块发起的计时请求;其中,所述第一节点为一个或多个在集群系统中执行训练任务的训练节点;基于所述计时请求进行集合通信操作,完成所述集群系统中的数据交换,得到计时信息;向所述感知模块发送所述计时信息。
95.一实施方式中,所述第一节点,用于接收所述感知模块发起的暂停训练任务的请求;响应所述暂停训练任务的请求,暂停训练任务,存储所述训练任务的进度状态;通知所述感知模块运行慢节点检测程序。
96.一实施方式中,还包括:位于所述第一节点的调度模块,用于接收所述感知模块发送的慢节点信息,所述慢节点信息用于表征所述慢节点在所述集群系统中的位置;所述第一节点,用于接受所述调度模块的调度控制,根据所述慢节点信息,将由所述慢节点执行的所述训练任务的进度状态替换到正常的备选节点,继续执行所述训练任务。
97.一实施方式中,还包括:位于第二节点的调度模块,用于接收所述感知模块发送的慢节点信息,所述慢节点信息用于表征所述慢节点在所述集群系统中的位置;所述第一节点,用于接收所述慢节点信息,所述慢节点信息为:所述第二节点接受所述调度模块的调度控制后转发给所述第一节点的信息,其中,所述第二节点与所述第一节点存在通信交互;根据所述慢节点信息,将由所述慢节点执行的所述训练任务的进度状态替换到正常的备选节点,继续执行所述训练任务。
98.一实施方式中,所述备选节点,与所述慢节点存在主备倒换关系。
99.本公开实施例各装置中的各模块的功能可以参见上述方法中的对应描述,在此不再赘述。
100.本公开的技术方案中,所涉及的用户个人信息的获取,存储和应用等,均符合相关法律法规的规定,且不违背公序良俗。
101.根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
102.图8示出了可以用来实施本公开的实施例的示例电子设备800的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算
装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
103.如图8所示,电子设备800包括计算单元801,其可以根据存储在只读存储器(rom)802中的计算机程序或者从存储单元808加载到随机访问存储器(ram)803中的计算机程序,来执行各种适当的动作和处理。在ram803中,还可存储电子设备800操作所需的各种程序和数据。计算单元801、rom 802以及ram 803通过总线804彼此相连。输入/输出(i/o)接口805也连接至总线804。
104.电子设备800中的多个部件连接至i/o接口805,包括:输入单元806,例如键盘、鼠标等;输出单元807,例如各种类型的显示器、扬声器等;存储单元808,例如磁盘、光盘等;以及通信单元809,例如网卡、调制解调器、无线通信收发机等。通信单元809允许电子设备800通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
105.计算单元801可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元801的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。计算单元801执行上文所描述的各个方法和处理,例如慢节点检测方法。例如,在一些实施例中,慢节点检测方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元808。在一些实施例中,计算机程序的部分或者全部可以经由rom 802和/或通信单元809而被载入和/或安装到电子设备800上。当计算机程序加载到ram 803并由计算单元801执行时,可以执行上文描述的慢节点检测方法的一个或多个步骤。备选地,在其他实施例中,计算单元801可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行慢节点检测方法。
106.本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、负载可编程逻辑设备(cpld)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
107.用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
108.在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计
算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
109.为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入、或者触觉输入)来接收来自用户的输入。
110.可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)和互联网。
111.计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
112.应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开的技术方案所期望的结果,本文在此不进行限制。
113.上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1