[Scip] 70% of solving time is spent in checkLazyColArray
Stefan Heinz
heinz at zib.de
Sun Aug 12 21:11:50 MEST 2012
Hi Sebastian,
I checked the code for the checkLazyColArray() method. This method
should only be called if SCIP is compiled in debug mode.
#ifndef NDEBUG
/** method checks if all columns in the lazycols array have at least one
lazy bound and also have a counter part in the
* cols array; furthermore, it is checked if columns in the cols array
which have a lazy bound have a counter part in
* the lazycols array
*/
static
void checkLazyColArray(
SCIP_LP* lp, /**< LP data */
SCIP_SET* set /**< global SCIP settings */
)
{
SCIP_Bool contained;
int c;
int i;
...
}
#else
#define checkLazyColArray(lp, set) /**/
#endif
If I remember right you are compiling SCIP yourself under Windows.
Please use "-DNDEBUG" as compiler option to make sure that *all* debug
checks (not only that one) are turned off. That will give you a speed up
;-) and might solve your "old" problem. You also should add
"-DNPARASCIP" as compiler options as well.
Best Stefan
"
On 08/10/2012 08:14 AM, Sebastian Ruther wrote:
> Hello,
>
> I noticed that a large amount of time is spent in checkLazyColArray. Of
> a time limit of 4h about 10k seconds (i.e. 70%) are spend in this
> function. Btw, this time is not accounted for in the output generated by
> SCIPprintStatistics.
>
> The function has 2 double loops over nlazycols and ncols. When this
> function is called the first time, both are close to 40k. At that point
> the function takes 12 seconds to run. The function is called frequently
> when switching to a different node but not every time.
>
> I assume that usually a larger number of columns can be handled by SCIP
> which would suggest that this function should not be called often as it
> is very expensive. So the question is: what can I do to avoid calling it?
> Why does it shrink columns? Not sure if it has anything to do with it
> but I don't have colagelimit or cleanupcols(root) activated.
>
> The call stack is
> checkLazyColArray
> SCIPlpShrinkCols
> SCIPtreeLoadLP
> SCIPconstructCurrentLP
> solveNodeInitialLP
> solveNodeLP
> propAndSolve
> solveNode
> SCIPsolveCIP
> SCIPsolve
> runSCIP
>
> FYI I'm still running SCIP 2.1.1
>
> Thank you for your help,
> Sebastian
>
>
>
>
>
>
> _______________________________________________
> Scip mailing list
> Scip at zib.de
> http://listserv.zib.de/mailman/listinfo/scip
More information about the Scip
mailing list