使用API​​创建批处理


使用API​​创建批处理

批处理优化是只有Gurobi Cluster Manager可用的功能。它允许客户端创建模型,标记该模型中的一组相关元素,然后将该模型提交为批次。响应返回唯一的批处理ID,允许客户查询并监控批处理的状态(提交,已完成等)。处理批处理请求后,客户端可以将其解决方案和模型中标记元素的相关属性作为JSON文档检索。

在本节中,我们只想通过简要说明这些步骤来介绍API的原理。遵循的代码片段显示主要概念,但不一定是完整的程序。你可以参考Gurobi参考手册有关完整API的详细信息以及完整和功能示例。

此过程中的第一步是通过连接到群集管理器并启用批处理模式来创建批处理环境CSbatchMode.范围。要使用群集管理器验证应用程序,您有两个选项。首先是通过设置来使用您的用户名和密码用户名服务器密码参数。我们推荐的第二个是使用API​​键并设置CsapiaceSID.CSapisecret.参数。为了简单起见,我们在代码片段中直接设置这些参数,但我们建议您在许可文件中设置它们,或者从环境变量中读取它们的值,以避免对它们进行硬编码。

然后,您可以构建模型,标记您想要在解决方案中导出的变量和其他元素,最后您可以提交批处理,该批处理提供批处理ID。

下面的Python代码演示了这些步骤:

导入gurobipy作为gp#创建一个带gp.env的批处理环境ff20-4e5d-a639-10105e56b264')env.setParam('CSAPISecret','D588F010-AD47-4310-933E-1902057661C9')env.SetParam('csbatchMode',1)env.start()#使用GP构建模型.Read('misc07.mps',env)作为模型:#设置标签来控制解决方案导出[...]#提交并获取批处理ID Batchid = model.optimizebatch()

然后,您的客户端或应用程序可以监视批处理状态。下面是一个访问和打印当前状态的例子:

#使用gp.env(空= true)创建一个批处理环境,如env:env.setParam('csManager','http:// localhost:61080')env.setParam('CsapiackId','0e8c35d5-ff20-4e5d-A639-10105E56B264')env.SetParam('CSAPISecret','D588F010-AD47-4310-933E-1902057661C9')env.SetParam('csbatchMode',1)env.start()#使用gp.batch获取批处理信息(Batchid,ENV)作为批处理:打印(“批量ID {}:错误代码{}({})”。格式(batch.batchid,batch.batcherrorcode,batch.batcherrormessage))

批处理完成后,您可以将解决方案作为JSON对象检索:

#使用gp.env(空= true)创建一个批处理环境,如env:env.setParam('csManager','http:// localhost:61080')env.setParam('CsapiackId','0e8c35d5-ff20-4e5d-A639-10105E56B264')env.SetParam('CSAPISecret','D588F010-AD47-4310-933E-1902057661C9')env.SetParam('csbatchMode',1)env.start()#使用gp.batch获取批处理信息(batchid, env) as batch: # Get JSON solution as string, create dict from it sol = json.loads(batch.getJSONSolution()) # Pretty printing the general solution information print(json.dumps(sol["SolutionInfo"], indent=4))