[SCIP] Difference between SCIPsolve and SCIPsolveConcurrent

Gerald Gamrath gamrath at zib.de
Thu Apr 12 20:06:54 CEST 2018


Dear Guillerme,

you are right, SCIPsolveConcurrent tries to speed up the solving process 
by using multiple cores. It does not parallelize the tree search but 
runs the same instance multiple times in parallel with different 
settings, communicates some global information between the threads, and 
terminates when the first one is finished (in some deterministic 
approximation of time).

In order to use this, you need to compile one of the thread processing 
interfaces (TPI) of SCIP, be default, none is built. You can choose 
between TPI=tny (for TinyCThread, a portable implementation of a subset 
of the C11 threads) or TPI=omp (for OpenMP). If you compiled without 
TPI, the solve call for your pricing problem probably returns with some 
error and I guess you do not add a variable, which in the end causes the 
error you see because SCIP does not have a variable to branch on but 
also no optimally solved LP.

I hope that helps, please write again if this does not fix the issue.

Best,
Gerald

On 11.04.2018 02:06, Guillerme Duvillié wrote:
> Dear all,
>
> I'm a little bit puzzled about the difference between SCIPsolve and
> SCIPsolveConcurrent. Based on what I understood, SCIPsolveConcurrent was
> some sort of parallel implementation of SCIPsolve.
>
> If this is the case, I experience something that seems weird to me. I'm
> implementing branch and price algorithm for some special cases of
> multidimensional affectation problems. When I use SCIPsolve to solve the
> pricing problem, the resolution is really slow, the pricing is solved
> over and over again and the general solution gets stuck to the
> provided initial solution even after one hour of computations. On the
> other hand, using SCIPsolveConcurrent returns the following error after
> few miliseconds (and two pricing iterations):
>
> [src/scip/solve.c:4503] ERROR: pricing was aborted, but no branching
> could be created!
> [src/scip/solve.c:4933] ERROR: Error <-10> in function call
> [src/scip/scip.c:16231] ERROR: Error <-10> in function call
> [src/scip/scipshell.c:100] ERROR: Error <-10> in function call
> [src/scip/scipshell.c:392] ERROR: Error <-10> in function call
> [src/cmain.c:162] ERROR: Error <-10> in function call
> SCIP Error (-10): method returned an invalid result code
>
> Snce I'm a SCIP beginner, the probability that I made a mistake in my
> code is close to 1, but I cannot understand why switching from one
> solving method to another returns such different answer.
>
> Thank you in advance.
>
>
>
> _______________________________________________
> Scip mailing list
> Scip at zib.de
> https://listserv.zib.de/mailman/listinfo/scip

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listserv.zib.de/pipermail/scip/attachments/20180412/969cbd0b/attachment.html>


More information about the Scip mailing list