[发明专利]一种基于OPENCL的异构共同计算均衡方法有效
申请号: | 201510093877.4 | 申请日: | 2015-03-02 |
公开(公告)号: | CN104714850A | 公开(公告)日: | 2015-06-17 |
发明(设计)人: | 邰从越 | 申请(专利权)人: | 心医国际数字医疗系统(大连)有限公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50;G06F9/38 |
代理公司: | 北京科亿知识产权代理事务所(普通合伙) 11350 | 代理人: | 汤东凤;张波涛 |
地址: | 116023 辽宁省大连市大连高新*** | 国省代码: | 辽宁;21 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 opencl 共同 计算 均衡 方法 | ||
技术领域
本发明涉及计算机计算领域,具体涉及一种基于OPENCL的异构共同计算均衡方法。
背景技术
OpenCL(全称Open Computing Language,开放运算语言)是面向异构系统通用目的并行编程的开放式、免费标准,也是一个统一的编程环境,便于软件开发人员为高性能计算服务器、桌面计算系统、手持设备编写高效轻便的代码,而且广泛适用于多核心处理器(CPU)、图形处理器(GPU)、Cell类型架构以及数字信号处理器(DSP)等其他并行处理器。
近年来,基于CPU+GPU的混合异构计算系统开始逐渐成为国内外高性能计算领域的热点研究方向。在实际应用中,许多基于CPU+GPU的混合异构计算机系统表现出了良好的性能。但是,由于各种历史和现实原因的制约,异构计算仍然面临着诸多方面的问题,其中最突出的问题是程序开发困难,尤其是扩展到集群规模级别时这个问题更为突出,主要表现在扩展性、负载均衡等方面。
发明内容
本发明为解决上述问题,提供了一种基于OPENCL的异构共同计算均衡方法,该方法应用于CPU+GPU混合异构共同计算系统中,所述CPU+GPU混合异构共同计算系统划分成三个并行层次:节点间并行、节点内CPU与GPU异构并行、设备内并行,所述设备是指CPU或GPU;CPU+GPU异构共同计算模式为:节点间分布式,节点内异构式,设备内共享式;所述节点间分布式是指节点间采用了分布式的计算方式,所述节点内异构式是指每个节点内部包含一个多核CPU、一个或多个GPU,节点内部采用主从式编程模型,即每个GPU需要由CPU进程或线程调用;所述设备内并行是指每个节点内的所有多核CPU采用了共享存储模型,这些CPU核并行计算,GPU设备内有自己独立的DRAM存储,GPU设备也是共享存储模型,在GPU上采用OpenCL编程控制GPU众核的并行计算;在该系统中,由一个CPU进程/线程负责复杂逻辑和事务处理,其它CPU进程/线程负责小部分并行计算,GPU负责大部分并行计算;
在该方法中,节点内和节点间均采用MPI进程,设计负载均衡时,只需做到进程间或设备之间的负载均衡和CPU设备内OpenMP线程负载均衡、GPU设备内CUDA线程负载均衡即可;对于设备内,GPU设备上只要保证同一warp内的线程负载均衡即可;
在该方法中,采用动态负载均衡方式,即在任务执行过程中,根据各GPU的运行情况重新调整负载分配,动态分配任务;对计算任务进行划分时按照输入数据划分,对于矩阵A×B=C问题而言,按输入数据划分可以分解为
矩阵A与矩阵B分别按行与列划分为若干数据块,每个数据块的计算为一个任务,每次传输矩阵A与矩阵B的一个数据块至GPU,计算完成之后将数据传回,然后分配下一个任务。
优选地,对输入数据划分时,使任务块的计算时间与其它GPU的一次数据传输的时间相等。
可替代地,对计算任务进行划分时,以“按照输出数据划分”替代“按照输入数据划分”,让不同的GPU做不同位置的结果计算,计算结果完全独立,没有依赖性,对于矩阵A×B=C问题而言,按输出数据划分可以分解为
将矩阵C分块,将不同块的位置传递给各GPU,当GPU计算完当前块之后可立即分配下一个任务,这样可以做到负载均衡。
可替代地,采用输入和输出同时划分的方式进行数据划分。
优选地,CPU+GPU混合异构共同计算系统采用主从式MPI通信机制,在节点0上多起一个进程作为主进程,控制其它所有进程。
优选地,每个节点上启动3个计算进程,其中两个控制GPU设备,一个控制其余所有CPU核的并行。
优选地,把节点内的所有多核CPU看作一个设备,采用MPI进程或OpenMP线程、pThread线程控制这些CPU核的并行计算。
优选地,CPU+GPU混合异构共同计算系统中各个节点之间通过网络进行连接,节点间采用了分布式的计算方式,采用MPI消息通信的并行编程语言。
可替代地,CPU+GPU混合异构共同计算系统中所述CPU只负责复杂逻辑和事务处理,GPU进行大规模并行计算。
可替代地,采用静态负载均衡方式,即在任务执行之前,按各GPU的计算能力比例将任务均匀划分到各GPU上。
本发明相较于现有技术较好地实现了CPU+GPU的混合异构计算机系统的负载均衡。
附图说明
图1为CPU+GPU异构共同计算集群架构;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于心医国际数字医疗系统(大连)有限公司;,未经心医国际数字医疗系统(大连)有限公司;许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510093877.4/2.html,转载请声明来源钻瓜专利网。
- 上一篇:风扇监测系统
- 下一篇:一种数据访问处理方法及装置