CP-SAT:较高的num_search_workers值会增加解析时间

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CP-SAT:较高的num_search_workers值会增加解析时间相关的知识,希望对你有一定的参考价值。

亲爱的,我正在使用num_search_workers参数,但在Windows上使用or-tool 7.5发现了一个奇怪的行为。我在32核计算机上进行了以下测试,发现1个线程具有最佳性能。你知道为什么吗?

开始使用1个线程解决...在13.578秒内解决]

开始使用2个线程解决...45.832秒内解决]

开始使用4个线程解决...在53.031秒内解决了

开始使用8个线程解决...在62.013秒内解决了

开始使用16个线程解决...157.5秒内解决]

开始使用32个线程解决...在807.778秒内解决了

开始使用64个线程解决...386.252秒内解决了

该模型大致如下:认为self.suggested_decisions是BoolVars的字典问题是:

model.Add(sum(self.scenario.constants['scaling_factor']*self.suggested_decisions[r][0] for r in self.all_records)>=sum(sum(self.suggested_decisions[r][d]*(int(0.60*self.scenario.constants['scaling_factor']))for r in self.all_records) for d in self.all_decisions))
model.Add(sum(int(self.scenario.dataset['AMOUNT_FINANCED'][r])*self.suggested_decisions[r][0] for r in self.all_records)>=2375361256)
model.Add(sum(self.scenario.constants['scaling_factor']*self.scenario.dataset['Bad'][r]*self.suggested_decisions[r][0] for r in self.all_records)<=sum(self.suggested_decisions[r][0]*int(self.scenario.constants['scaling_factor']*0.038) for r in self.all_records))
model.Maximize(sum(int(self.scenario.dataset[\'AMOUNT_FINANCED\'][r])*self.suggested_decisions[r][0] for r in self.all_records))

亲爱的,我在玩num_search_workers参数,但在Windows上使用or-tool 7.5发现了一个奇怪的行为。我在32核计算机上进行了以下测试,发现1个线程具有...

答案

欢迎来到并行世界。

以上是关于CP-SAT:较高的num_search_workers值会增加解析时间的主要内容,如果未能解决你的问题,请参考以下文章

各专业平均成绩较高的学生

计算变量和约束 PuLP 和 CP-Sat

使用 CP-SAT 预测 300 万个布尔变量

CP-Sat 的 OR-Tools 优化

将 CP-SAT Solver 用于非线性目标函数

数据库占用cpu较高的查询