APP下载

基于KNL众核处理器平台的并行矩量法性能优化

2019-06-11顾宗静赵勋旺刘莹玉林中朝张玉赵玉萍

顾宗静 赵勋旺 刘莹玉 林中朝 张玉 赵玉萍

摘要:基于Intel第二代Xeon Phi代号为Knights Landing(KNL)众核处理器平台,利用MPI+OpenMP混合编程策略对并行矩量法(Method of Moments,MoM)进行了优化.利用OpenMP编程技术和KNL的计算资源,提高了CPU(center Processing Unit)使用率;线程的引入,大幅度减少了矩阵填充过程中进程间的冗余积分;为发挥KNL的512位矢量宽度优势,通过向量化优化进一步提高了循环结构的执行效率;对计算密集型、CPU利用率高的矩阵求解过程,通过引入的OpenMP编程策略,减少了MPI(Message Passing Interface)通信时间,加速了求解.数值结果表明,通过在KNL众核处理器平台上的优化,可以极大地提升矩量法计算复杂电磁问题的效率.

关键词:众核处理器;MPI+OpenMP;

并行矩量法;

向量化

中图分类号:TN820 文献标志码:A DOI:10.3969/j.issn.1000-5641.2019.01.012

0引言

随着计算机技术的飞速发展,针对高度并行工作负载而设计的一种新型处理器,即众核处理器,依靠其集成的大量计算单元,展现出强大的数据处理能力,在高性能计算领域发挥着越来越重要的作用.与传统通用多核处理器相比,众核处理器具有成本低、功耗小等显著优势.同时其优势还在于集成的核心数量超出同期通用多核处理器一个数量级,在处理计算密集型、数据密集型任务时,例如求解矩量法生成的复数稠密矩阵,能够展现出强大的优势.

近年来,国内已有若干利用众核处理器加速矩量法的文献,并且取得了较好的成果.但是,这些文献中利用的众核处理器都是作为协处理器出现的,如CPU/MIC异构并行矩量法的研究,由CPU控制任务分配和数据传输,同时也负责部分计算任务,将高并发度的代码段在MIC(Many Integrated Core)协处理器执行,达到加速并行矩量法的目的.但是,CPU与MIC协处理之间的通信都是通过PCI-EfPeripheral Component Interconnect Express)接口实现的,通信速率较慢,限制了计算性能的提升;尽管MIC协处理器具有独立的内存和存储,但容量一般都较小,因此异构协同计算能解决的实际问题受到协处理器存储容量的限制.针对上述问题,Intel于2016年推出了全新一代至强融核处理器,代号为“骑士登陆”(KNL),通过消除对PCI-E总线的依赖,提供更高的可扩展性,应对更广泛的工作负载和配置.所以,并行矩量法在KNL众核处理器平台上的计算和优化具有很高的研究价值.

KNL众核处理器是Intel首款专门针对高度并行工作负载而设计的可独立自启动的主处理器:能效型集成架构提供了比类似平台高得多的单元计算能力,有效减少了计算成本;内存和结构的集成最大限度地提升了内存容量,并首次实现了内存与高速互连技术的集成,为大规模并行和矢量化服务提供了有效平台.

为了充分利用KNL的众核计算资源以及发挥其超宽的矢量宽度优势,本文基于KNL众核处理器平台对并行矩量法程序开展了优化工作;通过与商业软件计算结果的对比,验证了优化算法的正确性;利用KNL计算集群,仿真了未知量超过20万的飞机模型的散射特性,程序优化后的性能有较大提升.值得指出的是,并行矩量法在KNL众核处理器平台上的计算和优化此前尚未见有公开的文献报道.

1并行矩量法

1.1矩阵填充分析

本文中矩量法采用的基函数为RWGfRao-Wilton-Glisson)基函数,是现今广泛使用的一种矩量法基函数,它被定义在具有公共边的两个相邻三角形上,可模拟任意形状物体的表面电、磁流分布,采用伽辽金方法可得到矩量法矩阵方程

2计算平台简介

本文使用的KNL众核处理器编号为7210(简称KNL7210),采用Slivermont的微架构和光刻14 am工艺,处理器基本频率为1.3 GHz,拥有64核,每核支持四线程,即总计256个线程.每个处理器有32个核片,每个核片由两个核组成,并共享1 MB二级缓存,每个核心内搭载两个512位宽的VPU(Vector Processing Units),可以同时处理8个双精度浮点或者16个单精度浮点运算,超宽的矢量宽度,提高了高度并行计算性能的标准.

