基于并行技术的离散元法仿真软件研究

基于并行技术的离散元法仿真软件研究

论文摘要

自然界中存在着大量的颗粒状或者可以抽象为颗粒的物体,这些物体之间相互作用的现象在工农业生产中非常普遍。本项目组在研究这些颗粒的相互作用基础之上,加入机械部件,根据离散元法的基本理论研究颗粒与机械之间的相互作用情况。例如农业生产中的玉米、大豆等的播种过程,肥料的机械化施用过程,药品的制作包装过程,甚至车轮与土壤颗粒的相互作用等,都可以采用离散元法在计算机上进行仿真。通过计算机进行仿真,我们能够得到相关的力学数据,机械设计者就可以根据这些数据辅助进行机械设计的优化。根据离散元法的基本理论,本项目组自主开发了用于离散元法仿真的三维仿真软件TDEM,取得了很好的仿真效果,并在实际生产中已经有了一些应用。但是在实际应用过程中发现,要取得比较好的仿真效果,往往需要非常大的计算量,过去的程序往往需要几天甚至几周的时间才能得到完整的仿真结果,因此,迫切需要提高仿真软件的计算速度。另一方面,传统的单核处理器已经渐渐淡出了人们的视线,多核处理器已经成为主流。但是传统的串行程序并不能应用多核处理器所带来的性能提升,需要将传统的程序针对多核处理器进行并行优化才能充分利用多核处理器的性能,以提高计算速度。同时,主流的高性能计算依然是在分布式的环境下进行的,因此,对于大规模的仿真计算,还需要探索离散元法仿真计算的分布式算法来进一步提高现有仿真计算的规模和速度。同时,针对现在分布式环境下出现多核处理器节点的新情况,也需要对并行算法进行重新考虑,使得算法能够更加适合在由多核处理器组成的集群上运行,以达到更好的运行效率本文的主要工作就是针对项目组原有的离散元法仿真软件进行优化,完善了现有的离散元法仿真软件TDEM,并使仿真算法并行化,针对多核处理器编码实现了适合在多核处理器上运行的并行算法,使其能够充分利用多核处理器的计算能力,同时还对多核并行算法进行了一些初步的任务负载均衡方法探索,制定了本软件的并行任务调度方式。为了进一步提高离散元法仿真计算的规模和速度,本文在原有软件的基础上还探索了可以应用于集群系统上的分布式并行算法,采用空间分解法进行分布式离散元法仿真计算。论文首先介绍了离散元法的基本原理及计算过程,介绍了一些提高离散元法计算速度的方法,并介绍了本软件在进行仿真计算时所采用的求解方法。之后介绍了多核处理器和分布式环境,以及适合多核并行的OpenMP标准和适合分布式并行的MPI标准,针对多核处理器和分布式集群系统不同的特点,设计编写了不同的算法,并将两种算法在SMP集群系统上进行了融合,在每个SMP类型的多核节点上采用多核算法完成计算所分配的任务,整个SMP集群系统又可以采用适合分布式环境的算法进行计算。普通用户可以使用多核版本的软件进行计算,该版本无需额外的要求,用户只需要像使用普通软件一样使用本软件就可以在配备多核处理器的普通计算机上进行多核并行的离散元法仿真计算;而专业的用户可以考虑使用分布式算法或者融合算法进行更大规模的仿真计算。最后,对并行之后的软件进行了初步的测试工作,对软件的并发性、负载均衡、并行性能进行了测试。经过实际测试,并行化之后的软件极大的提高了仿真计算时的速度和规模,具有很好的并行性能,并且能够随着现代多核处理器的发展提高软件自身的计算速度,这对于软件的实际应用具有非常重要的意义。并行之后大大缩短了仿真计算所需要的时间,提高了机械设计的效率,为提高社会生产力提供了有力的帮助。

论文目录

  • 摘要
  • Abstract
  • 第1章 绪论
  • 1.1 研究背景
  • 1.2 国内外研究现状
  • 1.2.1 现有离散元软件
  • 1.2.2 离散元法的并行化方法
  • 1.3 本文的主要工作
  • 第2章 串行离散元法仿真计算
  • 2.1 引言
  • 2.2 离散元法
  • 2.2.1 离散元法简介
  • 2.2.2 离散元法的数值求解方法
  • 2.3 串行离散元法计算方法
  • 2.3.1 离散元法仿真计算基本流程
  • 2.3.2 串行计算时提高效率的方法
  • 2.4 本章小结
  • 第3章 多核架构下的离散元法并行算法
  • 3.1 引言
  • 3.2 多核处理器
  • 3.2.1 多核架构
  • 3.2.2 多核计算
  • 3.3 OpenMP
  • 3.3.1 OpenMP简介
  • 3.3.2 Visual C++ 6.0中使用OpenMP
  • 3.4 多核并行算法
  • 3.4.1 任务分解
  • 3.4.2 任务调度
  • 3.5 本章小结
  • 第4章 分布式离散元法并行算法
  • 4.1 引言
  • 4.2 基于集群的分布式并行计算
  • 4.2.1 多核系统与分布式系统区别
  • 4.2.2 集群计算
  • 4.3 MPI
  • 4.3.1 MPI简介
  • 4.3.2 Windows下MPI并行环境搭建
  • 4.3.3 Visual C++ 6.0中使用MPI
  • 4.4 分布式并行算法
  • 4.4.1 空间分解法
  • 4.4.2 颗粒生成
  • 4.4.3 仿真计算
  • 4.5 OpenMP与MPI混合编程模型并行计算
  • 4.6 本章小结
  • 第5章 软件的需求分析、设计与测试
  • 5.1 引言
  • 5.2 软件的需求
  • 5.2.1 系统的功能需求
  • 5.2.2 系统的性能需求
  • 5.2.3 系统约束
  • 5.3 软件的总体设计
  • 5.3.1 系统的数据模型
  • 5.3.2 系统的功能模型
  • 5.3.3 系统的行为模型
  • 5.4 集成测试
  • 5.4.1 并发性测试
  • 5.4.2 负载均衡测试
  • 5.4.3 并行效率测试
  • 5.5 本章小结
  • 第6章 总结和展望
  • 6.1 全文总结
  • 6.2 后续工作展望
  • 参考文献
  • 作者简介及在学期间所取得的科研成果
  • 致谢
  • 相关论文文献

    标签:;  ;  ;  ;  ;  

    基于并行技术的离散元法仿真软件研究
    下载Doc文档

    猜你喜欢