微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何通过同时按顺序运行来加快python脚本的速度

如何解决如何通过同时按顺序运行来加快python脚本的速度

我有一个优化程序(目前是一个jupyter笔记本,将优化本身外包到gurobi云),我需要对其进行多次迭代。到目前为止,我已经尝试在一夜之间同时运行同一脚本的多个版本。但是,这给我的计算机增加了负担(即,它崩溃了一次或两次,并且早上响应速度非常慢),并且似乎在程序启动后大约7个小时左右的某个时间使我的程序失败了,从而导致程序无法完成。 (该程序不会引发错误消息;它似乎只是停止产生优化输出。当我尝试执行较少的同时运行时,这种情况似乎较少发生。)

我怀疑我的问题的部分原因是我的记忆已满。我想知道如果同时运行脚本和顺序运行脚本是否会取得更大的成功,那么内存就清除了。我显然是计算机性能的新手,所以建议会有所帮助。

我目前的情况是:晚上8点,我开始并行运行脚本A和B,每个脚本包含100个单独的优化(作为for循环的一部分)。这似乎会将所有100个优化的输出保留在内存中,直到早上,这似乎使我的计算机速度大大降低,并且耗尽了一大堆存储空间(在我重新启动计算机后,该存储空间又免费了)。

相反,我想知道是否将A分为A1(前50个优化)和A2(后50个优化),然后将B分为B1和B2,然后运行A1是否会提高计算机的性能。和B1与A2和B2并行设置为在A1和B1完成后运行。

有人可以建议这样做是否可以改善我的表现吗?

解决方法

我不确定文件拆分是否具体,但是还有其他一些尝试的好方法,

  1. Reduce the number of threads
  2. 在内存不足的情况下,将求解方法设置为1,this is something that gurobi suggests
  3. nodefilestart parameter设置为较小的值

这些都是在模型运行时减少内存的事情。另一件事是减少您存储的模型数量。从技术上讲,这应该是自动发生的,但我认为我过去曾见过失败。在这种情况下,您可以尝试在循环结束时像开始前那样del model明确删除模型。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。