论文部分内容阅读
随着各研究领域的技术进步,其应用规模不断增加,对计算平台性能的要求也越来越高。本文研究内容主要在面向多媒体应用和科学计算及工程模拟应用及其核心算法。功耗瓶颈的出现使得以往通过提高处理器主频来提升性能的模式无法延续。在此背景下,多核/众核体系结构作为近期和未来提升处理性能主要发展方向,已成为学术界及产业界的广泛共识。以效能优异且峰值性能卓著的GPU为代表的协处理器不断推动着并行计算研究的发展。与此同时,以CPU-GPU为代表的大规模异构系统也是高性能计算集群重要发展方向之一。虽然,GPU硬件和体系结构不断推陈出新,随着时代需要不断发展,成果显著。但是,GPU编程技术发展相对缓慢,无法像传统CPU一样简单高效,应用程序并行化的效率问题相对突出。本文以特定的应用为对象,研究基于GPU加速器和大规模CPU-GPU异构系统的应用并行化,包括并行算法改进,算法并行化设计与优化,大规模CPU-GPU异构系统上的简单性能预测、静态负载划分和通信开销优化。本文的主要研究工作和创新点如下:1.本文以暗原色先验去雾算法为研究对象,针对原算法部分区域去雾效果差、内存开销大和计算复杂性高的不足,提出了一系列的算法改进。以改进后的算法为串行算法,进行了GPU并行化实现和优化研究。针对算法对大片类大气光区域去雾效果有限的不足,我们提出了类大气光辨识法,通过保留这些区域原色的方法,改善了类大气光区去雾效果;针对算法内存开销大的缺点,我们采用“指导滤波”方法,极大的减少了算法运行时的内存占用过大的问题;针对算法计算量过大的缺点,本文提出了多级分块法和综合评估值新方法,极大减少计算量。针对算法本身和GPU平台的编程特点,进一步优化了基本的并行程序。本文提出了新的积分图并行实现方法和大气光综合评估值法,提高了算法并行度;我们也通过对kernel的组织进行了优化,如kernel的横向合并、纵向合并或两者结合的方法,减少kernel的启动开销,从整体上提高相应模块的并行性能。通过充分利用共享存储器,减少全局存储器访问开销。2.本文基于层级式运动估计算法,提出了并行且扩展性良好的多层分辨率运动估计方法。通过将研究重点放在算法并行度提升上,用低分辨率层图像中搜索候选项作为搜索指导,成功释放相邻LCU之间的数据依赖关系。与此同时,我们采用多个搜索窗口的方式保证了多层分辨率方法的搜索效果。本文展示了多层分辨率方法的详细处理过程,并对其每一步骤计算复杂性和高度的并行性进行了定性定量的分析研究,分析结果表明多层分辨率方法适合众核处理器。最后我们在GPU平台上对多层分辨率方法进行了实现和优化,用以评估其并行性和可扩展性。3.本文面向心脏心电模拟应用,对科学计算领域广泛应用的有限元方法在可扩展异构系统上的性能进行了研究。主要研究了三维非结构四面体网格的有限元方法在多节点CPU+GPU平台上的并行实现与优化相关技术。本文基于可预测的实际性能,提出了一个简单实用的理论模型来预测异构CPU-GPU结点的可获得性能和性能瓶颈,从而为任务划分提供指导;并且采用一系列线程处理和优化方法来优化并行性能,使得CPU的性能得到充分发挥,同时又不影响GPU性能,最终获得了比单纯使用GPU更高的并行性能。本文针对强扩展时的MPI边界数据计算和通信的瓶颈问题,提出了一系列的优化策略。(1)让性能更好GPU参与到MPI边界数据处理中,从而加速MPI边界数据计算,尽早完成边界数据计算启动MPI通信任务;(2)在GPU处理MPI边界域数据时,采用多段化方法来实现计算与数据拷贝的重叠处理,从而尽可能隐藏MPI边界数据拷贝开销;(3)采用多通信线程来加速MPI边界域数据的打包、发送、接收以及向GPU内存的拷贝过程,节省开销;(4)通过管道方式将接收到的远程MPI边界域数据拷贝到GPU,即通过先到先拷贝,边接收边拷贝的方式,实现接收和拷贝的重叠,提高效率。