A number of modules in xserver use a so-called solver to perform complex mathematical calculations quickly. While a solid solver is already shipped with xserver at no extra cost, we support accelerating certain modules by using the commercial Gurobi solver instead.
Modules which can benefit from Gurobi are:
To find out whether you can benefit from switching to Gurobi, please contact our support.
Gurobi is a third party product and has to be licensed separately of xserver.
Be aware that the type of license can affect the number of queries a server can process in parallel. Please see the next section for more information.
To enable Gurobi in xserver you need to perform the following steps:
GRB_LICENSE_FILE
environment variable exists that contains the full path including the file name and file extension of your gurobi license file.conf/xserver.conf
and set the solverType
for all modules you want to use Gurobi with to Gurobi
. E.g. for xcluster this would be:
xcluster {
solverType = "Gurobi"
}
conf/xserver.conf
does not
include Gurobi enabled modules in more back-end instances than your Gurobi
license allows for. You can achieve this by creating a Gurobi specific
modules definition. Assuming your license allows for no parallel use
of Gurobi, but you still want to be able to handle parallel xroute and xdima
requests at the same time, the core modules configuration could look like the
following:
core {
modules {
definitions {
default {
services = [xroute, xdima]
}
gurobiEnabled {
services = [xcluster]
}
}
instances {
default = 4 // Still allow four parallel xroute or xdima requests
gurobiEnabled = 1 // Only allow a single Gurobi related one
}
}
...
}
If you are unsure about the best configuration for your back-end instances, our support will be able to assist you.