一种计算系统以及计算组间的通信关系控制方法与流程

摘要: 本技术涉及计算领域,尤其涉及一种计算系统以及计算组间的通信关系控制方法。背景技术:1、光电混合组网包括多个用于执行ai任务的计算组,每个计算组中包括多个计算卡,...
一种计算系统以及计算组间的通信关系控制方法与流程

本技术涉及计算领域,尤其涉及一种计算系统以及计算组间的通信关系控制方法。

背景技术:

1、光电混合组网包括多个用于执行ai任务的计算组,每个计算组中包括多个计算卡,每个计算组内的多个计算卡通过电交换机通信,计算组之间通过光交换机通信,通常情况下,ai任务会被分成多个子任务,并将多个子任务分配给多个计算组中的多个计算卡执行,这样在ai任务执行过程中,多个子任务之间在进行通信时,需要跨计算组进行通信,但由于光交换机只能通过光口点对点通信,所以连接计算组之间的连接通路有限,在计算组之间的通信量比较多时,容易造成通信冲突,尤其对于光口数量较小的计算组,冲突情况更为严重,所以如何减少计算组之间的通信是亟待解决的问题。

技术实现思路

1、本技术提供了一种计算系统以及计算组间的通信关系控制方法,通过管理节点根据确定的任务之间的通信关系以及多个计算组提供的可用资源量,将可用资源量较少的计算组执行的子任务对应的多个通信对象尽量分配至同一计算组中,从而避免光端口不足导致的数据传输冲突,影响系统通信性能的问题。

2、第一方面,本技术实施例提供了一种计算系统,该计算系统包括n个计算组,每个计算组包括多个计算卡,每个计算组内的多个计算卡通过电交换设备连接,多个计算组之间通过光交换设备连接。计算系统中的管理节点预先获取执行一个ai任务的m个子任务之间的通信关系,之后,对需要执行任务的n个计算组按照可用资源量进行排序,其中,第j-1个计算组的可用资源量大于等于第j个计算组的可用资源量,将m个子任务中的x个子任务分配至可用资源量较少的第i个计算组至第n个计算组的x个计算卡中,并将与x个子任务之间存在通信关系的y个子任务分配至可用资源量较大的第1个计算组至第i-2个计算组或者第i-1个计算组中,将剩余的m-(x+y)个子任务分配至第i-1个计算组。

3、综上所述,本技术实施例提供的一种计算系统,通过管理节点根据获取的ai任务的多个子任务之间的通信关系以及参与执行任务的多个计算组提供的可用资源量,按照可用资源量(例如,可用光端口的数量)的顺序,优先选择排在最末端的计算组为ai任务中的部分子任务分配计算卡,然后选择排在最前端的计算组为与已分配的子任务有通信关系的子任务分配计算卡,然后再选择可用资源量倒数第二的计算组为剩余的子任务分配计算卡,如此类推,直到所有子任务都分配完毕,这样,可以有效减少计算组之间的通信量,从而减少冲突,尤其对于可用资源量少的计算组,更能有效减少冲突,提高通信效率。

4、示例性地,管理节点将ai任务的m个子任务分配给n个计算组中的m个计算卡的具体过程如下:将x1个子任务分配至所述n个计算组中的第n个计算组,预先确定将与x1个子任务有通信关系的y1个子任务分配给n个计算组中的第一个计算组中的计算卡,其中第一个计算组为可用资源量最大的计算组。

5、在第一计算组能够提供的计算卡的数量大于或者等于y1的情况下,将y1个子任务分配给第一计算组中的y1个计算卡,但是,在第一计算组能够提供的计算卡的数量小于y1的情况下,确定将y1个子任务分配给n个计算组中的第一个计算组以及第二计算组中的y1个计算卡。之后,管理节点将剩余子任务中的x2个子任务分配给第n-1个计算组中的x2个计算卡,并在第一个计算组和/或第二计算组中为与x2个计算卡有通信关系的y2个子任务分配y2个计算卡,直至将剩余的子任务分配给i-1个计算组中的计算卡。

