求解性能再创佳绩,杉数求解器COPT 7.1正式发布

砍柴网  •  扫码分享

近日,杉数最新版本求解器COPT 7.1正式发布,在国际权威第三方数学优化软件测评平台ASU测评榜上,再次展现出色的求解性能。其中线性规划最优顶点解和最优数值解双榜单稳居世界第一,二次规划榜单重回世界第一,混合整数规划求解器性能再获提升,与第一名差距缩减至44%。此外,新版本也正式支持GPU加速的一阶算法PDLP求解器。

一、 ASU测评榜表现再创佳绩,各求解模块性能持续领先

1 混合整数规划求解器性能进一步提升,持续缩减差距

混合整数规划求解器一直是杉数COPT团队的研发重心,COPT 7.1版本持续提升MIP求解性能,相较7.0版本提速17%,在MIP测评榜的3个子榜单中均排名第二,综合求解速度和第一名(欧美厂商Gurobi最新版V11.0)差距缩减至44%。除速度提升外,COPT也在不断攻克MIPLIB 2017测评集中有挑战性的问题,7.1版本可成功求解的问题数量由212个新增至220个。

求解性能再创佳绩,杉数求解器COPT 7.1正式发布

图1:MIP三个测评榜单:COPT 7.1均排名世界第二

求解性能再创佳绩,杉数求解器COPT 7.1正式发布

图2:COPT 各版本迭代MIP性能不断提升

注:

1. 数据来源:Benchmarks for Optimization Software by Prof. Hans Mittelmann ,数据获取时间:2024年2月9日。

2. “未解出数量”表示在MIPLIB 2017算例集(240个算例)中,COPT每次更新版本在2小时时间限制内未能成功解出的问题数量。

3. “加速比”表示相较于V2.0版本,COPT每次更新版本的相对求解速度。

2 二次规划求解模块重回 测试 榜首, 赶超欧美厂商

二次规划在 金融 、量化 投资 等领域有着重要且广泛的应用,杉数求解器COPT 7.1求解性能获得显著提升,继续取得测评榜冠军,求解速度相比Gurobi(最新版V11.0)赶超59%,并且也是该榜单上成功求解全部42个算例的求解器。至此,在凸二次规划的连续和离散型两个测评榜单上,杉数COPT均位列第一。

求解性能再创佳绩,杉数求解器COPT 7.1正式发布

图3:Convex Continuous QP & Discrete QP榜单:COPT 7.1均排名世界第一

3 线性规划最优顶点解和最优数值解均继续稳居 榜单 第一,其他求解模块持续领先

图4:LP-最优顶点解&最优数值解榜单:COPT 7.1均排名世界第一

杉数求解器C OPT 7.1支持求解的问题类型及最新性能测评结果汇总如下表所示:

注:上表数据来源于美国亚利桑那州立大学Hans Mittelmann教授维护的国际权威数学优化软件测评平台,2024年2月9日的最新测评结果。 

二、 支持GPU的一阶算法求解器发布,突破超大规模问题求解能力边界

COPT 7.1中根据COPT葛冬冬教授团队和芝加哥大学鲁海昊教授、斯坦福大学叶荫宇教授的最新科研成果,正式添加了支持GPU的一阶算法求解器,将PDLP算法的全部计算部件改造为可完全在GPU上运算,以充分利用GPU多核心、高并行等优势,为很多原本因单机内存限制等原因难以求解的问题提供新的可能性。值得一提的是,对于一些规模较大的问题,尽管经典算法已经能够求解,但GPU求解器也往往可以实现明显加速,例如将“Zib03”这一问题的求解时间从CPU的小时级提升到了分钟级。

COPT的GPU一阶算法求解器目前可以在Windows和Linux-x86平台上运行,支持对线性规划问题进行求解。用户需要首先选择求解算法为PDLP(通过设置优化参数:“LpMethod”为6),COPT 会尝试检测能否正常加载所需 CUDA 函数库,以及是否存在支持 GPU的显卡,如以上情况均满足,则会开启GPU求解模式。(可前往NVIDIA官网下载最新版CUDA安装包)。

同时,COPT团队也与国内GPU芯片厂商展开了紧密合作,并协同进行库函数的开发和提升,预期将在不久的未来,推出全国产的软硬一体化CPU/GPU混合架构新版高效数学优化求解器。

以LP公开测评集中“thk_63”这一算例为例,COPT 7.1调用支持 GPU的PDLP算法求解日志如下图所示,与COPT使用内点法找到最优数值解所需时间相比,PDLP算法利用GPU计算优势可显著缩短求解时间。

注:在求解日志输出的信息中,PDLP算法实际从第21.63s开始调用求解,此前消耗的是预求解以及调用CUDA库函数获取机器GPU型号等信息的时间,因此,该算法找到最优数值解的时间是68.05s。

此外,COPT最新版本还开放GPU计算相关的优化参数供用户自定义设置(具体详见《杉数求解器用户手册》参数章节介绍)。

* GPUMode:指定GPU 求解器的使用模式

* GPUDevice:当运行机器有多个 GPU 存在的情形下,可以使用指定编号的 GPU

* PDLPTol:一阶算法(PDLP)的收敛容差

随意打赏

提交建议
微信扫一扫,分享给好友吧。