System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 集合通信方法及计算集群技术_技高网

集合通信方法及计算集群技术

技术编号:41060173 阅读:11 留言:0更新日期:2024-04-24 11:11
本申请实施例提供了一种集合通信方法及计算集群,涉及计算机领域,该方法应用于计算集群,计算集群的进程组中包括M个通信组,每个通信组包括至少两个具有通信关系的进程,其中,M为大于等于1的整数,该方法包括:M个通信组中的任一通信组如第一通信组中的第一进程获取第一通信组中第二进程的内存资源对应的内存地址也就是第一内存地址;第一通信组中的第一进程根据第一内存地址多次与第一通信组中的第二进程进行数据传输。本申请实施例提供的方案,可以避免在计算集群中进程组的多次进程间数据传输中反复获取传输数据所需的内存地址,从而减少计算集群的时延。

【技术实现步骤摘要】

本申请实施例涉及计算机领域,尤其涉及一种集合通信方法及计算集群


技术介绍

1、集合通信(collective communication,coll)又称组通信、聚合通信,是计算集群中多个计算资源上运行的多个进程均参加通信从而形成进程组,以执行计算任务的集体通信行为。上述进程组可以包括至少一个具有通信关系的通信组,每个通信组包括至少两个存在通信关系的进程。通常通信组的进程间会进行多次数据传输,以实现数据量较大的计算任务。

2、相关技术中,集合通信的每个进程预先分配有内存资源,通信组中的每个进程在每次数据传输前均需获取该通信组内其余进程的内存资源对应的内存地址,导致集合通信中存在大量重复的内存地址获取操作,造成集合通信的通信时延增加。


技术实现思路

1、为了解决上述技术问题,本申请提供一种集合通信方法及计算集群。在该方法中,计算集群的通信组中第一进程在与该通信组中第二进程进行多次数据传输前,获取该通信组中第二进程的内存资源对应的内存地址并记录,从而可以根据所记录的内存地址进行上述多次数据传输,避免在上述多次数据传输中反复获取传输数据所使用的内存地址,从而减少计算集群的时延。

2、第一方面,本申请实施例提供一种集合通信方法,应用于计算集群,计算集群包括多个计算资源,多个计算资源上运行有n个进程,n个进程形成一个用于执行计算任务的进程组,n个进程中的每个进程分配有内存资源,进程组中包括m个通信组,每个通信组包括至少两个具有通信关系的进程,其中,m为大于等于1的整数,n为大于等于2的整数;该方法包括:第一通信组中的第一进程获取第一内存地址,并记录第一内存地址;其中,第一内存地址为第一通信组中第二进程的内存资源对应的内存地址;第一通信组为m个通信组中的任一通信组;第一通信组中的第一进程根据第一内存地址多次与第一通信组中的第二进程进行数据传输。

3、示例性的,图6a是本申请实施例提供的一种集合通信过程的示意图。如图6a所示,第一进程可以为进程0,第二进程可以为进程1,第一内存地址可以为地址a0,数据可以为数据d0。类似的,第一进程为进程1时,第二进程为进程2。

4、本申请实施例中,第一通信组中的第一进程在与第一通信组中的第二进程进行多次数据传输之前,获取第一通信组中的第二进程对应的内存资源的内存地址,可以避免在多个通信步骤(如图6a的通信步骤0至通信步骤2)也就是数据传输中反复获取目标地址也就是第一内存地址,从而减少计算集群的时延。

5、根据第一方面,第一通信组中的第一进程根据第一内存地址多次与第一通信组中的第二进程进行数据传输,包括:第一通信组中的第一进程将数据多次写入第一内存地址对应的第一通信组中的第二进程的内存资源。

6、本申请实施例中,第一通信组中的第一进程可以通过将数据多次写入第一内存地址对应的第一通信组中的第二进程的内存资源,实现与该第二进程间的数据传输。

7、根据第一方面,第一通信组中的第一进程根据第一内存地址多次与第二进程进行数据传输,包括:第一通信组中的第一进程从第一内存地址对应的第一通信组中的第二进程的内存资源中多次读取数据。

