一种实现CPU和GPU负载均衡的方法及系统技术方案

技术编号:10534710 阅读:216 留言:0更新日期:2014-10-15 13:35
本申请公开了一种实现CPU和GPU负载均衡的方法及系统,包括:获取系统当前配置的计算设备信息、物理内存及其他系统资源相关信息;根据获取的计算设备信息、物理内存及其他系统资源相关信息,确定启动的计算设备的种类及数量;根据启动的计算设备的种类及数量,创建相应的计算设备的控制线程;以实现各计算设备独立、并行运行;计算设备包括:中央处理器(CPU),和/或图形处理器(GPU)。本发明专利技术通过设备属性信息的数据结构来记录和管理系统配置的计算设备信息及物理内存等资源相关信息,在确定启动计算设备的种类和数量后,创建相应的控制线程,实现了CPU与GPU协同并行计算;另外,通过各计算设备相对于CPU的加速比分配任务负载,实现了CPU和GPU的负载均衡。

【技术实现步骤摘要】
【专利摘要】本申请公开了一种实现CPU和GPU负载均衡的方法及系统,包括:获取系统当前配置的计算设备信息、物理内存及其他系统资源相关信息;根据获取的计算设备信息、物理内存及其他系统资源相关信息,确定启动的计算设备的种类及数量;根据启动的计算设备的种类及数量,创建相应的计算设备的控制线程;以实现各计算设备独立、并行运行;计算设备包括:中央处理器(CPU),和/或图形处理器(GPU)。本专利技术通过设备属性信息的数据结构来记录和管理系统配置的计算设备信息及物理内存等资源相关信息,在确定启动计算设备的种类和数量后,创建相应的控制线程,实现了CPU与GPU协同并行计算;另外,通过各计算设备相对于CPU的加速比分配任务负载,实现了CPU和GPU的负载均衡。【专利说明】-种实现CPU和GPU负载均衡的方法及系统
本申请涉及计算机领域,尤指一种实现中央处理器(CPU)和图形处理器(GPU)负 载均衡的方法及系统。
技术介绍
硬件系统在新技术的推动下进行着快速演进,表现出更好的性能、更低的价格。 CPU和GPU在硬件系统的演进过程中扮演着重要的角色。CPU从单核不断的向多核直至众 核发展,并随着多核体系结构处理器的普及,应用软件多线程的并行处理方法得到了重视。 GPU除了传统的应用(图形显示,多用于游戏)以外,由于其超强的浮点计算能力,越来越 多地应用在数学计算上,并且逐步成为数学计算的主流。面向GPU编程的高级语言和开发 工具也开始大量涌现。GPU作为CPU的协处理器,用于辅助CPU处理高并行度、高密度的计 算任务,作为众核处理器,GPU的单芯片上集成数百甚至数千处理核心,其单成本计算能力 (GFL0PS/$)、单功耗计算能力(GFL0PS/W)与传统的CPU架构相比,具有巨大的优势。因此, 在既追求计算能力,又追求计算效率的高性能计算领域,近年来GPU得到越来越广泛的应 用,并且成为高性能计算重要的发展趋势。 然而,多核、众核的方案,只是让处理器获得硬件性能上的提升,应用软件要借此 获得性能提升,必须进行革命性的改进,才能使多核/众核完全发挥效力。这一重大的软硬 件一体化的技术变革,就是并行计算。在高性能并行计算领域,GPU常见的应用模式是在传 统的多核CPU架构基础上扩展GPU架构处理器,组成CPU与GPU混合的架构平台;基于该架 构平台设计相应的软件解决方案,使CPU与GPU能够有效的进行协同并行计算。在CPU与 协同并行计算的解决方案设计过程中,涉及到一个主要的方面是CPU与GPU的负载均衡 问题,这关系到能否将CPU与GPU混合架构平台的计算性能发挥到极致。 目前,在CPU与GPU混合架构平台上,CPU与GPU协同并行计算常见的负载均衡方 式有完全动态负载均衡和完全静态负载均衡。其中,动态负载均衡,是指各计算设备根据自 身实际计算能力,采用"能者多劳"的策略,实时、动态、自主的任务负载分配方式,动态负载 均衡灵活高效,但是对算法要求严格,要求各计算任务彼此完全独立无依赖,从而可被并行 处理;静态负载均衡,是指各计算设备根据预先设定的、固定不变的任务负载分配比例分配 计算任务,静态负载均衡实现简单,但缺乏灵活性和适应性。这两种负载均衡方式各有局限 性,并不适用所有场合,例如,各基本计算任务的输入和预处理有重叠和冗余的高性能并行 计算场合,完全动态负载均衡会导致大量的冗余输入和预处理,造成引入的额外开销过大, 从而整体效率不佳;而完全静态负载均衡,能最大限度地避免输入和预处理的冗余,但却无 法根据实际运行情况,实时动态地调整计算任务分配比例,严重缺乏灵活性和适应性,使用 效果也不好。 综上,完全动态负载均衡的算法局限性,和静态负载均衡的缺乏灵活性和适应性, 影响了 CPU与GPU协同并行计算的性能的发挥。
技术实现思路
为了解决上述问题,本专利技术提供一种实现CPU和GPU负载均衡的方法及系统,实现 CPU与GPU协同并行计算。 为了达到本专利技术的目的,本申请提供一种实现CPU和GPU负载均衡的方法;包括: 获取系统当前配置的计算设备信息、物理内存及其他资源相关信息; 根据获取的计算设备信息、物理内存及其他资源相关信息,确定启动的计算设备 的种类及数量; 根据启动的计算设备的种类及数量,创建相应的计算设备的控制线程,以实现各 计算设备独立、并行运行; 所述计算设备包括:中央处理器CPU,和/或图形处理器GPU。 进一步地,获取当前系统配置的计算设备信息、物理内存及其他资源相关信息具 体包括:按照创建的数据结构对象获取当前系统配置的计算设备信息、物理内存及其他资 源相关信息。 进一步地,该方法之前还包括: 对主线程的输入参数、中间数据内存空间、输出数据内存空间及其他作业任务相 关参数进行初始化后,检测系统的计算设备和物理内存资源,根据检测的系统的计算设备 和物理内存资源创建相关的数据结构对象并进行初始化。 进一步地,计算设备信息、物理内存及其他资源相关信息至少包括: CPU硬件核数及逻辑核数,以及判别CPU是否开启了超线程, 和GPU硬件设备数、及硬件设备类型及相关参数, 和系统内物理内存总量、实时空闲内存总量,以提供给控制单元确定单次处理的 作业的规模,即作业分块的大小,以及缓冲区的数量及大小。 进一步地,根据启动的计算设备的种类及数量,创建相应的计算设备的控制线程 具体包括: 当所述启动的计算设备只包含GPU时,根据启动的GPU数量,为各启动的GPU创建 相应个数的独立的控制线程; 当所述启动的计算设备包含有CPU与GPU时,为所有启动的CPU创建一个控制线 程,为各启动的GPU创建相应的独立的控制线程。 进一步地,创建的各启动的GPU相应的控制线程记录有所属GPU的属性信息,该 方法还包括:根据记录的所属GPU的属性信息,动态配置GPU内核函数参数,以适应不同的 GPU型号和控制GPU的工作性能; GPU属性信息包括:设备类型、设备ID号及计算设备的相关属性信息。 进一步地,当启动的计算设备包含有CPU时,该方法还包括: 在为所有启动的CPU创建的一个控制线程中创建与CPU个数对应的并行计算的子 线程。 进一步地,与CPU个数对应的并行计算的子线程采用互斥锁的方式通信,并以此 竞争计算任务。 进一步地,该方法还包括:对创建的所述各控制线程分别进行相同的作业测试,获 取各所述启动的计算设备完成作业测试的时间,以计算各启动的计算设备相对于CPU的加 速比; 根据各启动的计算设备相对与CPU的加速比静态的分配任务负载。 进一步地,该方法还包括:获取所述系统的作业任务信息,根据作业任务信息对作 业任务进行划分,以调整各启动的计算设备的任务负载。 进一步地,作业任务信息包括:作业大小、作业总时间、单位作业平均时间、相对性 能加速比指数。 另一方面,本申请还提供一种实现CPU和GPU负载均衡的系统,包括,获取单元、确 定单元、线程创建单元和若干计算设备;其中, 获取单元,用于获取系统当前配置的计算设备信息、物理内存及其他资源相关信 息; 确定单元,用于根据获本文档来自技高网
...
一种实现CPU和GPU负载均衡的方法及系统

【技术保护点】
一种实现CPU和GPU负载均衡的方法,其特征在于,获取系统当前配置的计算设备信息、物理内存及其他资源相关信息;根据获取的计算设备信息、物理内存及其他资源相关信息,确定启动的计算设备的种类及数量;根据启动的计算设备的种类及数量,创建相应的计算设备的控制线程,以实现各计算设备独立、并行运行;所述计算设备包括:中央处理器CPU,和/或图形处理器GPU。

【技术特征摘要】

【专利技术属性】
技术研发人员:吴庆吴韶华张广勇王娅娟
申请(专利权)人:浪潮北京电子信息产业有限公司
类型:发明
国别省市:北京;11

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

1