SCIP中线程的使用
Use of threads in SCIP
在SCIP的参数列表中,我看到三种线程使用的引用:
lp/threads
(根据this问题,用于求解LP的线程,在使用SoPlex时无关紧要)。
parallel/{min, max}threads
(并行求解期间的线程数)。
concurrent/*
(并发模式下线程使用相关的参数)
我的问题是(是):使用默认安装时,SCIP 中如何使用线程? parallel/{min, max}threads
参数是否 仅 与并发求解器相关?如果我不打开并发求解器,SCIP 会使用可用线程并行求解分支定界子问题吗?
提前致谢!
SCIP 参数 "parallel/" 和 "concurrent/" 部分中的所有参数 space 仅影响并发模式。
SCIP 默认是单线程的,但可以使用 UG-framework 或启用并发模式来并行化。
并发优化由交互式 shell 中的“concurrentopt”或 C API 中的方法“SCIPsolveConcurrent()”启动。使用的线程数可以通过parallel/minnthreads和parallel/maxnthreads来控制。如果设置了严格的内存限制,则线程数可能会进一步减少。
当您在 Hans Mittelmann 的网页上查看未缩放的求解时间时,您会发现 FiberSCIP 实现了轻微的加速。你说速度会变慢的说法可能是因为最佳求解器的相对性能更差。
总的来说:对于两种并行化方案,并行化是否具有提高性能的潜力是高度instance-dependent。
在SCIP的参数列表中,我看到三种线程使用的引用:
lp/threads
(根据this问题,用于求解LP的线程,在使用SoPlex时无关紧要)。parallel/{min, max}threads
(并行求解期间的线程数)。concurrent/*
(并发模式下线程使用相关的参数)
我的问题是(是):使用默认安装时,SCIP 中如何使用线程? parallel/{min, max}threads
参数是否 仅 与并发求解器相关?如果我不打开并发求解器,SCIP 会使用可用线程并行求解分支定界子问题吗?
提前致谢!
SCIP 参数 "parallel/" 和 "concurrent/" 部分中的所有参数 space 仅影响并发模式。
SCIP 默认是单线程的,但可以使用 UG-framework 或启用并发模式来并行化。
并发优化由交互式 shell 中的“concurrentopt”或 C API 中的方法“SCIPsolveConcurrent()”启动。使用的线程数可以通过parallel/minnthreads和parallel/maxnthreads来控制。如果设置了严格的内存限制,则线程数可能会进一步减少。
当您在 Hans Mittelmann 的网页上查看未缩放的求解时间时,您会发现 FiberSCIP 实现了轻微的加速。你说速度会变慢的说法可能是因为最佳求解器的相对性能更差。
总的来说:对于两种并行化方案,并行化是否具有提高性能的潜力是高度instance-dependent。