论文部分内容阅读
离散元方法(Discrete Element Method)是将计算的对象离散成大量相互独立的单元,并定义单元间相互作用的方法。通过离散元的方法可以解决很多现实中的问题,如模拟泥石流、滑坡等地质灾害,对于传统的计算机系统,在解决DEM问题上存在着局限性。尤其是在大规模DEM计算上,近些年发展缓慢。本文是基于GPU实现大规模DEM的并行计算。目前,并行计算是提高算法性能的主要方式,无论是大规模集群系统还是个人电脑,甚至是智能手机,都将性能的提升寄托于并行计算。曾主要用于计算机可视化和图形图像处理的GPU芯片,内部具有大量的并行计算单元,有着天然的并行优势。并行计算在大规模离散元计算方面有着重要的意义。本文的并行计算过程中是基于大规模的颗粒离散元基于GPU平台,通过CUDA编程工具,完成了包括颗粒与三角形边界面碰撞检测和数据更新的并行判断,整个系统的实现是由CPU和GPU来实现的,对于计算前的数据准备和数据的输出都是有CPU来完成的,其中主要的接触判断和力学计算是由GPU来完成。颗粒数量可达到百万级别的,通过与串行系统的比较,计算出加速比,通过颗粒系统的动态显示系统软件对系统计算的结果进行了显示。本文通过多种方法进行对并行计算系统进行了优化,通过使用NVIDIA Profiler对并行计算的三个主要的内核函数进行系统的分析,针对不同结构的函数使用不同的优化方式,在颗粒与颗粒的接触判断核函数中,邻居的搜索是关键,通过对网格法的计算,确定出最优的并行模式下网格划分,优化后的数据结构适用于数据的合并访存,并且对共享存储模式下的访问冲突做出了优化。在力学算法上的优化,减少内部分支,并分别对优化前和优化后的结果进行性能上的分析,在优化比上显示出优化后的整个程序计算性能的稳定性和随着数目的增多优势越明显的特性,进一步证明GPU离散元计算的有效性、稳定性、高效性。