并发L-BFGS异构率定算法设计与实现.docx

上传人:lao****ou 文档编号:147385 上传时间:2023-04-18 格式:DOCX 页数:13 大小:28.43KB
下载 相关 举报
并发L-BFGS异构率定算法设计与实现.docx_第1页
第1页 / 共13页
并发L-BFGS异构率定算法设计与实现.docx_第2页
第2页 / 共13页
并发L-BFGS异构率定算法设计与实现.docx_第3页
第3页 / 共13页
并发L-BFGS异构率定算法设计与实现.docx_第4页
第4页 / 共13页
并发L-BFGS异构率定算法设计与实现.docx_第5页
第5页 / 共13页
亲,该文档总共13页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《并发L-BFGS异构率定算法设计与实现.docx》由会员分享,可在线阅读,更多相关《并发L-BFGS异构率定算法设计与实现.docx(13页珍藏版)》请在第一文库网上搜索。

1、并发L-BFGS异构率定算法设计与实现田在荣李强聂宁明全婷1并发L-BFGS算法传统的LBFGS算法原理是输入组参数(八.八一”)(为参数的个数)及其对应的目标函数值/(工).通过对函数梯度值、海森矩阵的模拟值以及函数下降方向(负梯度方向)的计算采用线搜索策略使算法具有全局收敛性。经过多次迭代求解达到循环终止条件后得到最优参数组(工;工,工;)及其对应的最优值为了适应多组参数同时进行寻优操作的要求需要对传统算法做出改进,使得多组参数可以并发执行,这样就得到了并发L-BFGS算法。其原理是同时输入多组参数X.i = l2.其中Xj = Qi.*.2i.r,.)6为并发执行的组数,为每组的参数个数

