首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Choco库支持并行编程吗?

Choco库支持并行编程吗?
EN

Stack Overflow用户
提问于 2021-07-22 15:23:00
回答 1查看 67关注 0票数 0

我的约束问题变得太复杂了,我想知道我用来建模和解决这个问题的Choco框架是否支持类似多线程的并行编程方法。

最初,我认为默认情况下会发生这种情况,但是在运行top -i时检查CPU使用率显示它始终保持在100%左右,所以我假设不会发生并行化。

我知道Choco中的ParallelPortfolio类,但这不是我想要的,因为我已经实现了一种自定义搜索策略,而这正是我想要使用多线程的策略。

EN

回答 1

Stack Overflow用户

发布于 2022-05-11 07:43:15

在约束编程中,并行编程大约有三种方式。

  1. 并行于约束的传播:要传播的约束分布在CPU/核之间。在这种情况下,主要的瓶颈来自变量的域同步。您还需要找到一种相关的方法来在内核之间分发约束传播。这是一种用Choco求解器进行研究的方法,但没有成功,方法是abandoned.
  2. Paralleling搜索空间探索:搜索空间被划分为子空间,由CPU/核负责探索。在这种情况下,主要问题是复制(子)模型的能力。Choco解决程序管理回溯的方式是基于跟踪(而不是复制),因此不能直接适应复制。这可以使用序列化framework.
  3. Paralleling (搜索空间(2))来完成:每个CPU/核心负责一个模型,并定义一个特定的搜索策略。在这种情况下,复制问题被委托给用户(因为它纯粹是一个Java问题),模型(实际上是求解者)开始了一个竞赛,每次找到解决方案时,都在模型之间共享信息。这是ParallelPortfolio在Choco-solver.

中的原理。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68487483

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档