摘要:时域交点间断伽辽金算法(Discontinous Galerkin Method Time Domain,DGTD)是一种求解电大目标散射电磁问题的有效方法。本文提出了使用 SSE(Streaming SIMD Extensions)技术对 DGTD 算法进行了硬件加速,将其应用于 Maxwell 方程的求解,并通过在实机上的实际结果进行了加速效果的比对,详细分析了应用于麦克斯韦方程求解的 DGTD 方法在可优化的各个部分的加速效果,更加直观详细得展现了 SSE 的突出的加速作用,并创造性地将 SSE 和函数内联相结合,获得了更加强劲的加速效果。和理论值 4 倍速度提升相比,本文实现了应用于 Maxwell 方程二文问题求解的 DGTD 算法在局部计算过程上最高 4倍以上的加速效果,和在总体计算过程上 3倍左右的加速效果。 37241 毕业论文关键词:伽辽金算法;麦克斯韦方程;指令集加速;DGTD 二文问题
Abstract Discontinous Galerkin Method Time Domain(DGTD) is a kind of effective Method in solving scattering of electrically large objects. In this paper, we put forward the use of SSE (Streaming SIMD Extensions) technology to accelerate the DGTD algorithm which applys to solving Maxwell's equations, and make a comparison on speed effect through the actual result on computer, then detailedly analyse the acceleration effects of DGTD method which applys to Maxwell equation in various optimized parts, showing effects of SSE acceleration more intuitionistic. Otherwise we creatively combines the SSE and inline function, making the acceleration effect of SSE more robust. Compare with theoretical value 4 times, this paper implements the acceleration effects more than 4 times in most effective part and about 3 times totally.
Keyword Galerkin algorithm; Maxwell's equations; Instruction set acceleration; two-dimensional DGTD problem
目录
摘要I
目录II
第一章 引言1
1.1 研究目的及意义1
1.2 论文章节安排2
第二章 DGTD 方法和麦克斯韦方程3
2.1 引言3
2.2 麦克斯韦方程3
2.3 DGTD 的二文问题5
2.3.1 记号引入5
2.3.2 二文 DGTD 的离散格式5
2.3.3 模形式和点形式9
2.3.4 单元计算12
2.3.5 网格组装15
2.3.6 时间问题处理16
第三章 基于SSE的DGTD算法加速18
3.1 引言18
3.2 支持SSE的硬件结构18
3.3 基于SSE的DGTD算法的具体实现19
第四章 数值算例23
4.1 问题简述23
4.2 求解区域网格化23
4.3 仿真结果和误差分析24
4.4 SSE 的加速效果分析27
4.4.1 问题计算密度分布27
4.4.2 RHS 中可加速部分和不可加速部分的计算密度比较29
4.4.3 实际加速效果32
4.4.4 具体部分的加速效果分析33
4.4.5 SSE 内联处理的详细讨论和数据准确性验证36
4.4.6 总结39
4.4.7 实验数据汇总40
参考文献43
1.1 研究目的及意义 随着计算机技术的不断发展,用计算机来完成人无法完成的大规模计算成为现实,这也使得科学计算的准确度不断提高,目前科学计算已经成为并列于理论和实验的科学技术的第三个组成部分[1],从上世纪麦克斯韦完善了经典电磁理论,提出了麦克斯韦方程组,创造了计算电磁学的开端,到如今在计算电磁领域, 已经有很多有效的方法可以用来求解电磁问题,比如时域有限差分法(Finite Difference Time Domain , FDTD),时域有限积分法(Finite Integration Technology,FIT),有限体积法(Finite Volume Method , FVM),有限元法(Finite Element Method , FEM) ,矩量法(Method of Moments , MoM) 。 但是随着计算电磁领域的进一步发展, 研究者们发现以上的数值方法虽然已经能够满足大部分电磁问题的求解,但用来解决电大目标散射问题都不太理想,而且每一种方法都有不足之处,比如时域差分方法不能计算复杂区域,有限体积法不能完成高精度和 hp自适应[2],有限元法不能满足显式半离散格式,在这个背景下交点间断伽辽金方法开始获得电磁领域研究者的关注和重视。 应用于电磁计算领域的交点间断伽辽金方法被称为时域交点间断伽辽金算法(Discontinuous Galerkin Method Time Domain,DGTD),其克服了以上方法的所有不足之处,非常适合用于电大目标散射问题和电磁领域中的其他复杂问题的求解, 所以尽管DGTD相比其他方法的研究起步较晚,但却在近十年内获得了快速的发展[3],并且是解决电大目标散射问题的一个研究趋势。 DGTD方法是一种基于单元化的方法,和有限元方法相似,通过对问题整体进行网格化划分形成相互独立的单元,这些单元仅仅在交界处有所联系,单元内部的计算只需要计算单元内的信息而不依赖于外部单元的信息,这就使得单元可以是任意形状,每个单元的逼近阶可以是互不相同的特点,所以DGTD可以通过局部逼近的方法来达到高精度和局部自适应。但是要提的是,虽然 DGTD 方法克服了有限元方法的半离散格式非显式的问题,并且集合了各种电磁场求解的数值方法的优点,不过代价是甚至比有限元法还要高的计算量。有限元方法因为对求解整体网格化之后进行细化的独立单元计算而导致了高精度和自适应特点, 其计算量的也就比其他电磁场数值计算方法比如 FDTD 方法大得多,而 DGTD 用更多的计算量换来了比有限元法更高的的精度和更广的适用范围。对于高密度的计算量,合理有效地利用计算机的性能以达到快速的计算速度就尤为重要。 在不对算法进行优化的前提下,有效利用硬件性能来达到加速计算的方法已经有很多,比如指令集加速,显卡处理浮点运算[4],并行计算[5],有效管理缓存[6]等方法,在此我们选择了 SSE 技术来对算法进行加速,这是因为 SSE 技术是计算机处理器本身自带的一个硬件加速技术,任何计算机都可以直接实现这项加速技术而不需要任何额外的硬件成本支出,并且几乎所有的编译器都原生支持SSE 技术,编程也很方便。