Simple Example

Simple Example

After your cluster has been set up (which will be covered in this section), it is generally a simple matter to submit a job to it. As noted earlier, you have several options for indicating that you wish to offload your client Gurobi computation to a Compute Server: through command-line arguments, a license file, or a programming language API. The precise details will be covered in a later section. For now, we'll simply demonstrate the use of command-line arguments using gurobi_cl.

The command gurobi_cl stein9.mps would solve the model stored in file stein9.mps on your local machine. By adding a command-line argument, gurobi_cl --server=server1:61000 stein9.mps, we can instead offload the computation to the Gurobi Remote Services cluster that is listening on port 61000 of machine server1:

> gurobi_cl --server=server1:61000 stein9.mps
Compute Server job ID: 1e9c304c-a5f2-4573-affa-ab924d992f7e
Capacity available on 'server1:61000' - connecting...
Established HTTP unencrypted connection
Gurobi Optimizer version 8.1.1 build v8.1.1rc0 (linux64)
Copyright (c) 2019, Gurobi Optimization, LLC

Optimal solution found (tolerance 1.00e-04)
Best objective 5.000000000000e+00, best bound 5.000000000000e+00, gap 0.0000%

Compute Server communication statistics:
  Sent: 0.0 MBytes in 34 msgs and 0.00s (0.00 MB/s)
  Received: 0.0 MBytes in 141 msgs and 0.00s (0.00 MB/s)

The initial log output indicates that a Compute Server job was created, that the Compute Server cluster had capacity available to run that job, and that an unencrypted HTTP connection was established with a server in that cluster. The log concludes with statistics about the communication performed between the client machine and the Compute Server.

We'll now move on to discussions of setting up a cluster and using a cluster. The former is meant for cluster administrators. If you intend to be a client of a Remote Services cluster that has already been set up, you can skip this section.