Yes, Gurobi Optimizer is designed to be deterministic. You always get the same results from the same inputs (model and parameters) on the same computer with the same Gurobi version. Gurobi Optimizer is also deterministic for parallel optimization: you always get the same results with multiple threads. However, if you change any inputs, including small changes like:
- Parameter values
- Rounding of coefficients
- Order of variables or constraints
Then you may get different results, even if everything else remains the same.
There is one exception when Gurobi Optimizer may not be deterministic: with time dependent behavior such as the TimeLimit parameter, where the timing can vary with computer workload. Note that concurrent optimization (Method=3) is also time dependent, so it can be nondeterministic in rare cases.