3

我在一个超级计算中心本地使用 Gekko。我有一个解决 MINLP 的脚本,该脚本可以轻松扩展以添加更多混合整数变量。我想了解随着变量数量的增加以及我需要请求多少内存,计算的成本会有多高。

当我仅请求 1 个当前正在使用的大小的节点时,我收到以下错误:

Error: At line 461 of file custom.f90
Traceback: not available, compile with -ftrace=frame or -ftrace=full
Operating system error: Not enough memory resources are available to process this command.

Memory allocation failed

Error: 'results.json' not found. Check above for additional error details

我可以继续增加节点的数量,但是如果我运行它时大大高估了内存量,我必须为额外未使用的内存分配付费。是否有一个函数可以估计模型构建器中所需的内存?

4

1 回答 1

2

在 Gekko 中没有预测内存使用情况的方法,但如果您在 Linux 中,这可能是衡量使用情况的一个选项:Check memory usage of subprocess in Python

在模型构建和求解期间分配内存。在求解过程中有时会根据矩阵分解分配额外的内存。如果问题的排列很小,则每个连续求解都应使用大约相同数量的内存。

您可以使用 MAX_MEMORY 限制一些内存使用: https ://apmonitor.com/wiki/index.php/Main/OptionApmMaxMemory

m.options.MAX_MEMORY = 3
于 2019-09-28T13:34:21.837 回答