8、本申请实施例中,第一通信组中的第一进程可以通过从第一内存地址对应的第一通信组中的第二进程的内存资源中多次读取数据,实现与该第二进程间的数据传输。

9、根据第一方面,或者以上第一方面的任意一种实现方式,第一通信组中的第一进程根据第一内存地址多次与第一通信组中的第二进程进行数据传输,包括:第一通信组中的第一进程与第一通信组中的第二进程每传输一次数据,记录所传输数据所占用的第一内存地址的地址空间;第一通信组中的第一进程在每次传输数据之前,根据所记录的第一内存地址的地址空间占用情况确定所传输数据对应的内存地址。

10、示例性的,第一内存地址的地址空间例如可以是地址空间as1,第一内存地址例如可以是内存地址a11。第一通信组中的第一进程在第一次传输数据之前,可以记录地址空间as的占用情况为未占用,则确定所传输数据对应的内存地址为内存地址a11;第一通信组中的第一进程在第二次传输数据之前,可以记录第一内存地址的地址空间占用情况为已占用第一内存地址例如内存地址a11,则确定第二次传输数据中所传输数据对应的内存地址为地址空间as中,与内存地址a11对应的地址空间相邻的下一段地址空间的内存地址,例如内存地址a12。以此类推,第一通信组中的第一进程在第三次传输数据之前,可以记录第一内存地址的地址空间占用情况为已占用内存地址a12,则确定第三次传输数据中所传输数据对应的内存地址为地址空间as中,与内存地址a12对应的地址空间相邻的下一段地址空间的内存地址,例如内存地址a13。

11、本申请实施例中,第一通信组中的第一进程可以通过第一内存地址,记录每一次数据传输对第一内存地址的地址空间占用情况,从而在每次传输数据前,根据所记录的第一内存地址的地址空间占用情况确定所传输数据对应的内存地址,也就是实现了对第一内存地址对应的内存资源的管理,从而可以根据提前获取的第一内存地址,在每次数据传输中准确确定所传输数据对应的内存地址。

12、根据第一方面,或者以上第一方面的任意一种实现方式,第一通信组中的第一进程的数量为一个或多个,第一通信组中的第二进程的数量为一个或多个。

13、本申请实施例中,第一通信组中的第一进程的数量为一个或多个,第一通信组中的第二进程的数量为一个或多个,可以适用于多种进程间通信场景,例如集合通信中的广播、归约、全局收集等等通信场景。

14、根据第一方面,或者以上第一方面的任意一种实现方式,第一通信组中的第一进程的数量为多个,第一通信组中的第二进程的数量为多个;第一通信组中的第一进程获取第一内存地址,包括:第一通信组中的多个第一进程中的主进程获取第一通信组中的每个第二进程对应的第一内存地址,得到地址集合;主进程发送地址集合至多个第一进程中除主进程外的其他第一进程。

15、示例性的,图6d是本申请实施例提供的另一种集合通信过程的示意图。如图6d所示,主进程可以为进程0,进程0可以获取进程0所属通信组中每个第二进程例如进程1至进程3对应的第一内存地址,得到地址集合;进而将地址集合中的地址发送给该通信组中除第一进程外的其他第一进程。

16、本申请实施例中,通过第一通信组中的多个第一进程中的主进程集中获取第一通信组中的每个第二进程对应的第一内存地址,可以在第一通信包括多个第一进程和多个第二进程的场景中,减少每个第一进程均与每个第二进程交互以获取每个第二进程对应的内存地址,从而更加便捷地实现内存地址的获取。

17、第二方面,本申请实施例提供一种计算集群,包括多个计算资源,多个计算资源上运行有n个进程,n个进程形成一个用于执行计算任务的进程组,n个进程中的每个进程分配有内存资源,进程组中包括m个通信组,每个通信组包括至少两个具有通信关系的进程,其中,m为大于等于1的整数,n为大于等于2的整数;第一通信本文档来自技高网...

【技术保护点】