6、上述过程进一步说明了,由于可用资源量最少的计算组,最易产生数据传输瓶颈,通信冲突问题,管理节点先为可用资源量最少的计算组分配执行的子任务,并将与该子任务存在通信关系的多个子任务分配给可用资源量最多的计算组,只有在可用资源量最多的计算组能够提供的计算卡数量较少的情况下,将多个子任务分配给可用资源量最多的计算组以及可用资源第二多的计算组,之后重复上述步骤,重新选择当前多个未被分配子任务的多个计算组中可用资源量最少的计算组,可以最大程度地减少可用资源量较少的计算组与多个计算组进行组间通信的通信量,保证系统的通信性能。

7、示例性地,当第一计算组中的计算卡的数量小于y1,管理接地那将y1个子任务分配至第一计算组和第二计算组中的y1个计算卡的具体过程如下:管理节点将y1个子任务中与x1个子任务中的第一个子任务有通信关系的y1个子任务分配至第一计算组中的y1个计算卡;先选择第一计算组为y1个子任务中与x1个子任务中的第二个子任务有通信关系的y2个子任务分配计算卡;之后,确定第一计算组中的剩余计算卡的数量能否覆盖y2个子任务的数量,当第一计算组中剩余的计算卡的数量大于或者等于y2时,将y2个子任务分配至第一计算组中的y2个计算卡;或者,当第一计算组中剩余的计算卡的数量小于y2时,将y2个子任务分配至第二计算组中的y2个计算卡,以使x1个子任务中的每个子任务需要通信的多个子任务尽量分配给同一个计算组。

8、上述过程在需要将多个子任务分配给不止一个的计算组的情况下,根据计算组包括的可用资源量,将x1个子任务中的每个子任务有通信关系的多个子任务分配至同一个计算组中,以将同一个计算卡仅需与一个计算组进行组间通信,以减少数据冲突,提升通信性能。

9、示例性地,每个计算组的可用资源量为每个计算组的对应的光端口的数量。

10、光端口数量通常与每个计算组中的计算卡数量相关,在计算卡数量越多的情况下,每个计算卡均可能通过光端口与其他计算卡交换数据,因此,所需的光端口数量越多,光端口数量还可能与交换机配置等有关,本技术不作具体限定。在计算系统中,计算组对应的光端口可以支持ai任务的高带宽需求,通过两个计算组中的光端口,实现光通信链路的建立,从而满足计算组之间的组间通信需求。

11、示例性地,在管理节点为计算系统中的调度器的情况下,管理节点获取执行一个ai任务的m个子任务之间的通信关系的过程具体如下:调度器接收ai平台下发的ai任务以及执行ai任务需要的计算卡的数量、并行策略以及通信算法,并根据计算卡的数量、并行策略以及通信算法生成ai任务的m个子任务之间的通信关系。

12、上述过程中,并行策略包括数据并行(data parallelism,dp)、张量并行(tensorparallelism,tp),以及流水并行(pipeline parallelism,pp)等中的一个或者多个;通信算法包括广播(broadcast)、收集(gather)、散布(scatter)、全收集(all-gather)、规约(reduce)、全规约(all-reduce)、规约散布(redeuce-scatter)等通信算法中的一个,并行策略以及通信算法除上述类型外,还可以包括更多的类型,对此本技术不作具体限定。根据执行子任务的计算卡的数量、并行策略以及通信算法可以确定ai任务的m个子任务之间的通信关系。

13、通信关系可以通过多个通信对进行表示,每个通信对可以通过rank_id进行表示,每个rank_id用于指示一个子任务,例如,在存在m个子任务的情况下,确定rank_0~rank_(m-1),确定(rank_0,rank_1)、(rank_0,rank_m)、(rank_1,rank_2)等多个通信对,从而确定ai任务的m个子任务之间的通信关系,以及每个子任务对应的具有通信关系的多个子任务。

