当前位置: 首页 > 专利查询>武汉大学专利>正文

一种针对CPU-GPU两级并行计算的自动负载均衡方法技术

技术编号:33211928 阅读:14 留言:0更新日期:2022-04-27 16:48
本发明专利技术提供了一种针对CPU

【技术实现步骤摘要】
一种针对CPU

GPU两级并行计算的自动负载均衡方法


[0001]本专利技术涉及计算机
,尤其涉及一种针对CPU

GPU两级并行计算的自动负载均衡方法。

技术介绍

[0002]1971年,英特尔推出的全球第一颗通用型微处理器,公司的联合创始人之一戈登摩尔(Gordon Moore),就提出“摩尔定律”——每过18个月,芯片上可以集成的晶体管数目将增加一倍。在一块芯片上集成的晶体管数目越多,意味着运算速度即主频就更快。但到了2005年,当主频接近4GHz时,英特尔和AMD发现,速度也会遇到自己的极限:那就是单纯的主频提升,已经无法明显提升系统整体性能,于是Intel/AMD开始生产双核、多核CPU。
[0003]增加核心数目是为了增加线程数,操作系统是通过线程来执行任务的,一般情况下它们是1:1的对应关系,也就是说四核CPU一般拥有四个线程。但Intel引入超线程技术后,使核心数与线程数形成1:2的关系,如四核Core i7支持八线程(或者八个逻辑核心),大幅提升了其多任务、多线程性能。
[0004]现有计划中,在处理的任务数量大的时候,多线程CPU可能会遇到性能的瓶颈,GPU也可以对任务并行处理,因此导致计算效率不高。

技术实现思路

[0005]本专利技术提出一种针对CPU

GPU两级并行计算的自动负载均衡方法,用以解决或者至少部分解决现有技术中存在的计算效率不高的技术问题。
[0006]为了解决上述技术问题,本专利技术提供了一种针对CPU

GPU两级并行计算的自动负载均衡方法,包括:
[0007]S1:获取硬件性能参数,硬件性能参数为CPU核数;
[0008]S2:根据CPU核数获取在CPU中创建的线程数;
[0009]S3:获取并行计算的总任务数与多线程校正参数,并计算单个任务分别在CPU和GPU上执行所需的时间;
[0010]S4:在总执行时间最短的情况下,根据在CPU中创建的线程数、并行计算的总任务数、多线程校正参数、单个任务在CPU上执行所需的时间以及单个任务在GPU上执行所需的时间,计算分配给CPU的任务数量和分配给GPU的任务数量,其中,分配给CPU的任务数量与分配给GPU的任务数量之和为总任务数。
[0011]在一种实施方式中,步骤S4包括:
[0012]根据公式计算分配给CPU的任务数量,公式为:
[0013][0014]根据公式计算分配给GPU的任务数量,公式为:
[0015][0016]其中,s1表示分配给CPU的任务数量,s2表示分配给GPU的任务数量,k表示在CPU中创建的线程数,s表示并行计算的总任务数,α表示多线程校正参数,r
gpu
表示GPU的单个任务的计算加速比,t
cpu
表示单个任务在CPU上执行所需的时间,t
gpu
表示单个任务在GPU上执行所需的时间。
[0017]本申请实施例中的上述一个或多个技术方案,至少具有如下一种或多种技术效果:
[0018]本专利技术提供的本专利技术涉及一种针对CPU

GPU两级并行计算的自动负载均衡方法,首先获取CPU核数,根据CPU核数获取在CPU中创建的线程数;并获取并行计算的总任务数与多线程校正参数,并计算单个任务分别在CPU和GPU上执行所需的时间;在总执行时间最短的情况下计算了CPU和GPU之间的最佳任务分配,以实现确保CPU和GPU同时完成任务,因此提高了计算效率。
附图说明
[0019]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0020]图1为本专利技术实施例提供的一种针对CPU

GPU两级并行计算的自动负载均衡方法流程图;
[0021]图2为本专利技术实施例中当总的计算时间最短时,CPU和GPU的计算时间图。
具体实施方式
[0022]本专利技术提供一种针对CPU

GPU两级并行计算的自动负载均衡方法。两级并行的平衡受许多因素的影响,例如任务量,计算复杂性,CPU性能,多线程开销和GPU性能。因此,本专利技术提出了最优的任务分配策略,以实现最短的总执行时间。而对于负载平衡问题,需要计算CPU和GPU之间的最佳任务分配,以实现确保CPU和GPU同时完成任务,并尽可能减少总执行时间。
[0023]为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0024]本专利技术实施例提供了一种针对CPU

GPU两级并行计算的自动负载均衡方法,包括:
[0025]S1:获取硬件性能参数,硬件性能参数为CPU核数;
[0026]S2:根据CPU核数获取在CPU中创建的线程数;
[0027]S3:获取并行计算的总任务数与多线程校正参数,并计算单个任务分别在CPU和GPU上执行所需的时间;
[0028]S4:在总执行时间最短的情况下,根据在CPU中创建的线程数、并行计算的总任务数、多线程校正参数、单个任务在CPU上执行所需的时间以及单个任务在GPU上执行所需的时间,计算分配给CPU的任务数量和分配给GPU的任务数量,其中,分配给CPU的任务数量与分配给GPU的任务数量之和为总任务数。
[0029]本申请专利技术人通过大量的研究与实践发现:在多线程CPU和GPU两级并行计算的过程中,为了提高运行效率,需要合理地划分任务的分配比例。利用负载均衡的思想,通过任务调度,可以使得多线程CPU和GPU上的任务负载达到均衡状态,两者完成各自任务所需的执行时间相等,这时任务的总执行时间最短,CPU和GPU两级并行计算功效发挥到最大。
[0030]负载均衡,是一种计算机技术,用来在多个计算机(计算机集群)、网络连接、CPU、磁盘驱动器或其他资源中分配负载,以达到最优化资源使用、最大化吞吐率、最小化响应时间、同时避免过载的目的。在CPU

GPU两级并行计算中,将负载(工作任务,访问请求)进行平衡、分摊到多个操作单元(多线程CPU和GPU)进行执行。是提升计算机运行效率,实现高性能计算的终极解决方案。
[0031]请参见图1,为本专利技术实施例提供的一种针对CPU

GPU两级并行计算的自动负载均衡方法流程图。两级并行的平衡受许多因素的影响,例如任务量,计算复杂性,CPU性能,多线程开销和GPU性能。因此,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种针对CPU

GPU两级并行计算的自动负载均衡方法,其特征在于,包括:S1:获取硬件性能参数,硬件性能参数为CPU核数;S2:根据CPU核数获取在CPU中创建的线程数;S3:获取并行计算的总任务数与多线程校正参数,并计算单个任务分别在CPU和GPU上执行所需的时间;S4:在总执行时间最短的情况下,根据在CPU中创建的线程数、并行计算的总任务数、多线程校正参数、单个任务在CPU上执行所需的时间以及单个任务在GPU上执行所需的时间,计算分配给CPU的任务数量和分配给GPU的任务数量,其中,分配给CPU的任务数量与分配给GPU的任务数量之和为总任务数。2....

【专利技术属性】
技术研发人员:刘金硕黄朔邓娟刘宁王晨阳唐浩洲
申请(专利权)人:武汉大学
类型:发明
国别省市:

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

1