[发明专利]一种CPU+GPU协同计算并行框架在审
申请号: | 201310579257.2 | 申请日: | 2013-11-19 |
公开(公告)号: | CN103617085A | 公开(公告)日: | 2014-03-05 |
发明(设计)人: | 吴庆;张广勇;吴韶华;王娅娟 | 申请(专利权)人: | 浪潮电子信息产业股份有限公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50;G06F9/54 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 250014 山东*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 cpu gpu 协同 计算 并行 框架 | ||
技术领域
本发明涉及计算机高性能计算领域、科学计算领域,具体地说是一种CPU+GPU协同计算并行框架。
背景技术
硬件系统在新技术的推动下进行着快速演进,表现出更好的性能、更低的价格,如传统CPU从单核向多核直至众核发展。随着多核体系结构处理器的普及,应用软件多线程并行处理方式将逐渐成为主流。
另外,GPU除了传统的应用(图形显示,多用于游戏)以外,由于其超强的浮点计算能力,越来越多地应用在数学计算上,并且逐渐开始进入计算的主流。面向GPU编程的高级语言和开发工具也开始大量涌现。
那么,在多核CPU架构基础上扩展GPU架构设备的混合架构计算平台,将越来越多地被应用于密集计算领域,如高性能计算领域。
如何实现CPU+GPU协同计算,并且将CPU+GPU混合架构平台的计算性能发挥到极致,成为软件工程师面临的挑战。
发明内容
本发明就是针对这一挑战,在石油勘探行业所作的创新探索和实践。
本发明实现CPU多核架构处理器+GPU众核架构处理器的协同并行计算,大大提升了软件的计算效能。
本发明提供了一种CPU+GPU协同计算并行框架,实现CPU多核架构处理器+GPU众核架构处理器的协同并行计算。本发明涉及多线程并行计算技术及基于互斥锁实现线程间通信的技术,包括:在单节点内,主线程处理输入参数并完成相应初始化操作,然后创建1+N个计算控制线程,分别控制节点内CPU设备和N个GPU设备,CPU控制线程再根据节点内计算核数创建若干并行计算线程,主线程根据总体计算进度计数变量更新进度条,各控制线程完成各自计算任务后自行退出,主线程等待所有控制线程退出后,完成后续操作,如对多个输出的数据体进行拼接等,主线程退出。
协同计算并行框架,主线程初始化操作包括:扫描节点内GPU计算设备数和型号、节点内CPU计算核数,并为每个GPU设备创建一个GPU属性数据结构对象。
协同计算并行框架,主线程为各控制线程分别创建一个输出数据体控制句柄。
协同计算并行框架,CPU控制线程再创建M=SYSCORE_NUM-N个细粒度并行计算线程,SYSCORE_NUM为启用的系统核数,默认为自动检测的系统核数,N为启动的GPU设备数。
协同计算并行框架,各控制线程分别控制对应的设备进行计算,各控制线程完成一个单位的计算任务就更新一次总体计算进度计数变量的值;
a)CPU控制线程根据启用的节点内计算核数创建若干更细粒度的并行计算线程;CPU端各细粒度并行计算线程采用互斥锁的方式通信,并依此竟争计算任务,实现动态负载均衡;
b)GPU控制线程控制一个GPU计算设备,负责读数据、管理该GPU计算、输出结果数据;
c)各控制线程采用动态负载均衡方式,即CPU控制线程和N个GPU控制线程根据计算能力强弱,通过互斥锁竟争计算任务;
d)各控制线程使用线程化读、写接口,分别输出至一个独立的数据体,每个数据体都对应一个独立的头文件,头文件描述了数据体的基本属性;
e)各控制线程完成各自的计算任务后自行退出。
协同计算并行框架,总体计算进度计数变量为各控制线程共享的变量,且通过互斥锁加以保护。
协同计算并行框架,主线程等待所有控制线程退出后,完成的后续操作包括:对多个输出的数据体进行拼接、销毁控制线程、销毁进度条、关闭数据体控制句柄、输出作业日志等。
协同计算并行框架,对多个输出数据体进行拼接,并没有生成真正的数据体,而只是创建了一个最终输出数据体的头文件,该头文件描述了数据体的名字及基本属性,并指向其包含的多个数据体的头文件。
启用的GPU计算设备数和CPU计算线程数目可根据用户需要手动配置。本发明中,并行框架兼容纯CPU架构平台和CPU+GPU混合架构平台,并行框架内的各CPU/GPU控制线程读数据、计算、写数据操作均完全并行,大大提高了软件的平台适应性、并行效率和整体运行性能。
本发明的有益效果是:本发明实现了CPU多核架构计算设备和GPU众核架构计算设备的协同并行计算,并行框架兼容纯CPU架构平台和CPU+GPU混合架构平台,并行框架内的各CPU/GPU设备控制线程读数据、计算、写数据操作均完全并行,大大提高了软件的平台适应性、并行效率和整体运行性能。
附图说明
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浪潮电子信息产业股份有限公司,未经浪潮电子信息产业股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310579257.2/2.html,转载请声明来源钻瓜专利网。