当前位置:主页 > 科技论文 > 计算机论文 >

异构GPU集群的并行编程模型及实现

发布时间:2018-10-23 19:31
【摘要】:由于超强的计算能力,支持大规模数据级并行程序设计以及高速的访存带宽等特点,GPU集群已经成为现代高性能计算的主流技术和研究热点。但GPU给集群带来了复杂的体系结构特征,不仅在节点层面呈现异构化,节点内也呈现异构化,使得集群的并行计算能力成为多层面、不同类型的特点,包括节点之间,节点内部CPU和GPU之间,GPU内的数据并行,极大地增加了编程和运行部署的复杂性。目前没有现成的编程模型完全应对这种体系结构,主流的异构GPU集群系统大多采用针对GPU的异构计算编程模型与面向分布式内存的消息传递模型(MPI)松散的耦合方式,用户将应用描述成一系列彼此交互的MPI进程,并部署到各个节点中运行,如果MPI进程是一个串行程序,则在节点中的CPU中运行,如果MPI进程包含数据并行处理过程,则在包含GPU的节点中运行,但是这种方式将应用如何划分、划分多少并行进程缺乏依据,难以保证分配给含GPU的节点的子任务是一个能发挥GPU计算能力的数据并行计算过程。同时,MPI+CUDA本身并不是一个有着充分理论依据的计算模型,不具备可分析性。同串行执行不同,并行、分布式执行是一种不确定执行,如何在各种情况下保证程序行为正确特别是不出现诸如死锁、活锁等现象需要编程模型具备可分析性,而这些是MPI+CUDA无法提供的。另外,在充分利用GPU集群多个层面的并行计算能力方面,由于实现异步控制的复杂性,MPI+CUDA的进程之间一般通过发消息实现同步控制,这可能造成大量等待,严重影响性能;而异步控制需要程序员人工实现进程间数据缓冲及复杂的上下文传递,使得编程非常困难。 为了解决上述问题,我们基于DFG设计和实现一种能契合GPU异构集群体系结构的新型编程框架DISPAR。DISPAR编程框架的基本思想是基于数据流模型描述应用,引导用户以数据流为核心将应用分解成一系列以异步方式工作的VNODE,构成数据并行子任务(进程),发挥GPU的并行计算能力。DFG是一种主流的应用于描述数据密集型应用的模型,具有层次化描述能力,因此适合描述复杂的应用,相比其它计算模型,DFG能以最自然的方式显式表达应用中的并行性,并且以数据为核心描述应用,是目前公认的最能够体现应用中数据并行性的计算模型。另外,VNODE的数据驱动控制方式能最大程度实现异步并发运行,减少因同步操作对性能的影响,各个节点异步运行,摒弃全局控制和最小化同步需求。DISPAR编程框架取代了MPI编程模型中的随意、盲目的显式进程划分,自动生成的MPI+CUDA进程与运行平台之间的相关性小,带来可移植性、可扩展性等优势。 本文通过采用扩展语言方法实现DISPAR编程模型,通过简单的两个构件VNODE和PIPE来描述应用程序的系统级结构,成为C语言的一个扩充。DISPAR编程模型异步化子任务运行,对基本操作进行标准化封装,实现异步控制,使得编程非常容易,实现异步控制的上下文、缓冲等有效封装,使得编程容易,应用程序简洁。 为实现这种新型语言,规避了重新设计编译器的复杂性,论文提出了一种源程序至源程序转换方式,即StreamCC预处理器,能有效地将一个DISPAR程序转化成一个符合一定规范的MPI+CUDA程序,为在GPU集群中有效部署和异步运行奠定基础。 实际应用表明,DISPAR编程模型取得良好的结果。
[Abstract]:......
【学位授予单位】:复旦大学
【学位级别】:硕士
【学位授予年份】:2013
【分类号】:TP332

【相似文献】

相关期刊论文 前10条

1 张丹丹;徐磊;徐莹;;基于“魔方”的不同编程模型下科学应用性能比较[J];计算机工程与科学;2009年S1期

2 龚强;;网格编程模型及其地理空间信息网格技术研究综述[J];测绘科学;2011年02期

3 牛W毐,

本文编号:2290260


资料下载
论文发表

本文链接:https://www.wllwen.com/kejilunwen/jisuanjikexuelunwen/2290260.html


Copyright(c)文论论文网All Rights Reserved | 网站地图 |

版权申明:资料由用户5dc25***提供,本站仅收录摘要或目录,作者需要删除请E-mail邮箱bigeng88@qq.com