In SCIP 4.0 a new feature has been added that allows to run multiple SCIP instances with different settings on one problem in parallel. To use this feature SCIP has to be compiled with an additional make option to enable the threading functionality (e.g. TPI=tny, see Makefiles / Installation information). Then, a concurrent solve can be started by using the
concurrentopt command instead of the
optimize command in the SCIP shell, or by calling the interface function SCIPsolveParallel(). To configure the behavior of the concurrent solving mode there are new parameters in the category
parallel/ which will be explained here shortly.
parallel/minnthreads can be used to configure the number of threads that sould be used for solving. SCIP will try to use the configured maximum number of threads. If the problem that is currently read is too large SCIP will automatically use fewer threads, but never go below the configured minimum number of threads.
concurrent/scip.../prefprio configure which concurrent solvers should be used. The concurrent solver
scip will use the same settings as the SCIP instance configured by the user. The other concurrent solvers, e.g.
scip-feas, will load the corresponding emphasis setting. The behavior of the prefprio parameter is as follows: If it is set to 1.0 for
scip-opti, and to 0.0 for every other concurrent solver, then the threads will be evenly distributed between the two types
scip-opti. An example: if 4 threads are used each of these concurrent solvers will use 2 threads. If the
prefprio for one solver is set to 0.33 and the other is set to 1.0, then the former will use 1 thread and the latter will use 3 threads of the 4 available threads.
To use custom settings for the concurrent solvers there is the parameter
concurrent/paramsetprefix. If custom parameters should be loaded by the concurrent solvers, then it must point to the folder where they are located (including a path separator at the end). The parameter settings must be named after the concurrent solvers, e.g. if only the concurrent solver
scip is used they should be named
scip-3. When different types of concurrent solvers are used the counter starts at one for each of them, e.g.