System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种面向异构计算系统的自动调优负载均衡方法技术方案_技高网

一种面向异构计算系统的自动调优负载均衡方法技术方案

技术编号:41339724 阅读:5 留言:0更新日期:2024-05-20 09:57
本发明专利技术公开了一种面向异构计算系统的自动调优负载均衡方法,包括如下步骤:使用MPI+OpenMP+CUDA/HIP三级混合编程模型启动异构计算系统中的CPU和GPU资源;基于整体运算时间,利用假位置搜索算法得出CPU和GPU计算工作量的最佳计算负载比例;根据最佳计算负载比例动态划分CPU和GPU的计算任务。本发明专利技术通过在MPI+OpenMP+HIP三级混合编程模型CPU端使用三级并行域的方式在充分利用计算资源的同时缓解了GPU的计算压力;同时,基于整体运算时间的自动调优负载均衡方法得出CPU和GPU计算工作量的最佳计算负载比例,实现了合理划分不同设备的计算任务达到负载均衡的目的。

【技术实现步骤摘要】

本专利技术涉及高性能计算,具体来说,涉及一种面向异构计算系统的自动调优负载均衡方法


技术介绍

1、近些年,负载均衡技术在高性能计算领域得到了广泛的应用和研究,但是针对异构计算系统的负载均衡技术十分缺乏。在异构计算系统中,由于系统中处理器类型的不同和计算资源性能的不同,如何合理地分配和利用这些资源,成为了一个重要的问题。负载均衡技术可以帮助异构系统实现资源的合理利用和任务的高效执行。使用负载均衡技术,动态地将任务分配到合适的节点中执行,可以避免计算节点过载或闲置导致的资源浪费。另外,负载均衡技术可以通过优化任务的分配方式和执行顺序,最大限度地利用系统中的计算资源,从而提高整个系统的性能和效率。因此,在异构计算中,负载均衡是一种不能被忽略的重要技术。

2、异构计算系统结合了各种类型的处理器和计算资源,如cpu、gpu和tpu等。这些组件在性能和功能方面各有千秋,对负载均衡策略提出了特殊要求。例如,某些任务可能更适合在gpu上运行,而其他任务可能更适合在cpu上运行。近年来,负载均衡技术经历了快速的发展。例如,基于机器学习的负载均衡策略能够更加智能地预测和分配任务。云计算的兴起也为负载均衡提供了新的维度,允许更加灵活和可扩展的资源管理。要解决系统负载均衡问题,有多种算法可供选择。循环算法依据固定顺序分配任务,而最少连接算法则根据节点的当前负载来分配。在异构计算中,算法需要更加智能和适应性强,以充分利用各种计算资源。以气候系统模拟为例,负载均衡技术能显著提升计算效率。通过将计算任务合理分配到cpu和gpu,可以加快模型运行速度,同时确保精确度。

3、尽管负载均衡技术的发展已取得了显著进展,但仍面临诸多挑战,未来的发展可能会集中在利用人工智能进一步优化算法,以及在更大规模和更复杂环境中的应用,因此,如何通过充分利用计算资源来提升异构并行算法计算效率成为了人们急需解决的技术问题。


技术实现思路

1、针对相关技术中的上述技术问题,本专利技术提出一种面向异构计算系统的自动调优负载均衡方法,能够克服现有技术的上述不足。

2、为实现上述技术目的,本专利技术的技术方案是这样实现的:

3、一种面向异构计算系统的自动调优负载均衡方法,包括如下步骤:

4、s1使用mpi+openmp+cuda/hip三级混合编程模型启动异构计算系统中的cpu和gpu资源,在每个计算节点中通过设置三级并行域来优化cpu和gpu的计算过程;

5、s2确定总的计算负载,以及异构系统每个节点的cpu核心数量、gpu数量;

6、s3基于整体运算时间,利用假位置搜索算法得出cpu和gpu计算工作量的最佳计算负载比例;

7、s4根据假位置搜索算法得出的最佳计算负载比例,动态划分cpu和gpu的计算任务,同时同步cpu和gpu计算结果作为程序最终的运算结果。

8、进一步地,步骤s1中,mpi+openmp+cuda/hip三级混合编程模型模型中mpi进程负责cpu端计算任务的划分以及节点间的通信;openmp用于实现cpu端的多核并行计算,而cuda/hip则应用于gpu端的并行计算;

