APP下载

基于曙光CPU-DCU 架构的市区噪声地图计算

2023-04-19张天宇王祉涵

智能计算机与应用 2023年3期
关键词:环境噪声算例噪声

张天宇, 李 楠, 王祉涵, 刘 斌, 冯 涛

(北京工商大学 人工智能学院, 北京 100048)

0 引 言

随着国内工业化进程的加快与城市交通路网的建设,工厂与城市交通区域网络越来越密集,导致周围的声环境质量下降。 城市环境噪声污染与人民群众的生活息息相关,一直是社会和学界关注的热点问题。 近年来人们的环境保护意识普遍提高,对交通噪声污染的投诉逐步占到环境诉讼事件的首位。噪声不仅在心理上让人们感觉不适,影响工作效率[1],其对身体健康的影响也是十分重大的:长期的噪声暴露对人的听觉、心脑血管、视觉、消化、神经功能等系统均会有不同程度的损害。 随着《中华人民共和国噪声污染防治法》的施行,以法律的形式对噪声排放标准、噪声污染源头预防、加强噪声污染防治信息公开等方面做出了明确规定,将为解决人民群众身边最直接、最突出的噪声污染问题提供更有力的法治保障。 因此,提升城市声环境质量是保护人民利益的切实有效做法。

由于环境噪声的复杂性与多样性的特征,为其治理带来很大困难。 环境噪声具有多方面的成因,包括不同噪声源、车流量的大小、路况和建筑物疏密等等。 在噪声评价与治理的过程中,实地监测是获得数据的主要方式,但有很多的局限性。 首先,例如车辆堵塞时频繁鸣笛等异常噪声事件往往具有突发性、且噪声水平值较高的特点,实地监测这种固定感知调度会大概率丢失对异常事件噪声的记录。 更加重要的是,异常噪声事件是生态环境污染和危害人类及动、植物健康的主要因素。 以上原因导致固定感知调度采集的有效数据量较少,无法准确表达噪声水平。 其次,在环境方面,如室内外温度情况、雨水天气、建筑物遮挡等因素,实地监测受环境影响较大。 为了克服实地监测噪声的缺点,国内外开始重视研发环境噪声地图。 文献[2]首先提出了一种预测与实际测量结合的方法,探讨了自研软件来代替商业软件的可能性,指出自研软件在成本和灵活性上的优势,验证了采用自研噪声地图软件同样可以绘制较为精确的噪声地图。 文献[3]研究了噪声预测模型与地理信息系统(GIS)相结合的高速铁路噪声地图绘制技术,根据高速铁路噪声源的分布特征与线路结构特征,优化了高速铁路多等效声源预测模型和声屏障插入损失计算方法,进行离散节点的噪声计算,并通过空间插值绘制连续的噪声分布地图,与实测结果对比误差小于1 dB (A),验证了该高速铁路噪声地图的准确性和实用性。 文献[4]在叙述当前环境噪声监测技术和预测技术应用现状的基础上,指出其在技术融合方面的需求和不足,并提出相应的技术融合框架,来提升噪声管理项目实施的效率和质量。 此外,还讨论了该框架涉及的关键技术,包括环境噪声监测设备及其数据管理系统、环境噪声预测模型、环境噪声预测反演及修正、相干噪声模型及噪声地图及其快速计算技术,最后给出相关系统研发的噪声地图。 该噪声地图的实时渲染功能包括数据驱动的三维建筑物和噪声地图渲染引擎,能够根据GIS 数据自动生成3D 建筑物模型,并能够实现二维和三维噪声地图的等值线、温标图、差值等显示方法。

当前制约国内外噪声地图绘制实施的一个重要难题是如何在保证求解质量的情况下提高求解效率。 一个大范围的城市交通噪声地图预测项目可能涉及上千平方公里的范围,预测点的数目更是达到了千万以上,求解过程将消耗大量的计算时间和计算资源。 另外,城市声环境非常复杂,影响噪声分布的各种因素处于高度变化状态中,这对噪声地图的快速更新速度提出了很高的要求。 因此,传统的单机计算不能满足大规模噪声地图仿真计算的要求,有必要引入并行计算算法,在分布式的环境下利用多个计算节点对同一个噪声地图计算任务进行求解。

