如何克服CPLEX OPL中的内存溢出1001错误

问题描述 投票:0回答:1

我在CPLEX OPL中运行一个相当大的问题,并出现错误:

CPLEX错误1001:内存不足

此错误会在17分钟内出现,此时底部的“引擎日志”标签还没有任何内容。有一些调试脚本脚本日志,它们会在这17分钟内显示。

问题相当大,对于某些数据,它已经运行了70个小时。

我在以下设置中将间隙公差设置为0.017:混合整数编程,公差。

尽管此问题在日志中未显示任何内容,但要给出一个具有较少约束的相似数据的想法,它可能具有超过1640个二进制变量和112335个其他变量,以及超过500万个非零系数。在此运行中,我介绍了更多的约束和变量(未添加二进制变量)。先前的问题已在另一台更高规格的计算机上以5小时的速度完成运行。

我的计算机具有以下规格:2.9 GHz,32 GB RAM。我已经重新启动计算机,以使OPL可以使用尽可能多的专用内存。

有关如何克服此问题的任何建议?

cplex opl
1个回答
1
投票

如果引擎内存不足,您可以做一些事情:

  1. 询问CPLEX将搜索树节点换出到磁盘上,请参阅用户手册CPLEX > User's Manual for CPLEX > Discrete optimization > Solving mixed integer programming problems (MIP) > Troubleshooting MIP performance problems > Running out of memory中的“使用节点文件进行存储”。
  2. 减少线程数,在极端情况下将其减少为1。

但是,如果您在引擎日志中没有看到任何内容,则可能是引擎甚至无法启动,因为在创建模型时OPL内存不足。您的模型尺寸似乎并不大。您可以尝试从命令行运行。另外,请确保不要在.mod中创建大量中间数据。

© www.soinside.com 2019 - 2024. All rights reserved.