When a paper says they used the intlinprog in MATLAB to solve an integer program, what system actually does the solving? I have seen documentation about Gurobi and MATLAB: does Gurobi always provide the solving for MATLAB or is that just one option? What is the "default" solver? Is it a high quality solver?
Mention of intlinprog, without further specification, generally means the
intlinprog of the MATLAB Optimization Toolbox.
However, Gurobi also has a function called
intlinprog, which mimics the interface of the MATLAB Optimization Toolbox
intlinprog, but which calls the Gurobi solver. Similarly with Mosek. CPLEX has
cplexintlinprog, which mimics the interface of the MATLAB Optimization Toolbox
intlinprog. Gurobi, Mosek, and CPLEX also offer other interfaces in MATLAB offering additional functionality not available through the (cplex)intlinprog functions.
As to which winds up being the default, that depends on the order of entries in the MATLAB path. Many people don't even realize which solver they are using, and it wouldn't surprise me if there are published papers in which the author(s) used a different solver than what they thought.
Further compounding the potential confusion is that
intlinprog might be called through an optimization modeling tool (language), in which case the user is further removed from the actual solver selection. Editorial note: yes of course you should look at the solver output, at least during debugging and check out, but many people do not.