Search code examples
scip

SCIP Customized settings not loaded


I have defined customized settings in a file called scip.set and put in in myscipdir/settings.

The settings contain

limits/time = 86400
limit/memory = 61440
lp/threads = 6

However, SCIP doesn't seems to load the customized settings, instead,

  1. default settings are used (see attached picture), and
  2. the parameter file is not found under /check/results directory.

May I know what is the correct way to do this? I can set both time and memory limits from make test command line, but I'd also need to set a higher number of threads.

customized settings not loaded

Note that in the figure, SCIP said "user parameter file scip.set not found - using default parameters", this is misleading, because in the next line, it said "loaded parameter file ...". If scip.set is really not in /settings, SCIP pops up an error saying that file not found and aborts.


Solution

  • There is more than that. I remember you run automated tests using the make test functionalities of SCIP (which you should always mention in your question, by the way). The settings you provide are read in, but then overwritten again (magic happens, as always, in "check/configuration_tmpfile_setup_scip.sh", see also your related question).

    You instead have to pass these particular configuration parameters as options to make like this:

    make test TIME=86400 THREADS=6 MEM=61440 [optional: SETTINGS=scip]
    

    If you do not pass these flags, they (currently) default to

    • TIME=3600
    • MEM=6144
    • THREADS= 1

    You find the definitions under "make/make.project". Some more available (in your case maybe read necessary) options are found in the section "Advanced Options" on How to run automated tests.

    This is a way to prevent you from accidentally using settings with undesired time limits (maybe even infinite limits) when you do automated tests. I admit that this might seem a bit complicated. Although the approach has saved us an almost infinite amount of CPU processing time, we have it on our agenda to facilitate both the testing system as well as its accessibility.

    Your bonus question about the behaviour of SCIP reading in settings files: The confusion comes because you named your settings "scip.set". Every time you open an interactive shell, SCIP will look for customized settings in the current working directory of this name, but use default settings if such a file does not exist. If, however, you specify a settings file via the SETTINGS-flag, but if the test script fails to locate this file in the settings directory, the script aborts to save you computation time with non-existent settings.

    EDIT1: By the way: Since you are using SoPlex as LP solver, You do not need to bother about the LP thread number; SoPlex is single-threaded.