[SCIP] A few questions on SCIP "concurrentopt" running mode

Marc Pfetsch pfetsch at mathematik.tu-darmstadt.de
Tue Oct 4 18:59:56 CEST 2022


Dear Vladimir,

I will try to answer inline.

On 04/10/2022 16:14, Vladimir V. Voloshinov wrote:
> Dear SCIP team members,
> recently I built SCIP 8.0.1 with -DTPI=tny|omp (both options have been 
> used to compare performance and other features). Both SCIP applications 
> enables "concurrentopt" command.
> 
> A lot of questions appeared. But the following are most important:
> 1) What is the reason that concurrent mode brings (if any) very small 
> performance increase? Moreover, for some problem single-threaded SCIP 
> solves it, but "concurrent SCIP" runs and runs without any visible results.

The concurrent mode uses several different settings on different 
threads. This sometimes significantly speeds up the solving process, but 
also sometimes does not help. Depending on your machine, the 
interference of the threads e.g. via memory access might even slow down 
things.

If you want a parallel solve, you should use FiberSCIP.

> 2) How to get detailed log to see how concurrent solvers handle the problem?
> I run SCIP with the same option "display/verblevel = 3", and 
> single-threaded "optimize" mode gives usual, detailed log, but 
> "concurrentopt" log is very brief.
> E,g. for 4 threads (5% gap, it ran 924 seconds) I see the following 
> (preamble is skipped)
> ======================
> ......
> initializing seeds to 1963210296 in concurrent solver 'scip-2'
> initializing seeds to 1332858414 in concurrent solver 'scip-3'
> initializing seeds to 1541326760 in concurrent solver 'scip-4'
> starting solve in concurrent solver 'scip-3'
> starting solve in concurrent solver 'scip-4'
> starting solve in concurrent solver 'scip-2'
> starting solve in concurrent solver 'scip-1'
> concurrent solver 'scip-2' stopped with status gap limit reached
> concurrent solver 'scip-1' stopped with status user interrupt
> concurrent solver 'scip-4' stopped with status user interrupt
> concurrent solver 'scip-3' stopped with status user interrupt
>   time | mem |  dualbound   | primalbound  |  gap
>    924s|3011k| 3.113715e-02 | 3.266507e-02 |   4.91%
> 
> SCIP Status        : solving was interrupted [gap limit reached]
> ....
> =============================
> Is it possible to get something similar to that output which, e.g., 
> FiberSCIP gives?

It is currently not implemented to have a similar output as FiberSCIP.

You can in principle turn on detailed output of a particular thread: You 
would need to change concsolver_scip.c:394

    SCIP_CALL( SCIPsetIntParam(data->solverscip, "display/verblevel", 0) );

But this should only happen for a particular thread. Otherwise you will 
get output of all threads mixed together.

Best

Marc


More information about the Scip mailing list