When using Gurobi Instant Cloud, the environment on the client opens a connection to the Instant Cloud and the pool logs billable time as long as the environment is active.
Gurobi Instant Cloud provides two parameters to control how long the pools can continue to run after the last job is finished:
- "Idle Job Timeout" specifies how long to wait before terminating an idle job.
- "Idle Shutdown" specifies how long to wait before shutting down an idle cloud instance.
Idle Job Timeout
The pool setting "Idle Job Timeout" specifies the number of minutes the server should wait before an idle job should be terminated on the server. A job is considered to be idle when the server has received no commands from the client.
Three ways to set the Idle Job Timeout
- In the Instant Cloud Manager settings for a Pool. Set the "Idle Job Timeout" to the number of minutes to remain idle before terminating the job.
- On the client using the license file. Add a line with IDLETIMEOUT to the license file:
to set the idle job timeout to 10 minutes. This setting is in seconds.
- On the client using the Gurobi API for the environment object. Set the parameter CSIdleTimeout to the number of seconds to remain idle before terminating the job.
- The maximum of the two values (pool setting and client setting) is used.
- For Instant Cloud, there is a default setting for the Idle Job 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 because the client default setting for CSIdleTimeout of 30 minutes overrides the server pool setting.
Example use: Zombie jobs
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." Use "Idle Job Timeout" to specify how long to wait before terminating an idle job.
The pool setting "Idle Shutdown" specifies the number of minutes the server should keep running after all jobs have been completed. Note that the value of 0 means default -- which is 60 minutes.
Example use: Intermittent 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. After the last job quits running, the server will keep running for the duration of "Idle Shutdown" (in minutes). You should set the Idle Shutdown to a low value.
Note, however, that you will always be charged for a minimum of 30 minutes when you start a pool.
Example use: Reduce time in "spin up"
If you have jobs that start one after the other and do not want to wait for the server to start for each one, you can specify a high value for "Idle Shutdown".