Industry News: Gurobi Optimization introduces client-server capabilities

The new Gurobi Optimizer version 5.5 adds client-server capabilities to its leading math programming solver. “We discovered that many of our customers are using client-server architectures for their optimization applications, for reasons that include the need to support multiple simultaneous users, the need for failover capabilities and the desire to make more efficient use of their investments in machines and software licenses,” says Edward Rothberg, COO of Gurobi Optimization. “We’ve added features into our latest release that make it much easier to build such applications.”

Specifically, the new Gurobi Compute Server provides:

  • Seamless integration of client-server capabilities into existing optimization applications. Applications that use the Gurobi APIs can optionally offload optimization computations to one or more servers with no changes to the application source code.
  • Powerful queuing and load balancing capabilities, with the ability to add server capacity on-the-fly. Users can easily scale server resources to meet the optimization demands of applications.
  • Automatic failover. If a server goes offline, or is taken offline for maintenance, the rest of the servers will continue to operate unimpeded. There is no single point of failure – no single machine going down would cause the network to go down or the queue to be lost.
  • Secure and efficient communication between the client and the server. The communication protocol utilizes on-the-fly data compression to reduce the volume of data transmitted, and performs 256-bit AES encryption to ensure the security of data.
  • Built-in administrative tools that allow administrators to view usage information, adjust user job priorities, bring servers down for maintenance, preempt running jobs, etc.

Based on early feedback, Gurobi expects that users will be especially interested in ensuring high availability. With automatic load balancing and failover, users can include stand-by servers in their everyday capabilities, providing more available resources without giving up rapid recovery capabilities if one or more servers go down.