50分发
2025 年 6–7 月,GAMS 连续发布了 50.1.0(Major) 与 50.2.0(Minor) 两个版本,累计带来 120 余项更新,涵盖核心引擎、求解器、开发工具、API、模型库与安装体验等维度。本文将按模块为您梳理全部关键变化,帮助研发团队迅速定位升级价值与迁移注意事项。
1. 版本节奏与许可证变化
版本 |
发布日期 |
性质 |
亮点速览 |
50.1.0 |
2025-06-18 |
Major |
新增 Python 3.12.10、网络许可证本地服务器、CPU cgroup 资源感知 |
50.2.0 |
2025-07-14 |
Minor |
修复 50.1.0 中的许可证与日志缺陷,更新 COPT 7.2.9、GAMS Studio 1.21.3 |
2. GAMS 核心系统
2.1 语言与编译器
-
计划移除 =C= 方程类型;如有疑问请联系 support@gams.com。
-
新增语法 MCP 模型声明支持 equation-variable lists,简化复杂均衡模型编写。
-
下一代编译器 已支持未定义域集合的新语义,可通过 $set CompilerPreview 1 提前体验。
2.2 命令行与选项
-
memoryManager 新增可选内存管理器,针对大规模模型内存瓶颈优化。
-
ECLogLine 可抑制嵌入式代码初始化日志,减少 CI/CD 噪声。
-
PreviousWork 生成的 workfile 向下兼容至 49 版,便于团队协作。
2.3 许可证与部署
-
网络许可证 支持本地 License Server 部署,使用 gamsgetkey --get-certificate 一键下载证书。
-
容器/云友好 对于 cgroup 限制的环境(K8s、SLURM),将读取 cgroup 而非物理硬件,避免误判资源。
-
系统后缀 新增 %gams.isNetworkLicense%,可在模型内判断许可证类型。
3. Embedded Code Facility
语言 |
关键更新 |
Python |
升级至 3.12.10;gams.printLog() 支持非 str 类型;移除 GMSPYTHONMULTINST 环境变量。 |
GAMS |
修复 symbol<[=]embSymbol.dimX> 右侧符号未正确加载的问题。 |
Connect YAML |
新增 $onEmbeddedCode yamlFile=xxx,可直接引用外部 Connect 配置,提升可维护性。 |
4. GAMS Connect 数据管道
-
ExcelWriter
-
GAMSWriter
-
通用改进
5. 求解器生态
5.1 新增/升级库
求解器 |
版本 |
亮点 |
BARON |
25.3.19 |
整数预处理、割平面生成显著增强。 |
CONOPT |
4.37 |
共轭梯度选择策略动态化,超基变量多时性能提升。 |
CPLEX |
22.1.1 |
支持 solvefinal 阶段的 Indicator Constraint;修复 lazy cut 回调未生效缺陷。 |
HiGHS |
1.10.0 |
MIP 预处理新增 lifting for probing;Linux/Win 支持 NVIDIA GPU 加速 cuPDLP-C。 |
MOSEK |
11.0.22 |
性能例行提升。 |
XPRESS |
45.01.01 |
新增 Pre-root 并行启发式阶段,可在求解根松弛前并行调用多种启发式;新增 8 个调优参数(preRootWorklimit 等)。 |
5.2 二次/非凸 QP 接口
6. 开发工具链
6.1 GAMS Studio 三连升
-
1.21.2 → 1.21.3
-
代码编辑器支持 Ctrl+Click 跳转 yamlFile,实现 Connect YAML 与模型一键联动。
-
Profiler 可视化:在编辑器边栏实时展示执行耗时,性能瓶颈一目了然。
-
网络许可证 支持会话级临时 checkout,多人共享场景更友好。
-
修复 macOS 窗口大小无法恢复、Windows 10 集成帮助崩溃等 10+ UI 缺陷。
6.2 命令行工具
-
GDXDIFF / GDXDUMP / GDXMERGE 正式支持 Windows 超长路径(>260 字符)。
-
MPS2GMS 升级内置 HiGHS 1.10.0 MPS 解析器,错误日志更精炼。
-
POSIX 工具链 全面更新(gawk 5.3.0、coreutils 8.3.2 等),行为与原生 Linux 对齐;如遇到兼容性问题,可回滚 gbin.old.zip。
7. API 与语言绑定
语言 |
主要变化 |
C++ |
GAMSWorkspace 构造性能提升。 |
GDX |
7.11.16 大幅优化 gdxOpenRead 性能,UEL 多时内存分配次数显著减少。 |
Java |
Java 11+ API 废弃 finalize 方法,改为依赖 GC 自动释放;临时目录清理策略更智能。 |
Python |
计划未来移除 Python 3.9、numpy 1、以及 pandas < 2.2.2 的支持,请提前升级。 |
Matlab |
新增 MemoryManager、ECLogLine 选项;支持 ModelInstance.isDisposed 检测对象状态。 |
8. 模型与测试库
-
新增测试模型
-
gdxlongpaths.gms:验证超长路径兼容性。
-
mcp18/19.gms:测试 MCP 新增语法。
-
embpy14.gms:验证 ECLogLine 参数。
-
更新示例
9. 升级建议与迁移清单
场景 |
建议动作 |
使用 =C= 方程 |
立即评估影响,联系 GAMS 支持获取迁移方案。 |
网络许可证 |
升级后使用 gamsgetkey --get-certificate 重新拉取证书,并验证 cgroup 场景。 |
Python / Java 集成 |
检查运行时版本,确保 Python ≥3.10、Java 11+;升级 numpy / pandas 至受支持版本。 |
二次规划模型 |
试用 qextractdenseswitchfactor 调优 XPRESS/CPLEX 等求解器的 Q 矩阵提取效率。 |
Windows 脚本 |
检查是否依赖反斜杠路径或通配符;必要时回滚 POSIX 工具或改为 Unix 风格脚本。 |
10. 结语
GAMS 50 系列不仅是一次“技术债清理”,更是面向云原生、数据科学融合与异构硬件的里程碑。无论是 BARON/XPRESS 的求解器级飞跃,还是 Studio 的可视化 Profiler、GPU 加速的 HiGHS,都为优化团队提供了更现代的研发体验。建议所有用户尽快在测试环境完成兼容性验证,把握 5%+ 的性能红利与全新功能窗口。
如需完整变更日志,请访问官方文档: https://www.gams.com/latest/docs/RN_50.html
在线留言
尊敬的客户朋友,如您有任何意见建议,请通过下表反馈给我们,我们会尽快与您联系。
|