Try our new documentation site (beta).
GRBEnv()
Constructor for GRBEnv
object.
You have the option of constructing either a local environment, which
solves Gurobi models on the local machine, a client environment for a
Gurobi compute server, which will solve Gurobi models on a server
machine, or an Instant Cloud environment, which will launch a Gurobi
Cloud server and solve models on that server. Choose the appropriate
signature for the type of environment you wish to launch.
GRBEnv | GRBEnv ( ) |
Create a Gurobi environment (with logging disabled). This method will also populate any parameter (ComputeServer, TokenServer, ServerPassword, etc.) specified in your gurobi.lic file. This method will also check the current working directory for a file named gurobi.env, and it will attempt to read parameter settings from this file if it exists. The file should be in PRM format (briefly, each line should contain a parameter name, followed by the desired value for that parameter).
In general, you should aim to create a single Gurobi environment in your program, even if you plan to work with multiple models. Reusing one environment is much more efficient than creating and destroying multiple environments. The one exception is if you are writing a multi-threaded program, since environments are not thread safe. In this case, you will need a separate environment for each of your threads.
Return value:
An environment object (with no associated log file).
GRBEnv | GRBEnv ( | bool | empty ) |
Create an empty Gurobi environment. Use GRBEnv::start to start the environment.
If the environment is not empty, This method will also populate any parameter (ComputeServer, TokenServer, ServerPassword, etc.) specified in your gurobi.lic file. This method will also check the current working directory for a file named gurobi.env, and it will attempt to read parameter settings from this file if it exists. The file should be in PRM format (briefly, each line should contain a parameter name, followed by the desired value for that parameter).
In general, you should aim to create a single Gurobi environment in your program, even if you plan to work with multiple models. Reusing one environment is much more efficient than creating and destroying multiple environments. The one exception is if you are writing a multi-threaded program, since environments are not thread safe. In this case, you will need a separate environment for each of your threads.
Arguments:
empty: Indicates whether the environment should be empty. You should use empty=true if you want to set parameters before actually starting the environment. This can be useful if you want to connect to a Compute Server, a Token Server, the Gurobi Instant Cloud or a Cluster Manager. See the Environment Section for more details.
Return value:
An environment object.
GRBEnv | GRBEnv ( | const string& | logFileName ) |
Create a Gurobi environment (with logging enabled). This method will also populate any parameter (ComputeServer, TokenServer, ServerPassword, etc.) specified in your gurobi.lic file. This method will also check the current working directory for a file named gurobi.env, and it will attempt to read parameter settings from this file if it exists. The file should be in PRM format (briefly, each line should contain a parameter name, followed by the desired value for that parameter).
In general, you should aim to create a single Gurobi environment in your program, even if you plan to work with multiple models. Reusing one environment is much more efficient than creating and destroying multiple environments. The one exception is if you are writing a multi-threaded program, since environments are not thread safe. In this case, you will need a separate environment for each of your threads.
Arguments:
logFileName: The desired log file name.
Return value:
An environment object.
GRBEnv | GRBEnv ( | const string& | logFileName, |
const string& | computeServer, | ||
const string& | router, | ||
const string& | password, | ||
const string& | group, | ||
int | CStlsInsecure, | ||
int | priority, | ||
double | timeout ) |
-
Create a client Gurobi environment on a compute server.
This method will also check the current working directory for a file
named gurobi.env, and it will attempt to read
parameter settings from this file if it exists. The file should
be in PRM format (briefly, each line
should contain a parameter name, followed by the desired value
for that parameter).
In general, you should aim to create a single Gurobi environment in your program, even if you plan to work with multiple models. Reusing one environment is much more efficient than creating and destroying multiple environments. The one exception is if you are writing a multi-threaded program, since environments are not thread safe. In this case, you will need a separate environment for each of your threads.
Arguments:
logFileName: The name of the log file for this environment. Pass an empty string for no log file.
computeServer: A Compute Server. You can refer to the server using its name or its IP address. If you are using a non-default port, the server name should be followed by the port number (e.g., server1:61000)
router: The router for a Compute Server cluster. A router can be used to improve the robustness of a Compute Server deployment. You should refer to the router using either its name or its IP address. If no router is used (which is the typical case), pass an empty string.
password: The password for gaining access to the specified Compute Server cluster. Pass an empty string if no password is required.
group: The name of the Compute Server group.
CStlsInsecure: Indicates whether to use insecure mode in the TLS (Transport Layer Security). Set this to 0 unless your server administrator tells you otherwise.
priority: The priority of the job. Priorities must be between -100 and 100, with a default value of 0 (by convention). Higher priority jobs are chosen from the server job queue before lower priority jobs. Depending on the configuration of the server, a job with priority 100 runs immediately, bypassing the job queue and ignoring the job limit on the server. You should exercise caution with priority 100 jobs, since they can severely overload a server, which can cause jobs to fail, and in extreme cases can cause the server to crash. This behavior is managed by the HARDJOBLIMIT, and is disabled by default. Refer to the Gurobi Remote Services Reference Manual for more information on starting Compute Server options.
timeout: Queue timeout (in seconds). If the job doesn't reach the front of the queue before the specified timeout, the call will exit with a JOB_REJECTED error. Use -1 to indicate that the call should never timeout.
Return value:
An environment object.
GRBEnv | GRBEnv ( | const string& | logFileName, |
const string& | accessID, | ||
const string& | secretKey, | ||
const string& | pool, | ||
int | priority ) |
-
Create a Gurobi Instant Cloud environment.
This method will also check the current working directory for a file
named gurobi.env, and it will attempt to read
parameter settings from this file if it exists. The file should
be in PRM format (briefly, each line
should contain a parameter name, followed by the desired value
for that parameter).
In general, you should aim to create a single Gurobi environment in your program, even if you plan to work with multiple models. Reusing one environment is much more efficient than creating and destroying multiple environments. The one exception is if you are writing a multi-threaded program, since environments are not thread safe. In this case, you will need a separate environment for each of your threads.
Arguments:
logfilename: The name of the log file for this environment. May be NULL (or an empty string), in which case no log file is created.
accessID: The access ID for your Gurobi Instant Cloud license. This can be retrieved from the Gurobi Instant Cloud website. When used in combination with your secretKey, this allows you to launch Instant Cloud instances and submit jobs to them.
secretKey: The secret key for your Gurobi Instant Cloud license. This can be retrieved from the Gurobi Instant Cloud website. When used in combination with your accessID, this allows you to launch Instant Cloud instances and submit jobs to them. Note that you should keep your secret key private.
pool: The machine pool. Machine pools allow you to create fixed configurations on the Instant Cloud website (capturing things like type of machine, geographic region, etc.), and then launch and share machines from client programs without having to restart the configuration information each time you launch a machine. May be NULL (or an empty string), in which case your job will be launched in the default pool associated with your cloud license.
priority: The priority of the job. Priorities must be between -100 and 100, with a default value of 0 (by convention). Higher priority jobs are chosen from the server job queue before lower priority jobs.
Return value:
An environment object.