针对上述问题,通过对文献[5]提出的GPUCPU 协作的分布式计算方法的改进,为提升环境噪声管理效率、提升大规模环境噪声地图计算效率,提出了一种CPU-DCU 并行的噪声地图计算技术,可以使用“曙光”超级计算平台上的DCU 加速卡进行内核计算,该方法减少了计算机性能开销,提高了并行计算的效率,并能够生成高质量的噪声地图结果,形成了大规模环境噪声仿真计算求解器,高效地解决了因城市发展迅速、噪声地图更新频繁、三维噪声地图需求强烈等对计算资源的利用产生的负面影响。

1 大规模环境噪声地图求解

1.1 求解流程

大规模环境噪声地图求解流程如图1 所示,主要分为3 步:噪声计算数据建模、声学计算和可视化。 对此拟做阐释分述如下。

图1 噪声地图求解流程Fig. 1 Calculation process of noise map

(1)噪声数据建模。 噪声地图建立的首要任务是噪声计算数据的建立:将GML 地理信息数据、噪声监测数据和气象数据等多源异构数据转化为统一的噪声计算数据。

(2)声学计算。 将噪声计算数据上传至“曙光”超级计算平台系统进行数据管理,将计算数据由主机端传入设备端,使用CPU 与DCU 加速卡进行内核计算,再将计算结果返回主机端。

(3)可视化。 将计算完成后的结果文件下载到本地计算机,使用可视化软件将计算结果进行可视化,形成噪声地图。

1.2 预测模型

为了解决环境噪声实地监测的问题,世界各国的学者与环保人员在环境噪声方面进行了大量的研究,其中噪声预测是噪声评价与噪声治理的重要依据,噪声预测模型的建立尤为重要。 以英国的CRTN88[6]、德国的RLS90[7]与美国的FHWA[8]噪声预测模型为主,各国相继建立了相关噪声预测模型[9-10]。 目前,对标准规范的软件化解析比较多的是HARMONOISE标准[11-12]。 而ASJ Model-1998 标准对传播模型的解释更为细致[13]。 现如今,欧洲的CNOSSOS-EU 标准[14-16]已经制定,对HARMONOISE 标准做了很多修改和简化,这对计算软件的实现也起到了引导的作用。

调查证明,国内的交通噪声预测模型研究起步较晚,并未形成通用的模型,因此本文求解器使用的预测模型遵循中华人民共和国环境保护部于2009年制定的《环境影响评价技术导则-声环境(HJ2.4-2009)》中概述的程序。 在HJ2.4-2009 中,源排放模型和传播模型主要依据ISO 9613-2 设计。 由于HJ2.4-2009 中没有提供足够的传播路径计算细节,因此传播路径的实现方法遵循HARMONOISE 标准[17]。 上述求解器使用的传播模型中,衰减项包含:几何衰减、大气效应、地面效应、屏障效应和衰减合成。

1.3 噪声计算数据建模

在工程应用中,地理信息数据主要包括城市道路、铁路和地面轨道交通的平面和立体分布、建筑物的高低落差与位置。 所用的建筑物信息和道路信息通过GIS 地理信息系统获得,如图2 所示,建筑物视为声屏障,道路位置视为线声源位置。 在进行噪声地图计算之前,重新设计了文件储存噪声计算数据。

图2 3D 城市模型Fig. 2 3D city model

噪声计算数据如图3 所示。 一个位置的数据包含气象数据、噪声监测数据、交通监测数据和GIS 数据等一系列多源头、多维度、多尺度的数据。 以一个城市区域为例,噪声计算数据使用XML 文件储存,包含GIS 数据、线声源数据、建筑物数据和计算区域数据。 其中,GIS 数据包含线声源、建筑物或计算区域的位置信息,每种数据均拥有各自的GIS 数据;线声源数据包含线声源名称、线声源标签、线声源种类、声强、修正值、车流量和计算配置等信息;建筑物数据包含建筑物的标签、名称和高度等信息;计算区域数据包含计算区域的名称、标签和计算配置等信息。

图3 噪声计算数据Fig. 3 Noise calculation data

1.4 DCU 的算法优化