单个KNL7210能提供超过3 TFlops的双精度浮点处理性能或大于6 TFlops的单精度浮点处理性能.最大内存达到384 GB,内存类型为DDR4-2133,最大内存带宽为102 GB/s,同时集成16 GB高带宽内存-MCDRAM(Multi-Channel DRAM),可为内存访问密集型的工作负载提供高达500 GB/s的可持续高内存带宽.

3优化策略分析

3.1向量化优化分析

为了充分发挥KNL7210超宽的矢量宽度优势,进一步提高循环结构的执行效率,对公式(2)中的高斯数值积分过程进行向量化优化,加速矩阵填充過程.图3给出了向量化过程的伪代码.

并行矩量法向量化优化前后,利用单个KNL7210,计算未知量为58 652的飞机模型的散射特性,性能的提升情况如表1所示.

由表1可以得出,向量化后矩阵填充效率提升11.09%.所以,在KNL众核处理器平台进行向量化优化对提升程序效率至关重要.

3.2 MPI+OpenMP混合编程

根据前文分析的矩阵填充算法以及存在的问题,综合考虑实现数据的局部性、提高Cache命中率、降低冗余积分计算量以及充分利用KNL7210的计算资源等条件,在MPI进程内部利用OpenMP共享内存的编程方式开启超线程,获取最优性能.

在该算例中,表2给出了并行矩量法优化前后其矩阵填充过程中的总积分次数和进程间产生的冗余积分情况.由表2的数据可得,程序优化前冗余比例为70.18%,明显高于优化后冗余积分所占比例,这会大大影响矩阵填充的速度.表3列出了并行矩量法优化前后各部分的计算时间情况.由表3可以看出,采用4个MPI进程、矩阵填充和矩阵求解分别开启64和16个OpenMP线程时,仿真该模型的效率最佳,比优化前加速了2.62倍,其中矩阵填充加速了5.81倍.由于该模型的计算规模较小,矩阵求解过程的通信时间较短,所以,仿真该模型时矩阵求解过程的加速效果不明显.

4.2飛机模型Ⅱ的散射特性

飞机模型1I的仿真模型如图7(a)所示,平面入射波频率为450 MHz(沿机头方向),极化方向为垂直极化,计算其双站RCS.该模型被剖分为151 452个三角形,公共边个数为227 178,故阻抗矩阵大小为227 178x227 178.计算得到飞机的3D双站RCS如图7(b)所示.图8给出了飞机的xoy面和XOZ面的2D双站RCS结果.

表4给出了该算例矩阵填充过程中的总积分次数和进程间产生的冗余积分情况.由表4的数据可得,程序优化前冗余比例为73.77%,均高于优化后冗余积分所占的比例.矩阵求解部分开启OpenMP线程后,减少了MPI进程数;根据公式(7)得出减少了通信时间,加速了矩阵求解过程.表5列出了并行矩量法优化前后各部分的计算时间情况,其中矩阵填充和矩阵求解每个节点使用4个MPI进程、分别开启64和16个OpenMP线程,可以获得最优性能.该算例中进程和线程的最优分配策略和上例中的计算资源分配策略一致.所以,本文中的计算资源分配策略对今后矩量法在KNL系列上的优化具有重要的借鉴和指导意义.由表5可得,优化后矩阵填充速度加速13.27倍,矩阵求解速度加速1.26倍,总的仿真计算速度加速了3.62倍.程序优化后在KNL7210集群上的运行性能得到了明显提升.

5结论

本文基于KNL7210众核处理器计算平台,对并行矩量法进行了优化,通过引入OpenMP共享内存的并行编程策略,显著减少了矩阵填充过程的冗余积分计算量,降低了矩阵求解过程的通信时间,向量化优化进一步提高了高斯数值积分过程中循环结构的执行效率.通过对飞机模型I和飞机模型II散射特性的仿真分析,验证了优化算法的正确性,并分析了并行矩量法优化后其矩阵填充和求解的加速情况.测试结果表明,基于KNL7210众核处理器平台,优化后的并行矩量法各部分计算均有较好的性能提升,对后续在KNL系列平台开展矩量法研究和优化,解决更多具有实际意义的电磁问题奠定了基础.