9、进一步地,步骤s1的具体步骤如下:

10、s101 mpi进程分配:在每个计算节点中,首先通过mpi进程对计算任务进行初始划分,每个mpi进程负责部分计算任务,并在节点间进行有效的通信;

11、s102每个mpi进程派生出两个openmp线程,一个openmp线程用来调用cuda/hipapi,另一个openmp线程负责启动多个内嵌的openmp线程;

12、s103 openmp多核并行计算:利用openmp在cpu端进行多cpu核并行计算;

13、s104 cuda/hip并行计算:cuda/hip编程模型在gpu端进行更细粒度的线程级并行计算。

14、进一步地,步骤s3的具体步骤如下:

15、s301设置gpu最小计算负载为0,最大计算负载为100%;

16、s302以gpu计算负载为100%时的算法运行时间为最短时间β,以gpu计算负载为0时的算法运行时间为最长时间γ;

17、s303使用假位置法在0%和100%之间划分gpu计算负载,直到gpu最大最小负载差小于等于1%,在此过程中将β和γ重新赋值为假位置搜索过程中出现的算法运行时间;

18、s304α值为假位置搜索得到的gpu计算负载百分比,1-α为cpu的计算负载百分比;

19、进一步地,假位置搜索算法具体原理如下:

20、假设总计算负载为w,每个计算节点包含m个cpu核和n个gpu,gpu负载所占的比例为α,则cpu和gpu计算负载分别为w(1-α)和wα,cpu计算负载由m-n个cpu核心完成,gpu计算负载由n个gpu完成;

21、假设pcpu和pgpu分别表示单个cpu核心和单个gpu的计算能力,tcpu和tgpu分别表示cpu和gpu完成所划分计算负载的墙钟时间,则整个并行计算时间t为:

22、

23、当tcpu=tgpu时,t达到最小值,即得到整个并行计算时间t最小时gpu负载所占的比例为α的值。

24、本专利技术的有益效果:本专利技术通过在cpu端使用三级并行域的方式确保了cpu和gpu的计算是同时进行的,同时也重叠了数据传输与cpu的计算,而且mpi+openmp+hip三级混合编程模型在充分利用计算资源的同时也缓解了gpu的计算压力,可以进一步提高可扩展并行算法的计算效率;同时,基于整体运算时间的自动调优负载均衡方法,通过假位置搜索算法,得出cpu和gpu计算工作量的最佳计算负载比例,最终实现了合理划分不同设备的计算任务达到负载均衡的目的。本专利技术充分利用系统计算资源的同时提升算法计算效率,适用性强,适合各类算法在异构计算系统中的应用。

本文档来自技高网...

【技术保护点】

1.一种面向异构计算系统的自动调优负载均衡方法,其特征在于,包括如下步骤:

2.根据权利要求1所述的面向异构计算系统的自动调优负载均衡方法,其特征在于,步骤S1中,MPI+OpenMP+CUDA/HIP三级混合编程模型模型中MPI进程负责CPU端计算任务的划分以及节点间的通信;OpenMP用于实现CPU端的多核并行计算,而CUDA/HIP则应用于GPU端的并行计算。

3.根据权利要求1所述的面向异构计算系统的自动调优负载均衡方法,其特征在于,步骤S1的具体步骤如下:

4.根据权利要求1所述的面向异构计算系统的自动调优负载均衡方法,其特征在于,步骤S3的具体步骤如下:

5.根据权利要求1所述的面向异构计算系统的自动调优负载均衡方法,其特征在于,假位置搜索算法具体原理如下:

【技术特征摘要】

1.一种面向异构计算系统的自动调优负载均衡方法,其特征在于,包括如下步骤:

2.根据权利要求1所述的面向异构计算系统的自动调优负载均衡方法,其特征在于,步骤s1中,mpi+openmp+cuda/hip三级混合编程模型模型中mpi进程负责cpu端计算任务的划分以及节点间的通信;openmp用于实现cpu端的多核并行计算,而cuda/hip则应用于gp...

【专利技术属性】
技术研发人员:王玉柱李菲
申请(专利权)人:中国地质大学北京
类型:发明
国别省市:

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

1