ortools linear_solver scip 加速 - 多线程?
ortools linear_solver scip speed up - multithreading?
我有以下代码:
from ortools.linear_solver import pywraplp
SOLVER = pywraplp.Solver.CreateSolver('SCIP')
...
SOLVER.solve()
它执行了很长时间 - 所以为了优化它,我尝试:SOLVER.SetNumThreads(8)
在与 .solve()
一致之前 - 但它根本不起作用。
所以我有以下问题:
- 我认为多线程在这里是一个唾手可得的成果,所以怎么能
我让它工作 - 我们正在谈论常规 python shell,在
特别是在 jupyter notebook 上(但我们也可以 运行 这个作为
python script.py
- 我只是看不出为什么它不会 运行
jupyter,但 运行 作为脚本)。
- 有没有其他的加速方式
起来了吗?也许有些不太明显?
警告
我是数据工程师,我认为数据科学家在那里所做的一切都是完美的 - 所以我正在寻找如何使用 ortools
更快地工作而不是如何用更快的工具替换它们的建议 ;)
所以,
- 多线程对于 SCIP 而言并非唾手可得的成果。你能达到的最好成绩是 2 倍。
- 除了linux,它应该被编译进去,因为某些原因,用于构建它的 cmake 命令似乎不起作用。
- 如果您的问题是纯整数问题,您可以尝试 'sat' 求解器。它受益于多线程(8 个工作线程或更多)。
我有以下代码:
from ortools.linear_solver import pywraplp
SOLVER = pywraplp.Solver.CreateSolver('SCIP')
...
SOLVER.solve()
它执行了很长时间 - 所以为了优化它,我尝试:SOLVER.SetNumThreads(8)
在与 .solve()
一致之前 - 但它根本不起作用。
所以我有以下问题:
- 我认为多线程在这里是一个唾手可得的成果,所以怎么能
我让它工作 - 我们正在谈论常规 python shell,在
特别是在 jupyter notebook 上(但我们也可以 运行 这个作为
python script.py
- 我只是看不出为什么它不会 运行 jupyter,但 运行 作为脚本)。 - 有没有其他的加速方式 起来了吗?也许有些不太明显?
警告
我是数据工程师,我认为数据科学家在那里所做的一切都是完美的 - 所以我正在寻找如何使用 ortools
更快地工作而不是如何用更快的工具替换它们的建议 ;)
所以,
- 多线程对于 SCIP 而言并非唾手可得的成果。你能达到的最好成绩是 2 倍。
- 除了linux,它应该被编译进去,因为某些原因,用于构建它的 cmake 命令似乎不起作用。
- 如果您的问题是纯整数问题,您可以尝试 'sat' 求解器。它受益于多线程(8 个工作线程或更多)。