2、.下同)以及每组参数对应的目标函数值/,经过多次迭代求解并发执行H至其中一组或多组参数达到各自的循环终止条件后可得到m组最优参数X;以及对应的最优值/;并发L-BFGS算法的目标函数可表示为/,(X) ,设X,为第i组迭代4次筮=12.下同)后计算得到的/NX)极小值点的估计值.在X,处进行泰勒展开/(X)=/,(X*)4-V/1(X*) (X X)+0.5(X, Xm)t D/,(x(X,-X“)(1)其中,令gi=T/,(XQ为笫i组执行的梯度向量/=V2/,(x,)为第i组计算的海森矩阵。记./).*. J.* =+ l -gi.k .* = X,.4 + I Xi.k .由拟牛顿条件,

3、得 B+1 =%,*/$-,Dj.a+i it /y i,k 9要得到并发L-BFGS算法.苜先需要DFP算法并发执行。传统的DFP算法采用D计算,但并不直接计算D而是计算每一步D的增量来间接求D,因为一般上一步的中间结果对F一步的计算仍有价值执行到第i组时则(3)通常取单位矩阵L ,计算的关键便是推导出第i组AD得y t.ky i.k而并发BFGS算法与并发DFP算法类似.只是采用B近似“。BFGS算法的并发实现的限终公式为8i.i(1)与并发DFP算法相比,BFGS算法的并发实现只是D互调。对并发BFGS算法的海森矩阵的近似矩阵使用Sherman-Morrison公式则B,J+i和的关系为

4、(5)(6)TTTy;.凡由前面假设可知所以式(5)为TT,、 r $八上力、.、z r yi.kS.k/),+】=(/. I )“.A(L -TV )+3$,.*yg,*相比1万(6力:法11下(占算法不再存储完整的/),. 因为比较大.il算较为复杂。根据前面的推导可知.D“只与刀八。以及并发执行的第i组序列国.力和(九力有关。即知道了后者也可求得前者。进一步近似.只需要:序列$“和,”的最近的,个值.这样计算机内存中只需要存储这两个序列即可.(7)计算到第i组时.最终的递推关系为其中标Summary:针对分布式水文模型在水文模拟参数率定过程中计算与收敛速度过慢的问题,提出一种面向异构平台

5、的水文模拟并发参数率定方法。对传统的L-BFGS算法进行并发式改造使其结构适应并行计算的率定需求;对HIMS水文模型进行异构移植,使整个水文模型以多线程的形式并发运行于协处理器端;以拉萨河流域为例,在Intel+Nvidia GPU与国产AI加速器的双异构平台部署模型与测试算例。测试结果表明,并发L-BFGS异构率定算法适用于当前主流的“处理器+协处理器”架构,并能够得到较好的率定效果。Key:水文模拟;参数率定;HIMS;异构移植:TP 338.6文献标志码:A:1006-1037 (2021) 03-0043-08水文模型是对大自然中复杂的水文现象在计算机中的抽象化和概念化的展现1,是人们

6、认识复杂的水循环运动过程和机制下的有效方法和手段。水文模型由众多的物理模型如降雨入渗、蒸发散发、产流回流等具有特定物理意义的物理模型构成2,其中大多数物理模型都包含一系列流域相关的待定参数,而对水文模型进行参数率定就是通过确定当前所研究流域的待定参数值,最终完成对当前流域的建模。因此对模型参数率定是水文模拟过程的重要组成部分,参数选取的优劣直接影响到最终的模拟精度。而参数率定由于计算量大、耗时长,一直以来都是领域专家所必须面对的问题之一。早期研究水文模型时,参数率定的方法主要以人工试错法3、自动优选参数法4为主。人工试错法是根据以往积累的经验选取一组参数,代入水文模型进行模拟计算,得到河流径流

7、量的模拟值,与观测值对比,然后调整参数的取值,继续对比模拟值和观测值,直到模拟值和观测值的误差在允许的范围,该组参数即为所求的最优参数组。人工试错法受人为主观影响较高5,且率定效率较低,实用性较差。自动优选参数法是通过设定计算机程序,使计算机根据设定的规则选取参数进行率定6。由于水文模型的运行依赖于流域内每个子流域内部众多物理模型的参数取值,本身对水文模型具有约束性,水文模型中各个参数具有相对独立性,因此自动优选法的应用存在一定困难。随着计算机科学以及人工智能的不断发展,一些自动寻优算法7应用在参数率定中。由于复杂的水文模型的参数个数很多(如SWAT模型有大约200个8),使得模型的计算量会随

8、着参数维度的增加,呈现指数型增长9,从而陷入“维数灾难” 10。因此,面对大规模流域模拟,传统的计算方式已经难以适应当前的计算需求。高性能计算技术的发展使超算领域进入了新的时代。CPU+GPU加速器混合异构架构在高性能计算机中逐渐成为新的发展热点11,如2019年世界超级计算机500强(T0P500)榜首一美国的Summit超算使用的是CPU+GPU混合异构架构。使用高性能异构计算方式来解决工程中遇到的算力匮乏问题已经成为主流,而对于水文模拟参数率定这种具有天然并行性的高计算需求的应用12,如何利用异构计算的强大算力解决计算需求,已经成为当前该领域亟待解决的问题之一。在超算平台上进行水文计算,

9、必须要发展相应的异构算法,高效利用超算平台的计算资源。本文选取具有较强收敛能力的L-BFGS算法作为基础率定算法13,挖掘其搜索方向及步长的选取原理14,在保留算法总体搜索方式的基础上对其进行并发式改造,使算法具备并发处理多个搜索线路的能力15。本文选取适用于中国大多数大江大河及各种流域的HIMS (hydroinformatic modeling system)水文模型16作为主要参考模型,通过对模型本身计算热点的分析,确定适合协处理器计算的部分,并对这一部分进行异构化改造,使得模型的实际运行由CPU端发起,通过各种CPU和协处理器间的数据拷贝,使计算热点全部运行于协处理器,利用协处理器强大

10、的并发计算能力,在保证计算精度的同时大幅减少计算时间。最后对两种目前较为常见的异构平台做了相应的算法测试与对比。2并发L-BFGS算法在参数率定中的应用2.1 水文模型参数率定的评价依据应用水文模型模拟水文工作时,关键的一项就是寻找水文模型的最优参数组,水文模型模拟的精度很大程度上取决于模型中参数组的选择。参数率定的目标是为待研究流域的各个子流域寻找到一组“最优”的参数组,使得应用该参数组进行水文模拟后的模拟值和实际观测值的差距最小。通常,参数率定结果的优劣使用Nash (Nash-Suttcliffe,后面简称Nash)系数作为判定依据。Nash系数越接近于1,模拟值和观测值差距越小。Nas

11、h系数为其中,Q。表示观测值,Qm表示模拟值,Qt表示在第t时刻的某个值。2.2 L-BFGS算法的并发执行差商法求导的步骤如下:将L-BFGS算法所需要的m组初始值、目标函数值和初始值对应的梯度值代入算法中,就可以通过多次迭代找到最优的m个Nash系数。2.3 HIMS模型的异构移植HIMS模型是国内自主研发的流域分布式水文模型,具有完全的知识产权。主要应用在流域内评价、规划和管理水资源,以及处理与水相关的生态环境保护工作17,如洪水预报、管理水污染与侵蚀以及气候变化等。HIMS具有多源信息融合、数字流域分析、分布式模拟以及模型定制等功能18,可以针对国内各个流域不同的水文尺度、流域空间非均

12、一性19以及不同的自然和人文环境进行水循环模拟、参数率定等水文工作。目前,HIMS模型已应用并部署于国内外众多流域的水文模拟过程中,并取得了良好的应用效果。HIMS模型最初是面向CPU端开发,并运行于PC机环境,对于大规模异构计算,需要对HIMS整体架构进行调整。根据目前的协处理器体系结构,原HIMS模型中用于读取原始数据而开辟的存储空间需要在计算前全部转移到device端,并在计算结束后将Nash系数作为结果传回host端。传入的数据除原始数据如降雨量、最高最低温度、海拔、流域面积等,还有已经在host端生成的由m 组 n 维参数组成的数组(xl, 1, xl, 2, , xl, n, ,

13、xm, 1, xm,2, xm, n),并在device端使用程ID作为标识将参数组分割至m个不同线程。HIMS模型的核心是产流和汇流(即马斯京根过程)两大部分,从CPU到协处理器的移植过程包括将涉及的函数定义成device,原始模型中所有的global类型变量、指针全部通过核函数传入device,模型内部用到的所有变量的内存大小需调整为原先的m倍。计算完之后,使用得到的m组模拟值和实测值通过计算得出m个Nash系数并传出。图2和图3分别为HIMS原始工作流程和HIMS在异构平台工作流程。2.4并发L-BFGS算法的异构实现并发L-BFGS算法在参数率定中的并发异构实现是通过CPU和GPU协同

14、工作的。首先,CPU同时通过随机函数产生m组n维参数(xl, 1, xl, 2,,xl,n,,xm, 1, xm, 2,,xm, n),将m组n维参数传入GPU中,按照线程号平均分成m组,每组分别运行HIMS水文模型,得到每组对应的Nash系数,然后将m组参数及其对应的Nash系数取反传入CPU端,通过差商求导模拟出每组参数每个位置的梯度,将这些变量代入优化算法经过多次迭代,分别判断每组参数是否达到迭代终止条件,最后得到m个最优参数组和最优Nash系数。L-BFGS算法并发异构实现的基本流程如图4所示。3数值实验本节对HIMS模型的异构移植以及并发L-BFGS算法在水文模拟具体参数优化过程进行

15、数值实验,并比较和分析数值实验结果,探讨异构移植的效率和并发性能以及并发L-BFGS算法在参数率定中的具体应用。运行环境为配置V100的GPU服务器和配置国产AI加速器的国产先进计算平台,实验数值均为运行5次计算得出的平均值。(1)单节点内国产AI加速器和CPU在参数率定中的并发性能测试。实验设置参数组个数设置为 32 768 (1 024X32)、65 536 (1 024X64)和 13 1072 (1024X128) o由表1,国产AI加速器程序和CPU程序相比,单进程运行时,加速比在125以上,加速效果较为理想,且随着参数组规模增加,加速比逐渐升高,其中参数组个数从65 536增加到131 072的计算时间从102. 59 s增加到202. 69 s,说明算例在65 536时基本达到国产AI加速器的满载状态,这

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 应用文档 > 汇报材料

copyright@ 2008-2022 001doc.com网站版权所有   

经营许可证编号:宁ICP备2022001085号

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有,必要时第一文库网拥有上传用户文档的转载和下载权。第一文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第一文库网,我们立即给予删除!



客服