如何让一个进程使用更多的RAM?

如何让一个进程使用更多的RAM?

我主要使用工作站对新配体/药物进行基于外壳的虚拟筛选(涉及算法和输出评估)和分子动力学。虚拟筛选每次涉及评估大约 100k-300k 配体。我通常将我的总配体分成许多簇。另外,我将工作拆分并在多个终端中运行(使用 Tmux),从而增加了容量。

正如一位论坛成员 @muru 在另一篇文章中指出的那样,我了解到我没有以正确的方式优化 RAM 的消耗。我的工作站有 16 个核心和 64 GB RAM。

每当我启动一项工作时,我的 CPU 利用率显示为 100% 使用,但我的 RAM 通常仅消耗 10 GB 或最多 15 GB。剩余的 RAM 从未被使用。

我的问题是:

如何优化才能充分利用 RAM?有没有办法让进程使用更多 RAM 来执行?

答案1

优化应用程序的关键是了解瓶颈在哪里。就您而言,计算速度似乎是瓶颈,因为 RAM 并没有限制您。然后,您必须询问您的程序是否会从拥有更多可用 RAM 中受益,需要问自己的一些有用的问题是:

  • 我的程序是否多次计算相同(相对较长)的事物?

如果是这样,您可以使用动态规划缓存长时间计算的结果,从而提高计算速度

  • 我的程序是否定期读取/写入磁盘?

如果你的读/写总是在同一个文件上,Linux会自动缓存/缓冲它们以提高速度,但如果你正在从多个文件中读取,或者以不可预测的方式,那么最好拉取所有数据你会需要从磁盘到 RAM,对存储在RAM中的数据进行所有计算,最后将所有内容写入磁盘。

相关内容