一种基于任务调度的分布式GPU计算机系统技术方案

技术编号:8323281 阅读:329 留言:0更新日期:2013-02-14 00:22
本发明专利技术公开了一种基于任务调度的分布式GPU计算机系统,系统内的GPU处理单元来自于网络,在与中央处理单元建立通信之前,可能正处于运算状态,利用任务调度模块根据计算机系统内的各GPU处理单元的当前处理能力对任务块进行分配,根据各GPU处理单元的性能分配工作,保证对资源的高效率利用;同时,实时计算GPU处理单元的利用率,以便及时将系统内多余的GPU处理单元转入待机状态或者在系统内GPU处理单元处理能力不足时,激活GPU处理单元以满足系统需要,也可以保证充分利用GPU处理单元的资源。本发明专利技术所述的基于任务分解与调度的分布式GPU计算机系统,解决现有传统的CPU计算存在的计算能力不足的问题,大大提高计算能力。系统设计简单,具有良好的扩展性。

【技术实现步骤摘要】

本专利技术涉及计算机领域,尤其涉及一种基于任务调度的分布式GPU计算机系统
技术介绍
目前,单核CPU的发展已经遇到了瓶颈,传统CPU架构也不利于多核心效率的提高。而图形处理器(Graphics Processing Unit,GPU)因为用途不同,其架构从一开始就是专为大量并行运算核心优化设计的,所以同时期GPU效能与核心数量保持了成正比的增长势头。另外,图形处理器(GPU)和CPU —样普遍存在于计算机系统中,随着GPU计算能力的不断提高和通用技术应用的快速发展,如何利用互联网上的计算机系统中的GPU计算资源也成为另一个需要解决的问题。早期的计算机系统都是进行独立计算工作的,随着网络的出现,特别是基于TCP/IP协议的互联网的出现,将这些连接到互联网中的独立计算机协同起来共同完成应用计算 任务和问题,从而形成了分布式计算。通过分布式计算,用户不必投资于一台功能强大的计算机,而是使用多台功能一般,价格便宜的计算机完成相同的任务。如今,分布式计算已经发展成为计算机领域中的一门高性能计算科学,它研究如何把一个需要非常巨大的计算能力才能解决的问题分成许多小的部分然后把这些部分分配给许多计算机进行处理,最后把这些计算结果综合起来得到最终的结果。最初计算机图形处理器(GPU)主要用于图像处理和输出显示。近年来,GPU得到极大的发展,并且开始应用于图形学之外的通用计算领域。GPU用于通用计算的研究也开始成为热点。特别是2006年推出的新的GPU采用了统一渲染架构(Unified Shader, US)以取代传统的分离式渲染架构。在统一渲染架构中,PS单元和VS单元都被通用的US单元所取。这种US单元既可以处理顶点数据,又可以处理像素数据。因此,GPU可以根据实际处理需求进行灵活的分配,这样便有效地解决了传统分离式架构中VS和PS工作量不均的问题,从而提高了资源利用率。基于该架构的GPU产品包括NVIDIA的GeForce 8000系列和ATI的Radeon X2000系列。此外,NVIDIA还推出专业的高性能计算GPU产品,包括Tesla8 系列 GPU (如 Tesla C870/D870/S870)、和 Tesla 10 系列 GPU (如 Tesla C1060/S1070)和Tesla 20 系列 GPU (如 TeslaC2050/C2070/C2075)。其中,单核 Tesla C870 GPU 拥有 128个流处理单元,单精度浮点计算性能可达350 GFLOPS ;第二代的单核Tesla C1060 GPU拥有240个流处理单元,单精度浮点计算性能可达933 GFLOPS ;而基于新一代Fermi CUDA架构的Tesla C2075 GPU更是拥有448个流处理单元,单精度浮点计算性能可达1030 GFLOPS,双精度浮点计算性能可达515 GFLOPS0上述基于GPU的计算机集群,通过专用网络设备和通信接口互联实现集群计算,但是其存在诸多问题,如系统设计复杂,扩展性差,很难做到动态加载计算节点。
技术实现思路
本专利技术设计开发了一种基于任务调度的分布式GPU计算机系统。系统内的GPU处理单元来自于网络,在与中央处理单元建立通信之前,可能正处于运算状态,利用任务调度模块根据计算机系统内的各GPU处理单元的当前处理能力对任务块进行分配,根据各GPU处理单元的性能分配工作,保证对资源的高效率利用;同时,实时计算GPU处理单元的利用率,以便及时将系统内多余的GPU处理单元转入待机状态或者在系统内GPU处理单元处理能力不足时,激活GPU处理单元以满足系统需要,也可以保证充分利用GPU处理单元的资源。本专利技术所述的基于任务调度的分布式GPU计算机系统,利用GPU的大规模并行计算能力,解决现有传统的CPU计算存在的计算能力不足的问题,大大提高计算能力。系统设计简单,具有良好的扩展性。本专利技术提供的技术方案为一种基于任务调度的分布式GPU计算机系统,包括GPU处理单元,所述GPU处理单元用于处理任务块; 中央处理单元,所述GPU处理单元与所述中央处理单元通信,其包括任务分解模块和任务调度模块,所述中央处理单元监测当前与所述中央处理单元通信的GPU处理单元的个数N以及N个GPU处理单元中的各GPU处理单元的当前处理能力Wi,并计算各GPU处理单元的当前处理能力在N个GPU处理单元的当前处理能力的总和的权重i,其中i =Wi/ Σ Wi,所述任务分解模块将当前任务均分为M个任务块,所述任务调度模块依据各GPU处理单元的当前处理能力在所有GPU处理单元的当前处理能力的总和的权重i,向各GPU处理单元分配η个任务块,其中n = i XM,所述任务调度模块向各中央处理单元分配任务块时,所述中央处理单元建立有一任务队列响应程序,其中所述任务队列响应程序中包括有一任务队列文件,且所述任务队列文件中记录有η个任务块以及处理所述η个任务块的GPU处理单元,当所述GPU处理单元完成对一个任务块的处理,所述GPU处理单元首先将处理完成的一个任务块的任务数据发送到所述中央处理单元,并响应所述任务队列响应程序,所述中央处理单元将已经被响应的任务块从所述任务队列文件中删除,并且计算所述N个GPU处理单元中各GPU处理单元的利用率,向所述N个GPU处理单元中利用率低于30 %的GPU处理单元发出待机命令,则由所述任务调度模块将其当前处理的任务块迁移至剩余GPU处理单元中利用率最低的GPU处理单元,所述中央处理单元修改所述任务队列文件,当位于所述任务队列文件中的GPU处理单元的利用率均高于80%时,所述中央处理单元向当前处于待机状态的GPU处理单元发出激活命令,由所述任务调度模块将当前利用率最高的GPU处理单元的当前处理的任务块迁移至被激活的GPU处理单元,所述中央处理单元修改所述任务队列文件,直至所述任务队列文件中的GPU处理单元的平均利用率达到70%。优选的是,所述的基于任务调度的分布式GPU计算机系统中,所述中央处理单元设置在一管理节点服务器内;所述N个GPU处理单元分别设置在N个GPU计算节点客户端内;其中所述管理节点服务器与所述N个GPU计算节点客户端通信连接。优选的是,所述的基于任务调度的分布式GPU计算机系统中,所述通信连接为通过网络连接。优选的是,所述的基于任务调度的分布式GPU计算机系统中,所述中央处理单元还包括有GPU计算节点认证模块,所述GPU处理单元也包括有GPU计算节点登录模块,所述GPU计算节点登录模块向所述GPU计算节点认证模块提出登录请求,以实现所述GPU处理单元与所述中央处理单元的通信。优选的是,所述的基于任务调度的分布式GPU计算机系统中,所述N个GPU处理单元中各GPU处理单元依据其被所述任务调度模块所分配的任务块建立本地任务队列文件,并依据本地任务队列文件顺序处理任务块。本专利技术所述的基于任务调度的分布式GPU计算机系统,系统内的GPU处理单元来自于网络,在与中央处理单元建立通信之前,可能正处于运算状态,利用任务调度模块根据计算机系统内的各GPU处理单元的当前处理能力对任务块进行分配,根据各GPU处理单元的性能分配工作,保证对资源的高效率利用;同时,实时计算GPU处理单元的利用率,以便及时将系统内多本文档来自技高网
...

