性能考虑广域网络(广域网)

通常在使用Gurobi计算服务器不需要你做任何修改代码,性能考虑有时会强迫你做一些调优当你的客户端和服务器连接通过缓慢的网络(如因特网)。我们将简要讨论问题的来源,和所需的更改工作。

Gurobi计算服务器,调用Gurobi程序会导致客户端和服务器之间的网络信息。个人信息并不昂贵,但发送成百上千的消息可能非常耗时。计算服务器做一些事情来减少这样的消息。首先,它使得大量使用缓存。如果你请求一个属性在一个变量,例如,客户端库将检索和存储所有变量,属性的值,所以后续请求不会需要额外的通信。另外,我们的懒惰的更新模型建立方法允许我们缓冲区添加和修改模型,你可以随时来构建模型约束,例如。更改传递到服务器在一个大消息当你请求一个模型更新。

已经说过,我们应该添加,并不是所有的方法都是缓存或缓冲。因此,我们建议您避免做以下事情:

  • 检索个人的非零值约束矩阵的行和列(使用,例如,GRBgetconstrs在C语言中,GRBModel: getRow在c++中,GRBModel.getRow在Java中,GRBModel.GetRow在。net,Model.getRow在Python中)。
  • 检索单个string值属性。

当然,网络开销取决于发送的消息的数量和这些消息的大小。我们自动执行数据压缩来减少所花费的时间将非常大的消息。然而,正如您可能期望的那样,你会发现一些延迟解决在网速较慢时非常大的模型。