Gurobi计算密集型,默认情况下它将尝试使用尽可能多的核心。当解决多个模型在同一台机器上的同时,必须注意不over-subscribe核心的CPU,这将导致慢和变量运行时间。例如,如果你有一个8核心机和运行4工作和不限制工作线程的数量,然后那些4工作最终可能会共享相同的核心,我们正试图避免的。但是如果你限制线程= 2
每个4的工作,操作系统可能会分配在不同的双核心的工作。
所以总结:
- 的
线程
参数告诉Gurobi线程的最大数量使用当解决一个模型——操作系统分配线程处理器核心。 - 的
JobLimit
参数告诉计算服务器开始排队工作在指定数量的工作正在运行。 - 如果使用工作线程的数量同时运行在相同的计算服务器的数量超过机器的核心,那么这将大大减缓由于订阅,而核心解决的时间。
确定适当的值线程
和JobLimit
你需要测试模型来发现解决问题的最佳数量的核心。一些模型只需要一个核心。一些受益于32内核。测试会告诉你这一点。
你永远不会想要设置的工作限制大量如100,除非你有一个100 -核心机和限制线程1。否则,这将很有可能使所有的工作需要更长的时间比如果你已经解决了在序列。
评论
0评论
请登录留下你的评论。