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

基于OpenMP的近场动力学模拟并行实现

发布时间:2021-01-02 05:11
  针对近场动力学模拟计算量大、计算效率低等问题,研究基于OpenMP的近场动力学(peridynamic,PD)并行化方法,即在多核处理器计算机上利用OpenMP技术对PD程序中耗时占比大的构建邻接节点域、计算物质点表面修正系数、时间积分3个模块进行并行化处理,实现PD模拟的多线程并行化。通过对二维各向同性板的2种键型PD模型(准静态模拟PD模型和动态裂纹扩展模拟PD模型)测试,得出不同线程数下并行计算时间。结果表明,采用OpenMP并行技术可有效提高近场动力学模拟运算中的计算效率,相比于串行计算,并行计算获得了2.0~4.0倍的加速比。 

【文章来源】:河南理工大学学报(自然科学版). 2020年05期 北大核心

【文章页数】:9 页

【部分图文】:

基于OpenMP的近场动力学模拟并行实现


PD程序结构图

过程图,程序,过程,共享内存


OpenMP是一种面向共享内存以及分布式共享内存的、多处理器多线程并行语言。其编程模型是以线程为基础,通过编译制导语句在原来串行程序的基础上显示进行并行化处理[10]。对原有串行程序的改动较小,具有操作简便、开发效率高等优点。OpenMP采用的执行模式是串行→并行→串行→并行→串行……,如图2所示。这种执行模式的核心在于并行区域中线程的派生/缩并(Fork/Join)[11-12]。3 基于OpenMP的PD并行算法

示意图,并行化,线程,模块


整个Neighbor模块将由两个大的循环体构成。第一个循环体是二重嵌套循环,主要完成以下过程:搜索每个物质点的邻域内节点,构建邻接节点域;确定每个物质点的邻域内节点个数并存放到数组2中。由于第一个循环体没有循环依赖,每个物质点可以独立运行,因而可以进行并行化,并行化主要过程如图3所示。第二个循环体构建了上述的数组1和数组3,由于数组1和数组3中数据的存放需要按照物质点排列顺序,即循环指标的先后次序,排队执行,因而无法进行并行化,只能依照原有的串行方式执行。好在第二个循环体的运行时间相比第一个循环体要小得多,一般只有零点几秒,所以并没有影响到整个Neighbor模块的并行优化效果,这一模块的部分并行代码段如图4所示。private()括号内为声明的私有变量列表,需填上循环体内的私有变量(特别是进行写操作的变量),确保每个物质点在程序执行过程中互不干扰,避免出现数据竞争现象。并行语句for指令后不带schedule子句,系统会默认采用静态调度方式(调度过程见图5),即如果将循环迭代的总次数设为n,并行区域内线程总数为p,那么分配给每个线程约n/p次连续的迭代[13]。因此不同处理器在对共享数组(例如数组2)进行写操作时,操作的是数组中相隔比较远的元素,从而避免了伪共享[13]的问题。图4 并行代码段1(构建物质点邻接节点域)

【参考文献】:
期刊论文
[1]基于键型近场动力学的含裂纹板损伤模拟[J]. 石春香,王远洋.  应用技术学报. 2018(02)
[2]近场动力学研究进展[J]. 乔丕忠,张勇,张恒,张律文.  力学季刊. 2017(01)
[3]基于GPU的近场动力学模拟的并行化方法[J]. 刘肃肃,胡祎乐,余音.  上海交通大学学报. 2016(09)
[4]复材非线性及渐进损伤的态型近场动力学模拟[J]. 刘肃肃,余音.  浙江大学学报(工学版). 2016(05)
[5]基于OpenMP的分子动力学并行算法的性能分析与优化[J]. 白明泽,程丽,豆育升,孙世新.  计算机应用. 2012(01)
[6]多核并行技术在分子动力学模拟中的应用[J]. 刘青昆,滕人达,刘凤,宫利东,张建强.  计算机工程与设计. 2011(10)
[7]近场动力学方法及其应用[J]. 黄丹,章青,乔丕忠,沈峰.  力学进展. 2010(04)



本文编号:2952720

资料下载
论文发表

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


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

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