Distributed Algorithm Considerations¶
The distributed algorithms have been designed to be nearly
indistinguishable from the single machine versions. Our hope is that, if
you know how to use the single machine version, you’ll find it
straightforward to use the distributed version. The distributed
algorithms respect all of the usual parameters. For distributed MIP, you
can adjust strategies, adjust tolerances, set limits, etc. For
concurrent MIP, you can allow Gurobi to choose the settings for each
machine automatically or you can use concurrent environments
to make
your own choices. For distributed tuning, you can use the usual tuning
parameters, including TuneTimeLimit
, TuneTrials
, and
TuneOutput
.
Performance Across Distributed Workers¶
There are a few things to be aware of when using distributed algorithms,
though. One relates to relative machine performance. As we noted
earlier, distributed algorithms work best if all of the workers give
very similar performance. For example, if one machine in your worker
pool were much slower than the others in a distributed tuning run, any
parameter sets tested on the slower machine would appear to be less
effective than if they were run on a faster machine. Similar
considerations apply for distributed MIP and distributed concurrent. We
strongly recommend that you use machines with very similar performance.
Note that if your machines have similarly performing cores but different
numbers of cores, we suggest that you use the Threads
parameter to
make sure that all machines use the same number of cores.
Callbacks¶
Another difference between the distributed algorithms and our
single-machine algorithms is in the callbacks. The distributed MIP and
distributed concurrent solvers do not provide the full range of
callbacks that are available with our standard solvers. They will only
provide the MIP
, MIPNODE
, and POLLING
callbacks. See the
Callback
section of the
Gurobi Reference Manual) for details
on the different callback types.
Logging¶
The distributed algorithms provide slightly different logging
information from the standard algorithms. Consult the
Distributed MIP Logging
section of the
Gurobi Reference Manual) for details.