【技术保护点】
一种基于任务调度的分布式GPU计算机系统,其特征在于,包括:GPU处理单元,所述GPU处理单元用于处理任务块;中央处理单元,所述GPU处理单元与所述中央处理单元通信,其包括任务分解模块和任务调度模块,所述中央处理单元监测当前与所述中央处理单元通信的GPU处理单元的个数N以及N个GPU处理单元中的各GPU处理单元的当前处理能力Wi,并计算各GPU处理单元的当前处理能力在N个GPU处理单元的当前处理能力的总和的权重i,其中i=Wi/∑Wi,所述任务分解模块将当前任务均分为M个任务块,所述任务调度模块依据各GPU处理单元的当前处理能力在所有GPU处理单元的当前处理能力的总和的权重i,向各GPU处理单元分配n个任务块,其中n=i×M,所述任务调度模块向各中央处理单元分配任务块时,所述中央处理单元建立有一任务队列响应程序,其中所述任务队列响应程序中包括有一任务队列文件,且所述任务队列文件中记录有n个任务块以及处理所述n个任务块的GPU处理单元,当所述GPU处理单元完成对一个任务块的处理,所述GPU处理单元首先将处理完成的一个任务块的任务数据发送到所述中央处理单元,并响应所述任务队列响应程序,所述中央处理单元将已经被响应的任务块从所述任务队列文件中删除,并且计算所述N个GPU处理单元中各GPU处理单元的利用率,向所述N个GPU处理单元中利用率低于30%的GPU处理单元发出待机命令,则由所述任务调度模块将其当前处理的任务块迁移至剩余GPU处理单元中利用率最低的GPU处理单元,所述中央处理单元修改所述任务队列文件,当位于所述任务队列文件中的GPU处理单元的利用率均高于80%时,所述中央处理单元向当前处于待机状态的GPU处理单元发出激活命令,由所述任务调度模块将当前利用率最高的GPU处理单元的当前处理的任务块迁移至被激活的GPU处理单元,所述中央处理单元修改所述任务队列文件,直至所述任务队列文件中的GPU处理单元的平均利用率达到70%。...

