GPU集群的并行编程通信接口研究

来源 :华中科技大学 | 被引量 : 0次 | 上传用户:lovezjx
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
图形处理器GPU善于处理大规模密集型数据和并行数据,通用并行架构CUDA让GPU在通用计算领域越来越普及。由于GPU集群的高性价比,高性能计算领域中GPU集群的使用越来越普遍,但GPU集群并行编程并没有一个标准的通信模型,绝大多数集群应用采取CUDA+MPI的方法实现,而CUDA和MPI编程都非常困难,需要程序员了解GPU硬件架构和MPI消息传递机制,显式控制内存与显存、节点与节点间的数据传输。因此,对编程人员来说,GPU集群并行编程仍是一个复杂的问题。GPU集群通信接口CUDAGA结合分布式内存上的共享内存编程模型GA与通用并行架构CUDA的特征,采用共享显存方式,通过全局共享地址空间实现节点间GPU-to-GPU的数据通信,并通过内部透明的CPU端临时全局数组和GPU端全局数组来维护数据一致性,保证通信数据的正确性。同时,该接口解决了多进程多GPU环境下GPU设备的初始化问题,并提供GPU集群信息查询接口及图形化监控界面两种方式,帮助用户及时了解设备使用情况。此外,CUDAGA从数据传输和计算内核两方面对GA库中的数组运算进行优化,加速后的函数库可供用户直接使用。CUDAGA为用户提供了一个简单方便的GPU集群并行编程通信接口,在保证通信性能的同时简化编程难度,提高程序员编写GPU集群应用程序的效率。选取并行矩阵乘Cannon算法和Jacobi迭代算法在GPU集群上的代码实现和运行为例,对GPU集群通信接口CUDAGA进行测试。从编程复杂度与通信性能两方面的测试结果可以看出,对于以数组为基本数据结构、节点间通信量大且涉及大量数据访问操作的应用,用CUDAGA编写的代码的运行性能要优于用CUDA+MPI实现的版本,而且代码长度缩短一半以上,提高了程序编写的效率。
其他文献
云计算是下一代IT企业架构,但是云计算的安全问题阻碍了其大规模应用,其中一个主要的挑战是远程公开地对不可信的云存储服务器上的用户数据进行完整性检验。然而由于用户有限的
近年来,微电子技术、传感器技术、无线通信等技术的发展与进步,共同推动了具有多功能、低能耗的无线传感器网络的产生及发展。无线传感器网络是由大量廉价传感器组成的一种无基
问答系统是新一代智能搜索引擎,它允许用户以自然语言提问,并能够向用户返回准确的答案。所以,与传统的搜索引擎相比,问答系统能更好的满足用户的查询要求,更准确地检索出用户所需
miRNA是近几年生物信息学领域的研究热点。它在人类疾病的产生、发展等过程中都起到非常关键的作用。虽然可以通过生物实验的方法挖掘出某些致病miRNA,但是这里面往往会存在两
背包问题不仅具有重要的理论研究价值,而且在实际问题中有着重要的应用,与企业效益密切相关。在经典的背包问题中,物品的价值是事先给定的,与放入的背包无关。但是对于一些实
随着计算机网络的发展,网络协议的重要性日渐突出。协议是通信各方能够正确互联的保证,是各个通信实体间需要遵守的一系列规则。然而,多数协议的文档都是通过自然语言进行书
目前主流的虚拟化技术厂商都实现了虚拟机监控器的内存页共享功能,虚拟机之间内容相同的多个内存页只占用一份实际的机器内存页,这一技术能够降低单个物理机的内存消耗。但是
近几年,由Facebook和Twitter所引领的社交类网站迅速发展,已渗入普通网民的日常生活。社交网络以“六度分离”理论为基础,使得人们能够在除现实世界外不断拓展自己的朋友圈子。
全文检索技术不仅可以实现情报检索的绝大部分功能,而且还能直接根据数据资料的内容进行检索。当今以全文检索为核心技术的搜索引擎已成为网络时代的主流技术之一。全文检索的
近年来机器翻译研究进展显著,但译文的质量仍存在很大的改善空间。如何在统计机器翻译模型中有效融合深层语义知识,如时态、语态信息等进行翻译,是研究热点之一。日语属于黏