《并发L-BFGS异构率定算法设计与实现.docx》由会员分享,可在线阅读,更多相关《并发L-BFGS异构率定算法设计与实现.docx(13页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、并发L-BFGS异构率定算法设计与实现田在荣李强聂宁明全婷中逐渐成为新的开展热点11,如2019年世界超级计算机500强(T0P500)榜 首一美国的Summit超算使用的是CPU+GPU混合异构架构。使用高性能异构计算 方式来解决工程中遇到的算力匮乏问题已经成为主流,而对于水文模拟参数率 定这种具有天然并行性的高计算需求的应用12,如何利用异构计算的强大算 力解决计算需求,已经成为当前该领域亟待解决的问题之一。在超算平台上进 行水文计算,必须要开展相应的异构算法,高效利用超算平台的计算资源。本 文选取具有较强收敛能力的L-BFGS算法作为基础率定算法13,挖掘其搜索方 向及步长的选取原理14
2、,在保存算法总体搜索方式的基础上对其进行并发式 改造,使算法具备并发处理多个搜索线路的能力15。本文选取适用于中国大 多数大江大河及各种流域的HIMS (hydroinformatic modeling system)水文 模型16作为主要参考模型,通过对模型本身计算热点的分析,确定适合协处 理器计算的局部,并对这一局部进行异构化改造,使得模型的实际运行由CPU 端发起,通过各种CPU和协处理器间的数据拷贝,使计算热点全部运行于协处 理器,利用协处理器强大的并发计算能力,在保证计算精度的同时大幅减少计 算时间。最后对两种目前较为常见的异构平台做了相应的算法测试与比照。2并发L-BFGS算法在参
3、数率定中的应用1水文模型参数率定的评价依据应用水文模型模拟水文工作时,关键的一项就是寻找水文模型的最优参数组, 水文模型模拟的精度很大程度上取决于模型中参数组的选择。参数率定的目标 是为待研究流域的各个子流域寻找到一组“最优”的参数组,使得应用该参数 组进行水文模拟后的模拟值和实际观测值的差距最小。通常,参数率定结果的 优劣使用Nash (Nash-Suttcliffe,后面简称Nash)系数作为判定依据。Nash 系数越接近于1,模拟值和观测值差距越小。Nash系数为其中,Q。表示观测值,Qm表示模拟值,Qt表示在第t时刻的某个值。2.2 L-BFGS算法的并发执行差商法求导的步骤如下:将L
4、-BFGS算法所需要的m组初始值、目标函数值和初始值对应的梯度值代入算 法中,就可以通过屡次迭代找到最优的m个Nash系数。2. 3 HIMS模型的异构移植HIMS模型是国内自主研发的流域分布式水文模型,具有完全的知识产权。主要 应用在流域内评价、规划和管理水资源,以及处理与水相关的生态环境保护工 作17,如洪水预报、管理水污染与侵蚀以及气候变化等。HIMS具有多源信息 融合、数字流域分析、分布式模拟以及模型定制等功能18,可以针对国内各 个流域不同的水文尺度、流域空间非均一性19以及不同的自然和人文环境进 行水循环模拟、参数率定等水文工作。目前,HIMS模型已应用并部署于国内外 众多流域的水
5、文模拟过程中,并取得了良好的应用效果。HIMS模型最初是面向CPU端开发,并运行于PC机环境,对于大规模异构计 算,需要对HIMS整体架构进行调整。根据目前的协处理器体系结构,原HIMS 模型中用于读取原始数据而开辟的存储空间需要在计算前全部转移到device 端,并在计算结束后将Nash系数作为结果传回host端。传入的数据除原始数 据如降雨量、最高最低温度、海拔、流域面积等,还有已经在host端生成的由 m 组 n 维参数组成的数组(xl, 1, xl, 2, , xl, n, , xm, 1, xm,2,,xm, n),并在device端使用程ID作为标识将参数组分割至m个不 同线程。H
6、IMS模型的核心是产流和汇流(即马斯京根过程)两大局部,从CPU 到协处理器的移植过程包括将涉及的函数定义成device,原始模型中所有的 global类型变量、指针全部通过核函数传入device,模型内部用到的所有变量 的内存大小需调整为原先的m倍。计算完之后,使用得到的m组模拟值和实测 值通过计算得出m个Nash系数并传出。图2和图3分别为HIMS原始工作流程 和HIMS在异构平台工作流程。2.4并发L-BFGS算法的异构实现并发L-BFGS算法在参数率定中的并发异构实现是通过CPU和GPU协同工作的。 首先,CPU同时通过随机函数产生m组n维参数(xl, 1, xl, 2,,xl, n,
7、,xm, 1, xm, 2, , xm, n),将m组n维参数传入GPU中,按照线程 号平均分成m组,每组分别运行HIMS水文模型,得到每组对应的Nash系数, 然后将m组参数及其对应的Nash系数取反传入CPU端,通过差商求导模拟出每 组参数每个位置的梯度,将这些变量代入优化算法经过屡次迭代,分别判断每 组参数是否到达迭代终止条件,最后得到m个最优参数组和最优Nash系数。L- BFGS算法并发异构实现的基本流程如图4所示。3数值实验本节对HIMS模型的异构移植以及并发L-BFGS算法在水文模拟具体参数优化过 程进行数值实验,并比拟和分析数值实验结果,探讨异构移植的效率和并发性 能以及并发L
8、-BFGS算法在参数率定中的具体应用。运行环境为配置V100的 GPU服务器和配置国产AI加速器的国产先进计算平台,实验数值均为运行5次 计算得出的平均值。(1)单节点内国产AI加速器和CPU在参数率定中的并发性能测试。实验设置 参数组个数设置为 32 768 (1 024X32)、65 536 (1 024X64)和 13 1072 (1 024X128) o由表1,国产AI加速器程序和CPU程序相比,单进程运行时,加 速比在125以上,加速效果较为理想,且随着参数组规模增加,加速比逐渐升 高,其中参数组个数从65 536增加到131 072的计算时间从102. 59 s增加到 202. 6
9、9 s,说明算例在65 536时基本到达国产AI加速器的满载状态,这也与 国产AI加速器内含64核、每核支持1 024线程的硬件架构相符。在四进程运 行时,保持总参数组数量32 768、65 536. 131 072不变,将每进程参数组数 量降为原先的四分之一,CPU运行时间约为原先的四分之一,说明强扩展性良 好,而国产AI加速器的时间从58. 69 s到69.89 s变化不大,说明国产AI加 速器的线程还没有到达计算临界条件。从表2中可以看出,在保持每进程以及每个国产AI加速器参数组个数不变时, 单进程运行和四进程运行以及单进程1个国产AI加速器和四进程四个国产AI 加速器的运行时间相差不大
10、,说明扩展性较好。(2) L-BFGS算法在串行程序以及异构平台的国产AI加速器和GPU程序在不 同线程Nash系数计算到0.92的迭代次数变化情况。由图5可知,传统的L- BFGS算法(即串行实现)在进行参数率定时,迭代次数约在297次Nash系数 才能到达0. 92,而L-BFGS算法在GPU和国产AI加速器这样的异构平台进行多 线程并发参数率定时,Nash系数到达0. 92的迭代次数随着线程数增加而逐渐 减少。在512线程时只需要迭代大约27次即可使Nash系数到达0.92,说明L- BFGS算法在多线程并发实现较之串行实现时,迭代次数大幅度减少,实现了 L-BFGS算法提高率定效率的任
11、务。而在相同线程时,GPU的迭代次数略少于国产AI加速器的迭代次数,说明V100的计算性能略优于当前国产AI加速器的计算 性能。(3) L-BFGS在串行时以及国产AI加速器和GPU在512线程时在不同迭代次 数Nash系数变化情况。由图6, L-BFGS算法在异构平台的GPU和国产AI加速 器实现较之其串行实现在相同迭代次数时,Nash系数要远大于串行实现,说 明,异构运行实现了提高Nash系数精度。而国产AI加速器和GPU在512线程 时迭代到200次之后,Nash系数基本保持在0. 94左右。(4) Nash系数为0.94时观测值和模拟值比照。由图7,当Nash系数为0.94 时,通过水
12、文模拟出来的径流量模拟值总体趋势上贴近观测值,说明通过L- BFGS算法的参数率定使参数集靠近最优参数集,通过这组最优参数集水文模拟 出来的径流量也会与观测值更加贴近。4结论本文通过对传统L-BFGS算法进行并发式改进,并将HIMS水文模型进行异构移 植,得到了一套面向异构平台的大规模并发率定算法。针对HIMS模型的参数优 化实验说明,并发L-BFGS算法的异构实现较之串行实现迭代次数有了大幅度减 少,且Nash系数的精度也有了较为明显提高。Reference1刘海帆.基于过程的大尺度水文模型的层级敏感性分析及其在亚马逊流域中 的应用北京:中国地质大学,2020.2QI W, LIU J. S
13、tudies on changes in extreme flood peaks resulting from land-use changes need to consider roughness variationsJ.Hydrological Sciences Journal, 2019, 64 (16) : 2015-2024.3栾承梅.流域水文模型参数优化问题研究D.南京:河海大学,2005.4郭靖,郭生练,胡安姣,等.基于TOPSIS法的水文模型多目标参数自动优 选方法研究J .水电能源科学,2006, 24 (6) : 25-28.5徐帅帅.基于分布式水文模型的洪水预报及水库削峰
14、的案例研究D.济南: 山东建筑大学,2019.6张洪刚,王金星,刘攀,等.概念性水文模型参数自动优选方法的比拟研究J.石河子大学学报(自然科学版),2002 (3) : 229-232.7李月玉,李磊,等.免疫粒子群算法与支持向量机在枯水期月径流预测中的 应用J.水资源与水工程学报,2015 (3) : 124-128.8许自舟,周旭东,隋伟娜,等.基于SWAT模型的碧流河流域入海径流模 拟研究J.海洋环境科学,2020, 39 (2) : 216-222.9崔东文,郑斌.几种智能优化算法与支持向量机相融合的月径流预测模型及 应用J.人民珠江,2016, 37 (3) : 18-25.10马彦
15、斌,盛旺,李江云,等.基于遗传算法的SWMM模型参数率定研究J.中国农村水利水电,2020 (7) : 46-49.11张军华,臧胜涛,单联瑜,等.高性能计算的开展现状及趋势仃.石 油地球物理勘探,2010 (06) : 918-925.12高明,程相国,咸鹤群,等,移动端代替算法的并行优化J.青岛大学学 报(自然科学版),2016, 29 (3) : 53-58.(13) CHEN W, WANG Z, ZHOU J. Large-scale L-BFGS usingMapReduceJ. Advances in Neural Information Processing Systems,
16、2014 (2) : 1332-1340.(14) KEARSLEY A J. Matrix-free algorithm for the large-scale constrained trust-region subproblemJ. Optimization Methods &; Software, 2006, 21 (2) : 233-245.15于一超,田志逮,刘相静,等.非线性互补问题的一个数值解法J.青岛 大学学报(自然科学版),2014, 27 (3) : 14-18.16刘昌明,郑红星.基于HIMS的水文过程多尺度综合模拟J.北京师范大学 学报(自然科学 版),2010, 4
17、6 (3) : 268-273.17尚瑞朝,王娟.HIMS系统模型在洪水预报中的应用J.浙江水利科技, 2015, 43 (4) : 9-12._18 JIANG Y, LIU C, LI X. Hydrological impacts of climate change simulated by HIMS Models in the Luanhe River Basin, North ChinaJ. Water Resources Management, 2015, 29 (4) : 1365-1384.19吴潇潇.HIMS模型在曹江流域流量变化过程模拟中的应用D.淮南:安 徽理工大学,20
18、16.青岛大学学报(自然科学版)2021年3期 青岛大学学报(自然科学版)的其它文章全球价值链碳减排的门槛效应分析“双一流”形势下高校后勤内部控制差异化设计与优化研究“互联网+”背景下房地产估价精度修正及其应用研究基于选择实验法的海洋资源价值评估研究进展政策偏差、调节作用与地方经济开展船舶压载水快速检测方法的研究进展一全文完一1并发L-BFGS算法传统的L-BFGS算法原理是输入一组参数(心.以-J)为参数的个数)及K对应的目标函数值 ,通过对函数梯度值、海森矩阵的模拟值以及函数F降方向(负梯度方向)的计算.采用线搜索策略,使 算法具有全局收敛性。经过屡次迭代求解到达循环终止条件后得到最优参数
19、组(.r;,1;)及其对 应的最优值/ (7).为了适应多组参数同时进行寻优操作的要求,需要对传统算法做出改进使得多组参 数可以并发执行.这样就得到了并发L-BFGS算法。其原理是同时输入多组参数X. i = 12? 其中= 1八2 以“)(,为并发执行的组数,为每组的参数个数.F同)以及每组参数对应的目标函数 值经过屡次迭代求解,并发执行H至其中一组或多组参数到达各自的循环终止条件后可得到/组最 优参数X:以及对应的最优值/; .并发L-BFGS算法的目标函数可表示为/NX).设X,为第i组迭代次(4 = 12,下同)后计算得 到的/,(X)极小值点的估计值在X,处进行泰勒展开/;(X)=/
20、(X,) + V (X-X,.A)+0.5(Xr-X”T L/nx.) (X.-X“)(1)其中,令即=V/,(XQ为第i组执行的梯度向量1/,/=2/,(、,)为笫/组计算的海森矩阵。记 5,/七Hi九七=Kr + i -8hk= Xj.A+i Xi,k 9 由拟牛顿条件e得D + I =S,F Ji.i o(2)(3)要得到并发LBFGS算法首先需要DFP算法并发执行。传统的DFP算法采用1)计.但并不直接计 算D.而是计算每一步办的增量来间接求D因为一般k一步的中间结果对F一步的计算仍有价值执行到 第i组时那么/)=/),+限通常取单位矩阵/, ,计算的关键便是推导出第i组“/得-S-
21、e.VV J)而并发BFGS算法与并发DFP算法类似,只是采用B近似BFGS算法的并发实现的最终公式为与并发DFP算法相比.BFGS算法的并发实现只是-y互调。对并发BFGS算法的海森矩阵的近似矩阵使用ShermamMorrison公式那么3二如和的关系为(5)TTT由前面假设可知D“=B;:I ,所以式(5)为5-;出如一工小;出5-;出如一工小;出(6)相比BFGS算法.L-BFGS算法不再存储完整的D“因为比拟大计算较为复杂.根据前面的推 栉可知只与以及并发执行的笫i组序列$,和(九力有关。即知道J后者.也可求得前者,进一 步近似只需要序列旧J和3,的最近的个值。这样计算机内存中只需要存
22、储这两个序列即可。(7)计算到第/组时,最终的递推关系为D./+1T Pi/$I.*.*其中小Summary:针对分布式水文模型在水文模拟参数率定过程中计算与收敛速度过慢 的问题,提出一种面向异构平台的水文模拟并发参数率定方法。对传统的L- BFGS算法进行并发式改造使其结构适应并行计算的率定需求;对HIMS水文模型 进行异构移植,使整个水文模型以多线程的形式并发运行于协处理器端;以拉萨 河流域为例,在Intel+Nvidia GPU与国产AI加速器的双异构平台部署模型与 测试算例。测试结果说明,并发L-BFGS异构率定算法适用于当前主流的“处理 器+协处理器”架构,并能够得到较好的率定效果。
23、Key:水文模拟;参数率定;HIMS;异构移植:TP 338.6文献标志码:A :1006-1037 (2021) 03-0043-08 水文模型是对大自然中复杂的水文现象在计算机中的抽象化和概念化的展现 1,是人们认识复杂的水循环运动过程和机制下的有效方法和手段。水文模型 由众多的物理模型如降雨入渗、蒸发散发、产流回流等具有特定物理意义的物 理模型构成2,其中大多数物理模型都包含一系列流域相关的待定参数,而对 水文模型进行参数率定就是通过确定当前所研究流域的待定参数值,最终完成 对当前流域的建模。因此对模型参数率定是水文模拟过程的重要组成局部,参 数选取的优劣直接影响到最终的模拟精度。而参数
24、率定由于计算量大、耗时 长,一直以来都是领域专家所必须面对的问题之一。早期研究水文模型时,参 数率定的方法主要以人工试错法3、自动优选参数法4为主。人工试错法是 根据以往积累的经验选取一组参数,代入水文模型进行模拟计算,得到河流径 流量的模拟值,与观测值比照,然后调整参数的取值,继续比照模拟值和观测 值,直到模拟值和观测值的误差在允许的范围,该组参数即为所求的最优参数 组。人工试错法受人为主观影响较高5,且率定效率较低,实用性较差。自动 优选参数法是通过设定计算机程序,使计算机根据设定的规那么选取参数进行率 定6。由于水文模型的运行依赖于流域内每个子流域内部众多物理模型的参数 取值,本身对水文模型具有约束性,水文模型中各个参数具有相对独立性,因 此自动优选法的应用存在一定困难。随着计算机科学以及人工智能的不断发 展,一些自动寻优算法7应用在参数率定中。由于复杂的水文模型的参数个数 很多(如SWAT模型有大约200个8),使得模型的计算量会随着参数维度的 增加,呈现指数型增长9,从而陷入“维数灾难” 10。因此,面对大规模流 域模拟,传统的计算方式已经难以适应当前的计算需求。高性能计算技术的发 展使超算领域进入了新的时代。CPU+GPU加速器混合异构架构在高性能计算机