在大多数噪声地图的情况中,几何数据不必要十分精确,目前的不少商业软件中常使用简化多线段类型的方式减少几何数据的细节,从而提高计算效率。 为了应对大规模环境噪声地图的解算需求,除了使用在商业软件中常会见到的方法进行DCU优化外,还可以使用一种定向包围盒的几何简化方法。 文献[5]比较了噪声地图计算中是否使用定向包围盒简化建筑物对计算结果的影响。 研究发现,在较大规模的噪声地图求解中使用该方法进行几何简化,计算速度提升3 倍,实验中91%的接收点计算结果误差值小于1 dB,最大误差小于3 dB,对较大规模噪声地图的宏观求解误差不会产生较大影响。定向包围盒法如图4 所示,该方法可以找到给定多边形的最小包围矩形,并将原有多边形替换为最小包围矩形。 为了节省DCU 的计算时间,在噪声计算数据建模过程中使用该方法一次性地将几何数据进行简化,存储在数据库中,以便在新的计算任务中使用。

图4 定向包围盒法Fig. 4 Oriented bounding box method

1.5 CPU-DCU 并行的噪声地图计算方法

CPU-DCU 并行计算是将系统中CPU 所在位置称为主机端(Host),将DCU 所在位置称为设备端(Device)。 主机端代码使用C/C ++编写,运行在CPU 上;设备端代码(核函数)使用HIP-C 编写,运行在DCU 上。 典型的HIP 程序的执行流程如下[18]:

(1)分配Host 内存,并进行数据初始化。

(2)分配Device 内存,并从Host 将数据拷贝到Device 上。

(3)调用HIP 的核函数在Device 上完成指定的运算。

(4)将Device 上的运算结果拷贝到Host 上。

(5)释放Device 和Host 上分配的内存。

噪声地图具有天然的并行特性,即每个接收点的计算是独立的,因此在多核平台上计算不同的接收点时没有信息交换,n个核心可以同时计算n个接收点。 在噪声地图计算中,考虑到CPU 和DCU之间的计算差异,预测模型中不同的衰减项在CPU和DCU 核心上计算时有不同的性能,例如几何衰减中的浮点运算。

“曙光”超级计算机系统搭载的DCU 加速器相较于CPU 更擅长处理大规模的密集计算,文章实验使用CPU-DCU 协作的方式进行噪声地图解算,通过HIP-C 编写核函数,将适合DCU 解算的密集计算任务分配到DCU 加速器上运行,将适合CPU 解算的逻辑运算分配到CPU 端进行。

“曙光”超级计算机系统在单个计算集群节点上分配了4 块DCU 加速卡,考虑到每次噪声地图计算中数据可能出现的大小不一,为了资源的高效分配,已有研究证明可将Device 端任务灵活划分为n份(1 ≤n≤4) 并传输到n张DCU 加速卡上,合理利用节点上的计算资源,在提升运算效率的前提下,保证了资源的合理分配。

为了高效利用计算资源,噪声地图计算中的任务分配十分重要。 研究表明,文献[5]提出的基于遗传算法的噪声地图任务划分方法和子任务调度方法可以显著提高噪声地图计算的并行效率。

定义1HH表示给定区域的计算规模,H的公式如下:

其中,β是由硬件性能确定的系数;系数γ和系数ε分别为建筑物和接收点的权重;δ为除屏障和反射外衰减项的计算比例权重系数;Nerp表示计算区域中有效接收点的数量;Nbv表示几何体顶点的总数;Nps表示点源总数;sa表示计算区域的扩展区域。

定义2Fdi子任务的DCU 适配度Fdi计算公式如下:

其中,Hd表示所有子任务的DCU 计算规模,hdi表示区域i的DCU 计算规模,hdi =NerpNbvNps/sa。

噪声地图计算流程如图5 所示。 由图5 可知,CPU-DCU 并行的噪声地图计算流程如下:

图5 噪声地图计算流程Fig. 5 Calculation process of noise mapping

步骤1根据计算规模估计子任务的数量,计算分区的行数与列数。

步骤2行划分。 使用遗传算法生成大小相同的行块。

步骤3列划分。 进一步使用遗传算法将步骤2 得到的每个块继续划分,生成计算任务划分的最终结果。

步骤4块划分。 将每一块标注计算规模与DCU 适配度,决定哪些块将由DCU 计算,生成CPU子任务集和DCU 子任务集。

