【问题标题】:Use of threads in SCIPSCIP 中线程的使用
【发布时间】:2019-04-05 14:15:42
【问题描述】:

在 SCIP 的参数列表中,我看到三种类型的线程使用参考:

  • lp/threads(用于求解 LP 的线程,在使用 SoPlex 时无关紧要,根据this 问题)。

  • parallel/{min, max}threads(并行求解期间的线程数)。

  • concurrent/*(与并发模式下线程使用相关的参数)。

我的问题是:当使用默认安装时,SCIP 中的线程是如何使用的? parallel/{min, max}threads 参数是否仅与并发求解器相关?如果我不打开并发求解器,SCIP 是否会使用可用线程来并行求解分支定界子问题?

提前致谢!

【问题讨论】:

    标签: parallel-processing mathematical-optimization scip


    【解决方案1】:

    SCIP 参数空间的“parallel/”和“concurrent/”部分中的所有参数只影响并发模式。

    SCIP 默认是单线程的,但可以使用UG-framework 或通过启用并发模式进行并行化。

    【讨论】:

    • 那么如何在windows上进行呢? UG框架只支持linux,那么如何开启并发模式呢?此外,根据基准测试plato.asu.edu/ftp/milp.html,使用 FiberSCIP 时存在性能下降 - 8 线程解决问题比 1 线程慢。您也可以对此发表评论吗?
    【解决方案2】:
    1. 并发优化由交互式 shell 中的“concurrentopt”或 C API 中的方法“SCIPsolveConcurrent()”启动。使用的线程数可以通过parallel/minnthreads 和parallel/maxnthreads 来控制。如果设置了严格的内存限制,那么线程数可能会进一步减少。

    2. 当您查看 Hans Mittelmann 网页上的未缩放求解时间时,您会发现 FiberSCIP 实现了轻微的加速。您说会出现减速的说法可能是因为最佳求解器的相对性能更差。

    一般来说:对于这两种并行化方案,并行化是否具有提高性能的潜力高度依赖于实例。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-16
      • 1970-01-01
      相关资源
      最近更新 更多