New or Improved Features¶
Version 12.0.0¶
Global Updates¶
Gurobi Compute Server now supports Gurobi Optimizer 12.0.0, in addition to past releases: 11.0.x and 10.0.x. Older versions are no longer supported nor packaged in the compute server.
Starting with 12.0.0, the reference manual of the Gurobi remote services, including the Compute Server and the Cluster Manager, is available on this website.
Thread-based Load balancing¶
The Compute Server supports thread-based load balancing of jobs across
multiple nodes. This provides finer control over job allocation to nodes.
Administrators must specify the thread limit for each node, which defines the
maximum number of threads that can be reserved by all running jobs using the
NODE_THREADLIMIT
parameter. We recommend specifying the thread capacity
for each node in the cluster, as each node may have a different capacity
depending on its available hardware.
Additionally, submitted jobs can specify the maximum number of threads they
are allowed to use, referred to as thread reservation. The thread reservation
can be set using the ThreadLimit
Gurobi environment parameter or the
--thread-limit
command-line flag when submitting a batch with
grbcluster
. If the thread reservation is not specified, or if an older
version is being used, the thread reservation will default to the node’s
thread limit divided by the number of allowed concurrent jobs.
Once a job is submitted, the nodes will collaborate to find an appropriate placement based on where the most threads are available. If there is a tie, the system will prefer nodes with fewer running jobs. Note that if a job is submitted with a thread reservation exceeding the thread limit of all nodes, it will be rejected. Otherwise, the job will be queued until a node with enough available threads is found. The load-balancing algorithm is greedy and will select the first job it can run.
In order to better support the thread-based load balancing explained above, the Cluster Manager provides additional visibility. To this end, the node view now includes the display of the node thread limit and the current thread reservation.
Job Interruption¶
Administrators can now interrupt a job that is already running in
the cluster using actions in the Web UI or the command line
grbcluster job interrupt <JOBID>
. If the job is in the middle
of an optimization, it will stop gracefully, as if it had reached
a normal stopping condition, such as a time limit. However, the
job itself will continue running, and it will wait for next
command. This can help free up machine resources while allowing
the client to react, retrieve the current solution, or take other
appropriate actions. Note that this feature is only supported in
runtimes 12.0.0 and later, and it will be ignored in earlier
versions.