步骤5子任务调度。 根据获得的节点信息估计节点的计算能力,并根据节点的计算能力向节点分配相应的匹配子任务。

步骤6噪声地图结果整合。 从所有计算节点回收子任务结果,并整合为完整的噪声地图。

2 实验分析

2.1 实验环境

文章实验是基于“曙光”超级计算平台系统,该计算集群为提供超高计算量需求,每个计算集群节点配置1 颗32 核心2.0 GHz 主频的x86 处理器和4块DCU 加速卡,每个节点配置8 根16 GB DDR4 2666 ECC REG 内存,并配置2 套曙光Parastor300S并行存储系统,提供大容量数据存储。 网络通信方面,集群采用全线速、 无阻塞的200 Gb HDR Infiniband 专用计算网络,能极大提升计算的速度和扩展性。 集群的作业管理系统为slurm,系统的具体硬件信息与软件信息分别见表1、表2。

表1 “曙光”超级计算平台系统硬件信息Tab. 1 Hardware information of Sygon supercomputing platform system

表2 “曙光”超级计算平台系统软件信息Tab. 2 Software information of Sygon supercomputing platform system

2.2 正确性验证

首先对CPU-DCU 并行的噪声地图计算方法进行小规模数据的正确性验证。 正确性验证模型选用ISO/TR 17534-3 中的算例模型,分别使用CPU 与单DCU 加速卡对噪声计算数据进行噪声地图计算,算例模型参数分别见表3 与表4。 将解算出的结果与ISO/TR 17534-3 中标准结果进行比较,解算结果见表5。 经过对比发现,CPU 与单DCU 加速卡两者解算结果相同,与标准结果数值变化在±0.05 dB,通过正确性验证,并且单DCU 加速卡比CPU 加速达到261.33 倍。 正确性验证算例如图6 所示。

图6 正确性验证Fig. 6 Correctness verification

表3 声源与接收点参数Tab. 3 Parameters of source and receiving m

表4 建筑物参数Tab. 4 Parameters of buildings m

表5 解算结果Tab. 5 Calculated results

2.3 并行性能测试

通过控制街区大小、网格划分与计算层数的方式控制噪声计算数据的规模,在“曙光”超级计算平台系统使用部分街区算例和完整街区算例的噪声计算数据进行并行性能测试。 部分街区分为算例1 与算例2,均将网格划分为2×2 网格,每层间隔5 m,区别在于算例1 计算1 层高度,算例2 计算10 层高度。 完整街区分为算例3 与算例4:算例3 将网格划分为10×10 网格,每层间隔5 m,计算10 层高度;算例4 将网格划分为2×2 网格,每层间隔5 m,计算20 层高度。 算例参数见表6。

表6 算例参数Tab. 6 Parameters of examples

将上述算例分别在CPU、单DCU 加速卡、双DCU 加速卡与4 张DCU 加速卡进行并行性能测试,使用单DCU 加速卡称为方法1,使用双DCU 加速卡称为方法2,使用4 张DCU 加速卡称为方法3。 选用部分街区算例进行CPU 与方法1 对比实验,见表7。

表7 算例1 与算例3 在CPU 与方法1 下的对比Tab. 7 Comparison between example 1 and example 3 using CPU and method 1

由表7 结果可以看出,在计算算例1 时,单DCU相比CPU 加速比为230.44,随着计算规模的增大,在计算算例3 时,单DCU 相比CPU 加速比达到了341.06。 综上分析,在计算规模较小时,加速比可以达到200 以上,已经大幅提升了运行效率,但并不能充分释放DCU 的性能,无法充分利用并行资源,没有达到最优的性能。 随着计算规模的扩大,DCU 加速卡在大规模密集计算的并行优势逐渐体现,加速比大幅度提升,将原本持续数天的CPU 计算时间缩减到17 min,极大地减少了计算机性能开销,节省了计算资源。 实验结果表明,CPU-DCU 并行的噪声地图计算方法在“曙光”超级计算平台系统的单DCU 加速卡环境中,运行速度显著提升,在生成高质量的噪声地图结果的前提下,计算速度提升200倍以上,并且随着计算规模的扩大,加速效果更加显著。