【技术特征摘要】
1.一种基于任务调度的分布式GPU计算机系统,其特征在于,包括 GPU处理单元,所述GPU处理单元用于处理任务块; 中央处理单元,所述GPU处理单元与所述中央处理单元通信,其包括任务分解模块和任务调度模块,所述中央处理单元监测当前与所述中央处理单元通信的GPU处理单元的个数N以及N个GPU处理单元中的各GPU处理单元的当前处理能力Wi,并计算各GPU处理单元的当前处理能力在N个GPU处理单元的当前处理能力的总和的权重i,其中i =Wi/ Σ Wi,所述任务分解模块将当前任务均分为M个任务块,所述任务调度模块依据各GPU处理单元的当前处理能力在所有GPU处理单元的当前处理能力的总和的权重i,向各GPU处理单元分配η个任务块,其中n = i XM, 所述任务调度模块向各中央处理单元分配任务块时,所述中央处理单元建立有一任务队列响应程序,其中所述任务队列响应程序中包括有一任务队列文件,且所述任务队列文件中记录有η个任务块以及处理所述η个任务块的GPU处理单元,当所述GPU处理单元完成对一个任务块的处理,所述GPU处理单元首先将处理完成的一个任务块的任务数据发送到所述中央处理单元,并响应所述任务队列响应程序,所述中央处理单元将已经被响应的任务块从所述任务队列文件中删除,并且计算所述N个GPU处理单元中各GPU处理单元的利用率,向所述N个GPU处理单元中利用率低于30 %的GPU处理单元发出待机命令,则由所述任务调度模块将其当前处理的任务...

【专利技术属性】
技术研发人员:谢小轩乐德广胡永禄
申请(专利权)人:江苏九章计算机科技有限公司
类型:发明
国别省市:

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

1