一种数据处理方法及计算集群与流程

文档序号:37159045发布日期:2024-02-26 17:25阅读:16来源:国知局
一种数据处理方法及计算集群与流程

本技术涉及计算机,尤其涉及一种数据处理方法及计算集群。


背景技术:

1、在高性能计算(high performance computing,hpc)或人工智能(artificialintelligence,ai)模型训练的过程中,需要使用聚合通信操作来完成系统中多个计算单元之间的数据同步等操作。常用的聚合通信操作包括allreduce(全局归约)操作,allreduce操作具体是将不同计算单元中的数据归约至某一个计算单元中,以得到聚合结果,随后,该计算单元再将聚合结果分发给其他的各个计算单元中。

2、在allreduce操作中,系统内传输数据的总数据量和总传输次数较大,以总传输数据量为例,假设多个计算单元生成数据的总数据量是x,那么在allreduce操作中,系统内各计算单元之间传输数据的总数据量约是2x。

3、如何减少allreduce操作中数据传输的总数据量和总传输次数,是目前亟待解决的技术问题。


技术实现思路

1、第一方面,本技术提供一种数据处理方法,数据处理方法应用于计算集群中,计算集群包括计算节点,计算节点包括n个计算单元和第一交换机,n个计算单元连接至第一交换机中;方法包括:第一交换机获取allreduce任务的任务信息,其中,任务信息用于指示参与allreduce任务的、且属于计算节点的计算单元为n个;n个计算单元分别发送各自的待聚合数据至第一交换机,其中,每个待聚合数据为对应计算单元中的i个分片中的第i个分片。相应的,第一交换机根据任务信息识别所接收的数据为待聚合数据,并对所接收的待聚合数据执行allreduce操作得到聚合数据;其中,n、i、i为正整数,且i小于i。

2、上述技术方案中,allreduce操作发生在交换机侧,各计算单元的待聚合数据无需经过多次数据传输,以发送至某个计算单元;聚合之后的聚合数据无需经过多次数据传输,以发送至其他的各计算单元,有助于减少allreduce操作中数据传输的总数据量和总传输次数。

3、在一种可能的实现方式中,第一交换机还将聚合数据发送至n个计算单元。

4、上述技术方案中,当参与该allreduce任务的计算节点只有一个时,第一交换机生成的聚合数据即为该allreduce任务的最终聚合结果,第一交换机可将该聚合结果发送至n个计算单元中,从而完成该allreduce任务。

5、在一种可能的实现方式中,计算集群还包括第二交换机,第二交换机用于连接计算节点中的交换机及计算集群中的其他计算节点的交换机;当任务信息还指示参与allreduce任务的计算节点的数量大于1时,第一交换机还将聚合数据发送至第二交换机。相应的,第二交换机将聚合数据和其他计算节点内的交换机发送的聚合数据进行聚合,并将得到的聚合结果发送至第一交换机。第一交换机将聚合结果分别发送至n个计算单元。

6、上述技术方案中,当参与该allreduce任务的计算节点为多个时,第一交换机生成的聚合数据即为该allreduce任务的中间聚合结果,第一交换机还需要将该中间聚合结果发送给第二交换机,相应的,第二交换机聚合多个中间聚合结果以得到最终聚合结果,随后,第二交换机将得到的最终聚合结果发送至多个计算节点各自的交换机中。相应的,第一交换机可以将来自第二交换机的最终聚合结果发送至n个计算单元,从而完成allreduce任务。

7、在一种可能的实现方式中,每个计算单元中的待聚合数据的存储地址的首地址的低位地址相同;在n个计算单元分别发送各自的待聚合数据至第一交换机之前,每个计算单元通过首地址的低位地址,确定第一交换机为对待聚合数据进行聚合的交换机。

8、上述技术方案中,考虑到计算节点中实际包括多个交换机,且n个计算单元均能够连接至该多个交换机的每个交换机中。为保障n个计算单元能够将待聚合数据发送至同一个交换机(即第一交换机)中,设置每个计算单元中待聚合数据的存储地址的首地址的低位地址相同,随后,每个计算单元能够根据相同的首地址的低位地址,确定出相同的交换机。

9、在一种可能的实现方式中,第一交换机在将聚合数据发送至第二交换机之前,还获取每个计算单元中的待聚合数据的存储地址的首地址的低位地址,通过首地址的低位地址,确定第二交换机为对聚合数据进行进一步聚合的交换机。

10、上述技术方案中,考虑到每个计算节点中的交换机还能够向上连接多个交换机,为保障每个计算节点中的交换机能够将聚合数据发送至同一个交换机(即第二交换机)中,设计每个计算节点中的交换机根据相同的首地址的低位地址,确定出相同的交换机。

11、在一种可能的实现方式中,n个计算单元中的每个计算节点将任务信息和待聚合数据一起发送至第一交换机。在一种可能的实现方式中,每个计算节点向第一交换机发送第一聚合请求,该第一聚合请求的载荷(payload)中包括任务信息和待聚合数据。

12、上述技术方案中,每个计算节点将任务信息和待聚合数据一起发送至第一交换机,第一交换机中无需提前配置allreduce任务的任务信息,有助于提高聚合效率。

13、在一种可能的实现方式中,在n个计算单元分别发送各自的待聚合数据至第一交换机之前,还包括:控制单元将任务信息发送至第一交换机,其中,控制单元是n个计算单元中的一个。在一种可能的实现方式中,每个计算节点向第一交换机发送第一聚合请求,该第一聚合请求的payload中包括待聚合数据。

