我已经用C++写了一个需要大量内存的计算机模拟程序。它在迭代中运行,并在每次迭代中分配大量内存,这些内存应该在迭代结束时释放。它还使用c++11的<thread>实现来并行运行程序。
当我在我的台式机上测试这个程序时,它运行得很好:它从来没有超过我允许的内存,并且在时间和迭代期间,没有任何堆栈。然而,当我将程序提交到我们的计算集群时,使用的内存(我只能通过排队软件访问)随着时间的推移而增长,并且到目前为止远远超过了我机器上使用的内存。
首先让我非常粗略地向您展示该软件是如何构建的:
for thread in n_threads:
vector<Object>