我正在超级计算机中心本地使用Gekko。我有一个解决MINLP的脚本,该脚本可以轻松扩展以添加更多的Mixed integer变量。我想了解随着变量数量的增加以及需要请求多少内存,计算将变得多么昂贵。
当我仅请求一个当前正在使用的大小的节点时,会收到以下错误:
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
我可以继续增加节点的数量,但是如果运行它会大大高估内存量,那么我就必须为额外的未使用内存分配付费。是否有一个函数可以估算模型构建器中所需的内存?
答案 0 :(得分:3)
在Gekko中没有一种方法可以预测内存使用情况,但是如果您使用的是Linux,则可以使用以下方法来衡量内存使用情况:Check memory usage of subprocess in Python
在模型构建和求解期间分配内存。有时在求解过程中会根据矩阵分解来分配额外的内存。如果您对问题的排列很小,则每个后续求解都应使用大约相同数量的内存。
您可以通过MAX_MEMORY限制某些内存使用: https://apmonitor.com/wiki/index.php/Main/OptionApmMaxMemory
m.options.MAX_MEMORY = 3