manbet体育手机客户端


广域网的绩效考虑因素(WAN)

在使用Gurobi Compute Server时通常要求您对代码进行任何修改,但在客户端和服务器通过慢速网络(例如,Internet)连接时,性能考虑有时会强制执行一些调整。我们将简要介绍一个问题的来源,并在其周围工作所需的变更。

在Gurobi Compute Server中,对Gurobi例程的调用可以导致客户端和服务器之间的网络消息。单个消息并不昂贵,但发送数百或数千条消息可能会非常耗时。Compute Server执行几件事以减少此类消息的数量。首先,它大量使用缓存。例如,如果在单个变量上请求属性,则客户端库将为所有变量检索并存储该属性的值,因此后续请求不需要额外的通信。此外,我们的懒惰更新模型建设的方法允许我们缓冲对模型的添加和修改,例如,您可以随时构建模型一个约束。当您请求模型更新时,您的更改将在一个大型消息中传送到服务器。

说过,我们应该添加,并非所有方法都缓存或缓冲。结果,我们建议您避免做以下事项:

  • 检索约束矩阵的单个行和列的非零值(例如,grbgetconstr.在c,GrbModel :: Getrow.在C ++中,gbmodel.getrow.在Java,grbmodel.getrow.在.NET中,和model.getrow.在Python)。
  • 检索单个字符串值属性。

当然,网络开销取决于发送的消息数量和这些消息的大小。我们自动执行数据压缩以减少传输非常大的消息的时间。但是,正如您所希望的那样,在慢速网络上解决非常大型型号时,您会注意到一些滞后。