What is the Objective
If you are a small to medium scale solution provider for optimization solutions and want to provide solutions using the world’s best solver, then you should go for GUROBI cloud, since prices are most attractive and management of multiple users is quite simple. You will have to pay something like – say 10 kUSD per in the cheapest setup – and 8 USD/h calculation time (prices are subject to change).
With a GUROBI cloud account like this you can manage multiple users and provide solutions – i.E. R, Pyhon, MATLAB or any other type of application using GUROBI as a solver.
Here I’ll show you, how to configure your account to manage multiple users or customers. In this post, you can get mor basic information on GUROBI cloud.
What you need
To start this tutorial, make sure you have a gurobi account and a valid GUROBI cloud license. When you are logged into your GUROBI account, check your cloud license here:
Choose “Downloads & Licenses” from the toplevel navigation bar and choose ‘Your Gurobi Licenses’. If you have a valid cloud license, the GUROBI Cloud Manager will show up:
If you see a screen like this, you are ready to configure your GOUROBI Cloud for multiple users or customers.
Configure multiple Users
As you can see, the GUROBI Cloud Manager starts showing your license(s). In my case, there is only one single license. If you just want to use GUROBI solver on your own, you’re fine with this. You could just download the GUROBI license by clicking on and installing it on your machine(s) where you have installed GUROBI locally – see this post for more details. From then on, your calculations would be performed in the cloud and you’ll get charged by gurobi according your useage.
However, if you want to use GUROBI Cloud from different Applications which your customers use to solve optimization problems, it is advantageous to manage them individually using pools and API-Keys.
Configure Pools and API-Keys
You can use pools and API-Keys to issue and handle license-files for different users. A pool is a configuration which allows a customer to have its dedicated environment and you can assign a specific type and number of machines, define the number of parallel Jobs as well as the Idle Shutdown Time. To configure pools, go to the ‘POOLS’ navigation item:
When clicking on the button you can define a new pool and configure a its properties, the licenses the pool should be attached to (in case you have multiple valid licenses), job options for allowing multiple jobs to be accepted or machine type, which defines the type of machine to be launched, as soon as the user connects to gurobi using the license dedicated to this pool.
You should assign the pool a name using a generic pattern, say a unique customer abbreviation and a random number (i.e. “cust-387521”), to prevent them being guessed by the customers. The license-file will show the pool name in plaintext and you don’t want customers to modify their license to make you charge another user for their traffic, in case you establish a usage-based accounting model.
After having configured some pools, you might see an overview like this:
Each pool shows a button, which allows you to download a gurobi license file dedicated to this pool. This is the license file you have to provide to your customer of a dedicated pool, in order to be assigned to that very pool with the configurations you made above.
However, in most cases you’ll only need multiple pools to make sure your customers have enough calculation power and their instances are not limited by other customers optimization traffic. In most cases besides configuring an appropriate pool, you might want to assign your users specific API-Keys. For this, select Settings / API Keys from the navigation menu in the Cloud Manager:
By clicking the (+) sign you can create new API Keys for your customers and download the license file they can use in order to connect to your gurobi cloud pool(s) using this license. This way you have the possibility to track their activity since their jobs will be annotated with the Access ID.
How You will get Charged
These parameters mentioned here are subject to change as anything connected to money and price tags or conditions is and depending on the type of company you’re working for things might be different. However this is how things look like at the time for me as I write this post (October 2020). To have a reliable information on pricing you will have to ask GUROBI for an offer here.
Currently the GUROBI Cloud charging philosophy is that you will get charged integral multiples of 30 minutes for each launch per machine in a pool. If you make an optimization call using GUROBI and do not shutdown the machine in the Cloud Manager, the machine would by default be running for another full hour and then shut down. Depending on your licensetype you’ll get charged 5 to 8 US$ for each hour of uptime of the cheapest machine-type (8 core machine). Faster machines with more cores will be more expensive.
You can configure the Idle Shutdown Time in your pool configuration to determine, how long each unused machine should be kept alive in idle state, before being shut down.