Starting Gurobi Remote Services
Starting Gurobi Remote Services
Important note: you only need to start Gurobi Remote Services if you are
setting up a Compute Server or a distributed worker (for use in distributed
algorihms). If you are not
sure whether you need to start Gurobi Remote Services, you can examine the
contents of your gurobi.lic
file. If it contains the line
CSENABLED=1
, then you need Gurobi Remote Services.
If it contains a line that begins with DISTRIBUTED=
, and if
you plan to run distributed algorithms, then you also need Gurobi
Remote Services.
On Linux systems, Gurobi Remote Services is a daemon that allows a server to perform Gurobi computations on behalf of other client machines. The set of services the server provides depends on your license. If you are setting up a machine as a distributed worker, no license is required. In this case, the only service provided by the server is to act as a worker in a distributed algorithm. If you have a Compute Server license, then servers running Gurobi Remote Services can provide a variety of services, including offloading computation from a set of clients, balancing computational load among the servers, and providing failover capabilities, in addition to acting as a distributed worker.
To start the Gurobi Remote Services daemon, run the program
grb_rs
(with no arguments) on your server. You only need to do
this once -- Gurobi Remote Services will keep running until you stop
it (or until the machine is shut down). If you are setting up a
Gurobi Compute Server, be sure that the license key file has been
installed before starting Gurobi Remote Services. Note that Gurobi
Remote Services runs as a user process, so you do not need root
privileges to start it.
If you would like Gurobi Remote Services to restart automatically when the
machine is rebooted, there are a number of options for doing so
(including /etc/rc.local
and upstart
). You should talk
to your system administrator.
Gurobi Remote Services parameters
Note that Gurobi Remote Services has a few user-configurable parameters.
You can set these by creating a grb_rs.cnf
file and placing
it in the same directory as grb_rs
. Please
consult the
Gurobi Remote Services section of the Reference Manual
for details.
Starting and stopping the grb_rs Gurobi daemon
To stop Gurobi Remote Services if it is already running, you can issue the
grb_rs -s
command. You can also use the ps
command to
find the relevant process ID, and the kill
command to terminate
that process.
Output from Gurobi Remote Services goes to the system log
(/var/log/syslog
). You should see a message similar to the
following when you start the server:
Mar 9 12:37:21 mymachine grb[7917]: Gurobi Remote Services started: Sat Mar 9 12:37:21 2015By default, Gurobi Remote Services only produces logging output when it starts. Start Gurobi Remote Services with the
-v
switch to obtain
more detailed logging information. For example, this option will
generate a log message each time a client job starts
Firewalls
If you run into trouble accessing Gurobi Remote Services,
check to see if the server is running firewall software that
might be blocking access to some ports. Gurobi Remote Services uses
port numbers 61000-65000 by default, so you'll need to open access to
these ports on the server. Please consult the documentation for your
firewall software to determine how to do this. If there's a conflict
on the default port, you can choose a different one by adding a
PORT
line to both the server and the client license key
files:
PORT=46325You can choose any available port number.
Next steps
Once you've set up Gurobi Remote Services, you should test the state of the server. Type this command on your server:
gurobi_cl --server=localhost --statusIf the output includes the following line:
Gurobi Remote Services functioning normallythen Remote Services is ready for use.
Client programs will need to know how to reach your server. If you are using Gurobi Compute Server, this is typically done with a client license file. You should set that up now.
If you've set up distributed workers in order to run a distributed algorithm, you'll use the WorkerPool parameter to tell the client machine how to access the servers. When you are ready, you can obtain more information in the distributed algorithm section of the Reference Manual
Subsections