场分裂比奥求解器与GPU加速矩阵指数法在不同问题中的应用
1. 场分裂比奥求解器
1.1 直接和迭代算法的实现
在求解比奥问题时,采用了直接求解器和迭代求解器两种方法。直接求解器PARDISO取自英特尔MKL库,其执行分为三个步骤,在MKL手册中有详细描述。其中,“Factorize”步骤是直接算法的瓶颈,“Solve”步骤所需的浮点运算次数(FLOPS)较少,“Reordering”步骤仅包含整数运算。
迭代BCGStab算法的主要瓶颈可能出现在“Reorder/Factorize B”、“B⁻¹b”、“Âpj”等初步步骤,或者每次迭代步骤中计算的两个乘积“Âpj”和“Âsj”。当迭代次数较多时,Â{pj, sj}操作所需的时间可能会超过因式分解的时间。其他迭代操作,如点积、向量和标量 - 向量乘积的FLOPS显著较少,并未进行优化编码。
为了执行重排序/因式分解和求解步骤,与直接求解器一样使用了英特尔MKL PARDSIO。由于预处理器B的特殊结构(只需对A0和A2进行因式分解),使用PARDSIO处理预处理器B的复杂度低于处理矩阵A。
该场分裂求解器用C语言实现,并使用英特尔编译器以默认优化方式编译,适用于配备CPU E5 - 2690、20核×3.00 GHz和512 G RAM的英特尔至强硬件。
1.2 数值实验
在数值实验中,对比了直接求解器和迭代求解器在不同网格离散化的比奥问题上的性能,网格尺寸包括500 × 500、1000 × 1000、2000 × 2000和4000×4000。测量了FLOPS、内存使用、可扩展性和性能。
比奥问题的模型是一个具有裂缝的
超级会员免费看
订阅专栏 解锁全文
36

被折叠的 条评论
为什么被折叠?



