我使用pyomo进行混合整数线性规划模型。我在pyomo中调用cplex来解决模型问题。我解决的问题很大,需要并行计算。
我应该在pyomo或cplex中设置并行吗?
在pyomo中,我发现了这种语法,但似乎无效。
solver_manager = SolverManagerFactory('pyro')
如果在cplex中设置并行,如何修改此语法?添加调用并行计算的东西?
result = opt.solve(inst, tee=True, warmstart=True)
我不知道继续哪种方式。谢谢你的帮助!
最佳, 雷
答案 0 :(得分:1)
默认情况下,CPLEX应该已经在使用并行线程。例如,在global thread count参数的文档中,我们有:
当此参数处于默认设置0(零)时,和您的 应用程序不包含回调或仅包含信息回调, CPLEX可以使用所有可用的线程;也就是说,最多32个线程或 机器的核心数量,以较小者为准。如果你的 机器提供超过32个线程,你可以利用它们 增加此参数的值。
在pyomo文档here中,它说:
如果解算器出现问题(即Pyomo输出后) "应用Solver"),使用该选项通常很有帮助 - stream-solver导致求解器输出显示而不是被捕获。
如果这样做,您应该会在屏幕上看到CPLEX日志输出。寻找这样一条线:
并行模式:确定性,最多使用8个线程。
如果没有,也许它会给你一个线索。