- Gurobi Instant Cloud
- Someone starts a Gurobi session on a client machine. The application hangs or fails in a way that does not exit the process. The job continues to run on the server. As long as this process is open the Gurobi Instant Cloud pool will continue to run and time will be billed. These are sometimes called, "zombie jobs."
- You have jobs that run intermittently. It is rare that one job runs immediately after another one. You want to stop logging billable time as soon as a job completes.
- You have jobs that start one after the other. You do not want to wait for the server to start for each one.
Gurobi Instant Cloud provides two parameters on pools that give control over the situations described above.
Gurobi client environments open a connection to the Instant Cloud and as long as the environment is active (not deleted or freed), the pool will continue to log billable time.
The Instant Cloud pools can continue to run for a specified time after the last job is finished.
Case 1: Use pool setting "Idle Job Timeout" to kill "zombie" jobs automatically.The value you specify is the number of minutes the server should wait before the job should be killed on the server.
"Idle Job Timeout" will kill an idle job and "Idle Shutdown" will shut down an idle cloud instance.
Details for Case 1:
The behavior of the Idle Job Timeout parameter is controlled by settings on the cloud server side and on the client side. The purpose is to have the cloud server kill a job when it has received no commands from the client for a specified period of time.
Three ways to set the Idle Job Timeout:
1. In the Instant Cloud Manager settings for a Pool. The parameter is labeled "Idle Job Timeout." Its value should be specified in minutes.
2. On the client using the license file specify IDLETIMEOUT: the value is expressed in seconds. Add a line like this to the license file:
to set the idle job timeout to 10 minutes. This setting is in seconds.
3. On the client using the Gurobi API for the Environment object: Set the parameter CSIdleTimeout. Its value is expressed in seconds.
Then the maximum of the two values (pool setting and client setting) is used.
For Instant Cloud there is actually a default setting for the Job Idle Timeout of 30 minutes. This means that any pool setting for Idle Job Timeout that is under 30 minutes will be ignored if there is no explicit setting on the client. In other words, the client default setting for CSIdleTimeout of 30 minutes overrides the server pool setting.
Case 2 Solution:
Specify a low value for Idle Shutdown in the Instant Cloud Manager settings for a Pool.
After the last job quits running, the server will keep running for the duration of "Idle Shutdown" (in minutes). In other words, you should set the Idle Shutdown to turn off the server a certain number of minutes after the last job ends.
Note that the value of 0 means default -- which is 60 minutes.
Case 3 Solution:
Specify a high value for Idle Shutdown in the Instant Cloud Manager settings for a Pool. The motivation for this is to avoid starting a server every time a new job comes in.