加快计算速度的方法

计算科学 表现
2021-12-04 17:21:18

好的,我有一个 FORTRAN 代码,它对初始条件的大型数据集的运动方程进行数值积分。我在我的 PC 上运行这个程序,每个数据集需要大约 1 天的计算时间。因此,如果有任何站点具有超快的 PC(或更好的处理器网格),我可以在其中上传 .exe 并更快地执行我的计算,我一直在徘徊。

有什么建议?!

2个回答

我感觉您对并行处理器的工作方式感到困惑。你说你的串行代码在你的双核机器上比在另一个单核 CPU 上运行得更快。这与您的 CPU 双核这一事实无关,而是它的时钟频率更高(并且每个时钟周期可能还执行更多指令)。双核 2.2 GHz CPU 确实听起来不像是最先进的 CPU,因此在更现代的 CPU 上运行时会获得一些性能(参见http://www.cpubenchmark.net/singleThread.html对于单线程基准测试)。最重要的是,如果你想处理多个数据集,多核 CPU 确实会给你带来一些好处。事实上,如果您经常这样做,您甚至可能会选择多核 CPU,例如 AMD Opteron 6000 系列(最多 16 个内核),即使它们的单线程性能较低。

如果您必须处理大量数据集,那么这样的升级不会削减它。在这种情况下,您可以尝试在计算网格 [1] 上获取计算时间,您可以同时使用数百个内核。请再次注意,只有在处理大量不同的数据集时,您才会从中受益。另一方面,如果您只有几个非常大的数据集,您将看不到任何好处。在这种情况下,您必须将问题划分为同时利用多个内核(并行化,例如使用MPI .

[1] 根据我的个人经验,大多数国家计算中心在 Linux/UNIX 上运行他们的网格。由于您提到您有一个 .exe,因此您必须货比三家才能找到 Windows HPC,否则您必须移植您的程序。

有商业服务可以做到这一点。参见例如亚马逊网络服务

如果您将此作为研究项目进行,您可能能够在众多超级计算中心之一获得时间。例如,参见国家超级计算应用中心