Closed OllieKampo closed 1 year ago
Not all portfolios are compatible with all command line options. You can easily print and modify it. For example:
➜ clingo --print-portfolio | grep -v solver.14 > portfolio.txt
➜ echo | clingo --heuristic=Domain --parallel-mode=20 --configuration=portfolio.txt
clingo version 5.6.2 (e759a62)
Reading from stdin
Solving...
Answer: 1
SATISFIABLE
Models : 1
Calls : 1
Time : 0.001s (Solving: 0.00s 1st Model: 0.00s Unsat: 0.00s)
CPU Time : 0.003s
Threads : 20 (Winner: 3)
Thanks for the quick response. I understand, I will take a look at this, thanks!
I think the issue is though, that the error it reports with the lookback strategy isn't particularly helpful, since it is not obvious why changing the number of threads from 14 to 15 would suddenly cause an issue with the lookback strategy, which isn't mentioned on the command line.
Would I be correct in assuming that the problem happens because clingo changes its default configuration when the number of threads becomes large, therefore causing a conflict with other command line arguments (in this case the domain heuristic)?
I'm not sure how you'd make this error more helpful necessarily, but I hope you see what I mean.
Command line options overwrite options in the portfolio configurations. This can lead to conflicts. The error might be a bit hard to read but but <config>.[solver.14] : Heuristic requires lookback strategy!
indicates this conflict.
Looks like I need to do a bit more experimenting and reading on this then.
Thanks for the help Roland.
In the newest version of clingo, using the following options simultaneously:
--heuristic=Domain
and--parallel-mode=n,compete
, withn > 14
, throws an error*** ERROR: (clingo): <config>.[solver.14] : Heuristic requires lookback strategy!
.This is true on the command line and by using the python API. For example:
Enabling parallel mode with more than 14 threads, compete enabled, but no domain heuristic with
--parallel-mode=20,compete
for example does work fine though.If you use
--heuristic=Domain
and--parallel-mode=n,split
, withn > 14
it also works fine. It seems to be thecompete
that causes this. For example:I couldn't find anything in the documentation that mentioned this, but perhaps I was searching for the wrong thing.