1.一种集合通信方法,其特征在于,应用于计算集群,所述计算集群包括多个计算资源,所述多个计算资源上运行有N个进程,所述N个进程形成一个用于执行计算任务的进程组,所述N个进程中的每个进程分配有内存资源,所述进程组中包括M个通信组,每个通信组包括至少两个具有通信关系的进程,其中,M为大于等于1的整数,N为大于等于2的整数;所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述第一通信组中的第一进程根据所述第一内存地址多次与所述第一通信组中的第二进程进行数据传输,包括:

3.根据权利要求1所述的方法,其特征在于,所述第一通信组中的第一进程根据所述第一内存地址多次与所述第二进程进行数据传输,包括:

4.根据权利要求1-3中任一项所述的方法,其特征在于,所述第一通信组中的第一进程根据所述第一内存地址多次与所述第一通信组中的第二进程进行数据传输,包括:

5.根据权利要求1-4中任一项所述的方法,其特征在于,所述第一通信组中的第一进程的数量为一个或多个,所述第一通信组中的第二进程的数量为一个或多个。

6.根据权利要求1-5中任一项所述的方法,其特征在于,所述第一通信组中的第一进程的数量为多个,所述第一通信组中的第二进程的数量为多个;

7.一种计算集群,其特征在于,包括多个计算资源,所述多个计算资源上运行有N个进程,所述N个进程形成一个用于执行计算任务的进程组,所述N个进程中的每个进程分配有内存资源,所述进程组中包括M个通信组,每个通信组包括至少两个具有通信关系的进程,其中,M为大于等于1的整数,N为大于等于2的整数;

8.根据权利要求7所述的计算集群,其特征在于,所述第一通信组中的第一进程,具体用于:

9.根据权利要求7所述的计算集群,其特征在于,所述第一通信组中的第一进程,具体用于:

10.根据权利要求7-9中任一项所述的计算集群,其特征在于,所述第一通信组中的第一进程,具体用于:

11.根据权利要求7-10中任一项所述的计算集群,其特征在于,所述第一通信组中的第一进程的数量为一个或多个,所述第一通信组中的第二进程的数量为一个或多个。

12.根据权利要求7-11中任一项所述的计算集群,其特征在于,所述第一通信组中的第一进程的数量为多个,所述第一通信组中的第二进程的数量为多个;所述第一通信组中的多个第一进程中的主进程,具体用于:

13.一种计算机可读存储介质,其特征在于,包括计算机程序,其特征在于,当所述计算机程序在计算集群上运行时,使得所述计算集群执行如权利要求1至6中任意一项所述的方法。

14.一种计算机程序产品,其特征在于,包括计算机程序,当所述计算机程序被计算集群执行时,使得所述计算集群执行权利要求1至6中任意一项所述的方法。

...

【技术特征摘要】

1.一种集合通信方法,其特征在于,应用于计算集群,所述计算集群包括多个计算资源,所述多个计算资源上运行有n个进程,所述n个进程形成一个用于执行计算任务的进程组,所述n个进程中的每个进程分配有内存资源,所述进程组中包括m个通信组,每个通信组包括至少两个具有通信关系的进程,其中,m为大于等于1的整数,n为大于等于2的整数;所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述第一通信组中的第一进程根据所述第一内存地址多次与所述第一通信组中的第二进程进行数据传输,包括:

3.根据权利要求1所述的方法,其特征在于,所述第一通信组中的第一进程根据所述第一内存地址多次与所述第二进程进行数据传输,包括:

4.根据权利要求1-3中任一项所述的方法,其特征在于,所述第一通信组中的第一进程根据所述第一内存地址多次与所述第一通信组中的第二进程进行数据传输,包括:

5.根据权利要求1-4中任一项所述的方法,其特征在于,所述第一通信组中的第一进程的数量为一个或多个,所述第一通信组中的第二进程的数量为一个或多个。

6.根据权利要求1-5中任一项所述的方法,其特征在于,所述第一通信组中的第一进程的数量为多个,所述第一通信组中的第二进程的数量为多个;

7.一种计算集群,其特征在于,包括多个计算资源,所述多个计算资源上运行有n个进程,所述n个进程形...

【专利技术属性】
技术研发人员:祝佳勾文进
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1