在实际应用中,计算规模十分庞大,网格划分更细,计算层数更多,单DCU 的计算性能无法满足大规模的环境噪声地图计算要求。 基于文章提出的并行方法可将Device 端任务灵活划分为n份(1 ≤n≤4),并传输到n张DCU 加速卡上,使用单、双DCU加速卡对规模更大、更复杂的算例2、算例3 以及算例4 进行计算,测试结果见表8 和图7。

图7 不同规模在方法1 与方法2 下的对比Fig. 7 Comparison of four calculation examples with different scales using method 1 and method 2

由图7 结果看出,在计算算例1 时,双DCU 加速卡的并行效率为97.1%,在计算算例2 时,双DCU加速卡的并行效率为97.3%,但是当面对完整街区这种超大型噪声地图计算规模时,双DCU 加速卡的并行效率明显提升,算例3 的并行效率达到99.5%,算例4 的并行效率达到99.3%,并行效率与噪声地图计算规模成正比。 造成这种结果的原因是随着噪声地图计算规模的扩大,并行计算中核函数内的计算占比逐渐扩大,并且超过使用hipMemcpy() 在设备端与主机端之间进行传输的占比,并行效率得到显著提升。

表9 是将算例4 分别在单DCU 加速卡与4 块DCU 加速卡上进行的计算结果的对比,并行效率为88.2%。 从表9 可以看出,4 块DCU 加速卡的加速效果显著提升,使用多DCU 加速卡取得了优异的性能,加速效果与加速卡的数量成正比。

表9 算例4 在方法1 与方法3 下的对比Tab. 9 Comparison of example 4 using method 1 and method 3

实验结果证明了基于CPU-DCU 并行的噪声地图计算方法在“曙光”超级计算平台系统的多DCU加速卡上具有输入输出的可扩展性,计算性能也有了大幅提升:单DCU 加速卡比单CPU 加速最多可达340 多倍,双DCU 加速卡比单DCU 加速卡并行效率达到99%以上,4 块DCU 加速卡比单DCU 加速卡并行效率达到88.2%,并对在“曙光”超级计算平台系统实现大规模环境噪声地图计算求解速度的提升与高质量计算结果的生成具有重要意义。

2.4 工程案例

基于“曙光”超级计算平台系统的优异性能,大规模的环境噪声实际应用的求解效率大幅提升,在2 个试验区进行了实际应用。 实验区域1 的噪声地图求解结果可视化如图8 所示,实验区域2 的噪声地图求解结果可视化如图9 所示。 为了方便研究人员对城市噪声的多维度分析与细化分析,可视化包括求解区域、噪声地图求解结果、3 维网格划分、x方向切片、y方向切片和噪声等值面。

图8 实验区域1 的噪声地图可视化Fig. 8 Visualization of noise map in experimental area 1

图9 实验区域2 的噪声地图可视化Fig. 9 Visualization of noise map in experimental area 2

3 结束语

文章根据“曙光”超级计算平台系统的异构架构,利用C/C++和HIP-C 语言实现了CPU-DCU 并行的噪声地图计算方法,利用DCU 的并发性提升了求解效率。 实验结果验证了上述方法的有效性。 同时,实验结果也验证了噪声地图求解在“曙光”超级计算平台系统上的可能性,扩展了该平台的科研生态领域。

随着《中华人民共和国噪声污染防治法》的施行,将会出现一批新的官方计算标准、规范和评价标准(国标和环评导则),求解算法需要通过迭代来适应国家标准的变化;目前求解算法中还未引入规范的地形数据的屏障效应影响和反射效应影响,这主要是由于接入地形数据格式和计算方法没有统一被认可的标准造成的,后续随着数据规范和计算方法的健全来逐步完善。

猜你喜欢

环境噪声算例噪声
噪声可退化且依赖于状态和分布的平均场博弈
环境噪声智能检测终端设计
基于云服务的环境噪声智能监测系统研究
控制噪声有妙法
南海某海域环境噪声与风速相关性研究*
基于振荡能量的低频振荡分析与振荡源定位(二)振荡源定位方法与算例
铁路环境噪声测量中的问题分析
互补问题算例分析
基于CYMDIST的配电网运行优化技术及算例分析
一种基于白噪声响应的随机载荷谱识别方法