当前位置: 首页 > news >正文

Gurobi 并行计算的一些问题

最近尝试用 gurobi 进行并行计算,即同时用多个 cpu 核计算 gurobi 的 model,但是发现了不少问题。总体来看,gurobi 对并行计算的支持并不是那么好。

gurobi 官方对于并行计算的使用在这个网址,并有下面的大致代码:

import multiprocessing as mp
import gurobipy as gpdef solve_model(input_data):with gp.Env() as env, gp.Model(env=env) as model:# define modelmodel.optimize()# retrieve data from modelif __name__ == '__main__':with mp.Pool() as pool:pool.map(solve_model, [input_data1, input_data2, input_data3])

从官方的回复以及自己的一些检索,发现以下几个问题:

  • gurobi 模型并不是线程安全的,模型本身不能作为并行计算中目标函数中的参数,因为 gurobi 模型不能 pickle,即不能序列化
  • 使用并行计算时,意味着每个进程都单独运行当前 .py 脚本文件
  • 因此,若要正确运行并行计算,gurobi 的模型总是在目标函数内部新建,或者在目标函数之前已经全局定义了(根据上一条,也相当于重新新建了gurobi 模型)。但有的时候,我们可能只需要通过并行计算中变化模型中的一些系数值并分别求解,这种重新新建模型的方式,反而会降低运算速度
  • python 这两年新出的 multiscenario 可以对模型中系数的多个可能值一起求解。但它本质上是一个混合整数规划模型 MIP,虽然能够得到不同 scenario 对应的模型解,但是更具体的约束条件的对偶值就无法得到了
  • cplex 似乎也有类似的问题

目前看到的一些 gurobi 或 cplex 正确运行并行计算的例子,基本都是在目标函数中重新新建模型,或者将原模型的一些参数文件传递到目标函数中,仍然新建模型。

因此,对于求解器的并行计算,目前来看,没有看出相比串行计算有太大优势。真要实现规划模型的并行计算,估计要深入修改求解器模型的源代码。官方没有意愿将模型对象支持 pickle,估计是因为可能会损失模型的其他功能吧。

http://www.lryc.cn/news/543814.html

相关文章:

  • 堆、栈、最小堆
  • 基于 Spring AI 的 HIS 系统智能化改造
  • React进阶之前端业务Hooks库(五)
  • 常见锁类型介绍
  • Java中,Scanner和System.out超时的解决方法及原理
  • 一种数据高效具身操作的原子技能库构建方法
  • 云创智城YunCharge 新能源二轮、四轮充电解决方案(云快充、万马爱充、中电联、OCPP1.6J等多个私有单车、汽车充电协议)之新能源充电行业系统说明书
  • JVM垃圾回收器深度底层原理分析与知识体系构建
  • 30.[前端开发-JavaScript基础]Day07-数组Array-高阶函数-日期Date-DOM
  • IP、网关、子网掩码、DNS 之间的关系详解
  • 【Day50 LeetCode】图论问题 Ⅷ
  • 结构体介绍及内存大小分配问题
  • halcon 条形码、二维码识别、opencv识别
  • Vue框架的使用 搭建打包 Vue的安全问题(Xss,源码泄露)
  • Java+SpringBoot+Vue+数据可视化的音乐推荐与可视化平台(程序+论文+讲解+安装+调试+售后)
  • day2 - SpringBoot框架开发技术
  • Flash-03
  • 新建菜单项的创建之CmpGetValueListFromCache函数分析
  • 【Word2Vec】Skip-gram 的直观理解(深入浅出)
  • 在MacOS上打造本地部署的大模型知识库(一)
  • (21)从strerror到strtok:解码C语言字符函数的“生存指南2”
  • DeepSeek推出DeepEP:首个开源EP通信库,让MoE模型训练与推理起飞!
  • 1.2 Kaggle大白话:Eedi竞赛Transformer框架解决方案02-GPT_4o生成训练集缺失数据
  • 数据结构-顺序表专题
  • docker和containerd从TLS harbor拉取镜像
  • kafka-关于ISR-概述
  • el-input实现金额输入
  • C++11智能指针
  • 安装Git(小白也会装)
  • 驭势科技9周年:怀揣理想,踏浪前行