14、上述技术方案中,第一交换机中预先配置allreduce任务的任务信息,该allreduce任务的任务信息无需在聚合请求中发送,有助于减少聚合请求中的payload。

15、在一种可能的实现方式中,n个计算单元通过allreduce操作的操作码以指示第一交换机对待聚合数据执行allreduce操作。如此,配置方法更简单。

16、在一种可能的实现方式中,n个计算单元通过第一交换机的预留地址以指示第一交换机对待聚合数据执行allreduce操作。如此,兼容性更高,可兼容现有的传输协议。

17、在一种可能的实现方式中,计算单元还获取配置信息和切分策略;根据切分策略,确定参与allreduce任务的n个计算单元,n为大于1的整数,n个计算单元包括n个计算单元;根据配置信息和n个计算单元,生成allreduce任务的任务信息。

18、第二方面,本技术提供一种计算集群,计算集群包括计算节点,计算节点包括n个计算单元和第一交换机,n个计算单元连接至第一交换机中;第一交换机,用于获取allreduce任务的任务信息,任务信息用于指示参与allreduce任务的、且属于计算节点的计算单元为n个;n个计算单元,用于分别发送各自的待聚合数据至第一交换机,其中,每个待聚合数据为对应计算单元中的i个分片中的第i个分片;第一交换机,还用于根据任务信息识别所接收的数据为待聚合数据,并对所接收的待聚合数据执行allreduce操作得到聚合数据;其中,n、i、i为正整数,且i小于i。

19、在一种可能的实现方式中,第一交换机还用于将聚合数据发送至n个计算单元。

20、在一种可能的实现方式中,计算集群还包括第二交换机,第二交换机用于连接计算节点中的交换机及计算集群中的其他计算节点的交换机;当任务信息还指示参与allreduce任务的计算节点的数量大于1时,第一交换机还用于将聚合数据发送至第二交换机;第二交换机用于将聚合数据和其他计算节点内的交换机发送的聚合数据进行聚合,并将得到的聚合结果发送至第一交换机;第一交换机还用于将聚合结果分别发送至n个计算单元。

21、在一种可能的实现方式中,每个计算单元中的待聚合数据的存储地址的首地址的低位地址相同;在n个计算单元中的每个计算单元发送各自的待聚合数据至第一交换机之前,还用于通过首地址的低位地址,确定第一交换机为对待聚合数据进行聚合的交换机。

22、在一种可能的实现方式中,第一交换机在将聚合数据发送至第二交换机之前,还用于获取每个计算单元中的待聚合数据的存储地址的首地址的低位地址,通过首地址的低位地址,确定第二交换机为对聚合数据进行进一步聚合的交换机。

23、在一种可能的实现方式中,n个计算单元中的每个计算节点具体用于将任务信息和待聚合数据一起发送至第一交换机。在一种可能的实现方式中,每个计算节点具体用于向第一交换机发送第一聚合请求,该第一聚合请求的payload中包括任务信息和待聚合数据。

24、在一种可能的实现方式中,在n个计算单元分别发送各自的待聚合数据至第一交换机之前,控制单元用于将任务信息发送至第一交换机,其中,控制单元是n个计算单元中的任一个。在一种可能的实现方式中,每个计算节点具体用于向第一交换机发送第一聚合请求,该第一聚合请求的payload中包括待聚合数据。

25、在一种可能的实现方式中,n个计算单元具体用于通过allreduce操作的操作码以指示第一交换机对待聚合数据执行allreduce操作。

26、在一种可能的实现方式中,n个计算单元具体用于通过第一交换机的预留地址以指示第一交换机对待聚合数据执行allreduce操作。

27、在一种可能的实现方式中,计算单元还用于获取配置信息和切分策略;根据切分策略,确定参与allreduce任务的n个计算单元,n为大于1的整数,n个计算单元包括n个计算单元;以及,根据配置信息和n个计算单元,生成allreduce任务的任务信息。

28、第三方面,本技术实施例提供一种计算机可读存储介质,包括计算机程序指令,当计算机程序指令由计算设备执行时,计算设备实现第一方面或第一方面的任一种可能的实现方式中的计算单元的功能,或者实现第一方面或第一方面的任一种可能的实现方式中的第一交换机的功能,或者实现第一方面或第一方面的任一种可能的实现方式中的第二交换机的功能。

29、第四方面,本技术实施例提供一种包含指令的计算机程序产品,当指令被计算设备执行时,计算设备实现第一方面或第一方面的任一种可能的实现方式中的计算单元的功能,或者实现第一方面或第一方面的任一种可能的实现方式中的第一交换机的功能,或者实现第一方面或第一方面的任一种可能的实现方式中的第二交换机的功能。

30、第五方面,本技术实施例提供一种计算设备,计算设备中包括处理器和存储器;处理器执行存储器中存储的指令,以使得计算设备实现第一方面或第一方面的任一种可能的实现方式中的计算单元的功能,或者实现第一方面或第一方面的任一种可能的实现方式中的第一交换机的功能,或者实现第一方面或第一方面的任一种可能的实现方式中的第二交换机的功能。

31、上述第二方面至第五方面中任一方面可以达到的技术效果可以参照上述第一方面中有益效果的描述,此处不再重复赘述。

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