用于混合整数线性规划的pyomo和cplex并行计算

时间:2017-09-22 02:16:12

标签: parallel-processing cplex pyomo

我使用pyomo进行混合整数线性规划模型。我在pyomo中调用cplex来解决模型问题。我解决的问题很大,需要并行计算。

我应该在pyomo或cplex中设置并行吗?

在pyomo中,我发现了这种语法,但似乎无效。

solver_manager = SolverManagerFactory('pyro')

如果在cplex中设置并行,如何修改此语法?添加调用并行计算的东西?

result = opt.solve(inst, tee=True, warmstart=True)

我不知道继续哪种方式。谢谢你的帮助!

最佳, 雷

1 个答案:

答案 0 :(得分:1)

默认情况下,CPLEX应该已经在使用并行线程。例如,在global thread count参数的文档中,我们有:

  

当此参数处于默认设置0(零)时,和您的   应用程序不包含回调或仅包含信息回调,   CPLEX可以使用所有可用的线程;也就是说,最多32个线程或   机器的核心数量,以较小者为准。如果你的   机器提供超过32个线程,你可以利用它们   增加此参数的值。

在pyomo文档here中,它说:

  

如果解算器出现问题(即Pyomo输出后)   "应用Solver"),使用该选项通常很有帮助    - stream-solver导致求解器输出显示而不是被捕获。

如果这样做,您应该会在屏幕上看到CPLEX日志输出。寻找这样一条线:

  

并行模式:确定性,最多使用8个线程。

如果没有,也许它会给你一个线索。