【问题标题】:ortools linear_solver scip speed up - multithreading?ortools linear_solver scip 加速 - 多线程?
【发布时间】:2021-03-23 11:58:14
【问题描述】:

我有以下代码:

from ortools.linear_solver import pywraplp
SOLVER = pywraplp.Solver.CreateSolver('SCIP')
...
SOLVER.solve()

它执行了很长时间 - 所以为了优化它,我尝试:SOLVER.SetNumThreads(8) 在与 .solve() 一致之前 - 但它当时根本不起作用。

所以我有以下问题:

  1. 我认为多线程在这里是一个容易实现的目标,那么如何 我让它工作-我们正在谈论常规的python shell,在 特别是在 jupyter notebook 上(但我们也可以将其运行为 python script.py - 我只是看不出它无法运行的原因 jupyter,但作为脚本运行)。
  2. 有没有其他方法可以加快速度 起来了吗?也许有些不太明显?

警告 我是数据工程师,我认为数据科学家在那里所做的一切都是完美的 - 所以我正在寻找建议如何使用 ortools 更快地工作,而不是如何用更快的工具替换它们;)

【问题讨论】:

    标签: python or-tools


    【解决方案1】:

    所以,

    1. 多线程对于 SCIP 来说并不是一个容易实现的目标。您可以达到的最好成绩是 2 倍。
    2. 它应该被编译,除了 linux,由于某种原因,构建它的 cmake 命令似乎不起作用。
    3. 如果您的问题是纯整数,您可以尝试使用“sat”求解器。它受益于多线程(8 个或更多工作线程)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-05-17
      • 1970-01-01
      • 1970-01-01
      • 2012-04-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多