我正在docker容器中运行python应用程序,该容器使用pyomo来制定数学优化问题,并使用Gurobi cloud solver(Gurobi_direct)来解决优化问题
但是,在构建docker容器后的最初几次,应用程序运行良好。但在一段时间不使用应用程序(例如1小时)后,当尝试初始化gurobi模型并启动gurobi云解算器时,应用程序返回以下错误消息
Traceback (most recent call last):
File "/home/guser/miniconda/lib/python3.7/site-packages/pyomo/solvers/plugins/solvers/gurobi_direct.py", line 238, in _set_instance
self._solver_model = self._gurobipy.Model(model.name)
File "model.pxi", line 75, in gurobipy.Model.__init__
gurobipy.GurobiError: Network error
请注意,我第一次运行应用程序时,即第一次使用gurobi解算器时,日志文件显示以下消息(请注意,我将下面的日志文件修改为状态“[pool id&;name]”,而不是实际的池id):
------------------------ Start calculation steps -----------------------
Using license file /home/guser/gurobi.lic
INFO:gurobipy:Using license file /home/guser/gurobi.lic
INFO:gurobipy:Set parameter CloudAccessID
Set parameter CloudAccessID
Set parameter CloudSecretKey
Set parameter CloudPool to value [pool id & name]
INFO:gurobipy:Set parameter CloudSecretKey
INFO:gurobipy:Set parameter CloudPool to value [pool id & name]
Waiting for cloud server to start (pool [pool id & name])...
INFO:gurobipy:Waiting for cloud server to start ([pool id & name])...
Starting...
Compute Server job ID: [server Job-ID]
Capacity available on [pool id & name] cloud pool - connecting...
INFO:gurobipy:Capacity available on [pool id & name] cloud pool - connecting...
Established HTTPS encrypted connection
INFO:gurobipy:Established HTTPS encrypted connection
Parameter OutputFlag unchanged
Value: 1 Min: 0 Max: 1 Default: 1
在随后的几次中,它的表述有些不同:关于上一次运行的解决方案状态的警告,它跳过了关于建立https连接的部分,并从Outputlag和一个日志文件开始
WARNING: Loading a SolverResults object with an 'aborted' status, but
containing a solution
------------------------- Start calculation steps -----------------------
Parameter OutputFlag unchanged
INFO:gurobipy:Parameter OutputFlag unchanged
Value: 1 Min: 0 Max: 1 Default: 1
INFO:gurobipy: Value: 1 Min: 0 Max: 1 Default: 1
Changed value of parameter LogFile to /tmp/tmp0fd91rm9.log
INFO:gurobipy:Changed value of parameter LogFile to /tmp/tmp0fd91rm9.log
Prev: Default:
我感觉docker容器中的gurobi客户端会记住gurobi云服务器的作业ID,即使在由于空闲时间而关闭云服务器之后也是如此。这样,第二天,docker尝试使用旧作业ID访问云服务器计算机,但旧作业ID不再有效
目前没有回答
相关问题 更多 >
编程相关推荐