14、示例性地,在管理节点为计算系统中的计算卡的情况下,管理节点获取执行一个ai任务的m个子任务之间的通信关系的过程具体如下:计算卡从调度器中获取m个子任务的通信关系,调度器获取m个子任务的通信关系的具体过程此处不再赘述。

15、第二方面,本技术实施例提供了一种计算组间的通信关系控制方法,该方法应用于计算系统中的管理节点,该计算系统包括n个计算组,每个计算组包括多个计算卡,每个计算组内的多个计算卡通过电连接,多个计算组之间通过光交换设备连接,该方法包括:获取执行一个ai任务的m个子任务之间的通信关系;将m个子任务中的x个子任务分配至n个计算组中的第i个计算组至第n个计算组的x个计算卡中,其中n个计算组按照资源量进行排序,其中第j-1个计算组的可用资源量大于等于第j个计算组的可用资源量;将m个子任务中与x个子任务有通信关系的y个子任务分配至n个计算组中的第1个计算组至第i-2个计算组或者第1个计算组至第i-1个计算组,并将剩余的m-(x+y)个子任务分配至第i-1个计算组。

16、示例性地,将m个子任务中与x个子任务有通信关系的y个子任务分配至n个计算组中的第1个计算组至第i-2个计算组或者第1个计算组至第i-1个计算组,并将剩余的m-(x+y)个子任务分配至第i-1个计算组的具体过程如下:将x1个子任务分配至n个计算组中的第n个计算组;选择n个计算组中的第一个计算组为与x1个子任务有通信关系的y1个子任务分配计算卡;当第一计算组中的计算卡的数量大于或者等于y1时,则将y1个子任务分配至第一计算组中y1个计算卡,当第一计算组中的计算卡的数量小于y1时,则将y1个子任务分配至第一计算组和第二计算组中的y1个计算卡;继续选择第n-1个计算组为剩余子任务中的x2个子任务分配x2个计算卡,并在第一个计算组或者第二计算组中继续为与x2个计算卡有通信关系的y2个子任务分配计算卡,直到将剩余的子任务全部分配至第i-1个计算组中的计算卡。

17、示例性地,当第一计算组中的计算卡的数量小于y1时,则将y1个子任务分配至第一计算组和第二计算组中的y1个计算卡包括:将y1个子任务中与x1个子任务中的第x个子任务有通信关系的y1个子任务分配至第一计算组中的y1个计算卡;选择第一计算组为y1个子任务中与x1个子任务中的第x+1个子任务有通信关系的y2个子任务分配计算卡;当第一计算组中剩余的计算卡的数量大于或者等于y2时,将y2个子任务分配至第一计算组中的y2个计算卡,当第一计算组中剩余的计算卡的数量小于y2时,将y2个子任务分配至第二计算组中的y2个计算卡。

18、示例性地,每个计算组的可用资源量为每个计算组的对应的光端口的数量。

19、示例性地,计算系统还包括调度器,在管理节点部署在调度器时,获取执行一个ai任务的m个子任务之间的通信关系的具体过程如下:调度器接收ai任务以及执行ai任务需要的卡的数量、并行策略及通信算法;根据卡的数量、并行策略及通信算法生成m个子任务之间的通信关系。

20、示例性地,在管理节点部署在计算卡时,获取执行一个ai任务的m个子任务之间的通信关系的具体过程如下:计算卡从计算系统的调度器中获取执行一个ai任务的m个子任务之间的通信关系。

21、第三方面,本技术实施例提供了一种调度器,该调度器用于部署管理节点,以执行第二方面所述的方法。

22、第四方面,本技术实施例提供了一种芯片,该芯片用于部署管理节点,以执行第二方面所述的方法。

23、第五方面,本技术实施例提供了一种包含指令的计算机程序产品,当指令被管理节点运行时,使得管理节点实现第二方面所述的方法。

24、第六方面,本技术实施例提供了一种计算机可读存储介质,包括计算机程序指令,当计算机程序指令由计算设备执行时,以使管理节点实现第二方面所述的方法。

25、本技术在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。