如何估算 HPC 集群上的计算时间

How to estimate compute time on an HPC cluster

假设我有一个包含 27 个节点的 HPC 集群。我想执行 100 个作业,每个作业需要 10000 秒的计算时间。如果单个节点连续完成整个工作,则计算为 100 x 10000 秒,或 11.57 天。我的第一个假设是我可以简单地将 11.57 除以 27 以获得 0.43 天的集群计算时间。这是一个很好的估计吗?我觉得它可能会更复杂,而且我遗漏了一些东西。也许我只是想多了...我只是需要最准确的评估。

使用阿姆达尔定律 (https://en.m.wikipedia.org/wiki/Amdahl%27s_law),将总时间分成必须串行完成的部分和可以并行完成的部分。将第二部分除以你拥有的处理节点数,加上第一部分,你就可以很好地估计需要多长时间。

一般来说,如果您的作业在很大程度上是独立的,那么唯一必须连续完成的部分就是启动作业和收获结果(如果有的话),这些结果必须传回中央处理器。