0、引言
随着多核技术的不断发展,并行方法已经成为一种处理较大规模问题的手段,同时在许多领域取得了成功地应用。目前,并行算法的实现主要基于两种标准:
MPI(Message Passing Interface)是一种基于消息传递并行编程模型的工业标准,主要用于分布存储体系结构的现实,是已被证实了的理想的程序设计模型;OpenMP标准,主要用于共享存储体系结构的并行编程,可实现在SMP 集群系统内多处理器的多线程并行计算。
OpenMP是一个应用程序接口,通过规范一系列的编程制导、运行库函数和环境变量来说明共享存储体系结构的并行机制,通常由于其较低的开销和相对较简单的编程而受到人们广泛的关注。
时域有限差分(FDTD)方法是模拟计算电磁场的一种基本算法。自1966年Yee首次提出以来,经过半个多世纪的发展,这一方法得到迅速发展和广泛应用。但是时域有限差分算法通常由于其串行方式使问题本身复杂化且运算较费时间而采用并行方式计算。因此,在PC机上研究并行FDTD算法问题,具有重要的理论与现实意义,可为大规模工程问题的并行化处理提供一定的方法借鉴与理论依据。本文以一维平面波在自由空间中的传播为例,讨论了采用OpenMP 技术对电磁场FDTD算法程序实现并行化的方法,并将该并行方法在三维瞬态场电偶极子辐射FDTD程序中进行了验证,也相当于对该并行方法进行了一定的推广,并通过实验证明了该并行计算的有效性。
2019-7-4 08:47:48
4、结论
本文从分析OpenMP本身的特点及编程模型入手,结合一维FDTD算法实例,采用OpenMP+细粒度并行的方式实现了并行化,并证明了基于OpenMP 的并行FDTD 算法的有效性,而且并行FDTD 算法在所选测试实例的不同迭代次数上均获得了超线性的加速比。充分利用了OpenMP共享存储体系结构的特点,避免了消息传递带来的开销,取得了较其他并行FDTD算法更快加速比和更高的效率。更值得一提的是,将该并行方法应用在三维电磁场FDTD 程序中也取得了很好的加速比和效率,可以预见,该优化方法在更复杂的算法中应用一定具有更理想的性能提升。但不足之处在于系统的可扩展性差,这是由于OpenMP 本身的特点所限制。
因此,今后的工作将放在对基于SMP 机群的MPI 与OpenMP混合编程模型的研究,从而克服系统扩展性差的缺点,进而提升系统的易用性和可移植性。
4、结论
本文从分析OpenMP本身的特点及编程模型入手,结合一维FDTD算法实例,采用OpenMP+细粒度并行的方式实现了并行化,并证明了基于OpenMP 的并行FDTD 算法的有效性,而且并行FDTD 算法在所选测试实例的不同迭代次数上均获得了超线性的加速比。充分利用了OpenMP共享存储体系结构的特点,避免了消息传递带来的开销,取得了较其他并行FDTD算法更快加速比和更高的效率。更值得一提的是,将该并行方法应用在三维电磁场FDTD 程序中也取得了很好的加速比和效率,可以预见,该优化方法在更复杂的算法中应用一定具有更理想的性能提升。但不足之处在于系统的可扩展性差,这是由于OpenMP 本身的特点所限制。
因此,今后的工作将放在对基于SMP 机群的MPI 与OpenMP混合编程模型的研究,从而克服系统扩展性差的缺点,进而提升系统的易用性和可移植性。
举报