When confronted with the task of choosing parameter values that might lead to better performance on a model, the long list of Gurobi parameters may seem intimidating. To simplify the process, we include a simple automated parameter tuning tool. From the interactive shell, the command is tune():
gurobi> m = read("/Library/gurobi1000/macos_universal2/examples/data/misc07")
The tool tries a number of different parameter settings, and eventually outputs the best ones that it finds. For example:
Tested 14 parameter sets in 26.71s Baseline parameter set: mean runtime 0.93s Default parameters # Name 0 1 2 Avg Max Std Dev 0 MISC07 0.90s 0.92s 0.98s 0.93s 0.98s 0.03 Improved parameter set 1 (mean runtime 0.74s): CoverCuts 1 Presolve 2 # Name 0 1 2 Avg Max Std Dev 0 MISC07 0.71s 0.75s 0.78s 0.74s 0.78s 0.03 Improved parameter set 2 (mean runtime 0.80s): Presolve 2 # Name 0 1 2 Avg Max Std Dev 0 MISC07 0.74s 0.80s 0.86s 0.80s 0.86s 0.05
In this case, it found that setting the
Presolve parameter to 2 and
CoverCuts parameter to 1 for model
misc07 reduced the
average runtime from 0.93 to 0.74.
Note that tuning is meant to give general suggestions for parameters that might help performance. You should make sure that the results it gives on one model are helpful on the full range of models you plan to solve. You may sometimes find that performance problems can't be fixed with parameter changes alone, particularly if your model has severe numerical issues.
Tuning is also available as a standalone program. From a command prompt, you can type:
> grbtune /Library/gurobi1000/macos_universal2/examples/data/p0033
Please consult the Automated Tuning Tool section of the Gurobi Reference Manual for more information.