在计算密集型系统中,添加更多节点是否会导致(近)线性性能提高?



假设一个服务器集群,正在做计算密集型工作。

假设这个系统中没有数据库,没有文件存储或任何类似的东西。

假设集群中的每个节点都能够单独计算。

在这些假设下,添加更多节点是否会导致(近(线性性能提升?

如果不是,有哪些限制?

好吧,如果没有其他限制,显然可以获得线性性能提升。您可能会受到控制节点需要划分问题并合并结果的时间、节点之间的一般通信或其他因素的限制。 假设您已经在集群上运行计算,您可以在集群的不同子部分上运行一些基准测试,以获得算法如何扩展到已有节点数量的曲线。如果曲线在最后仍然线性缩放,您可能会认为它会继续缩放一段时间。

根据算法的不同,性能提升甚至可能是超线性的。如果内存访问时间是瓶颈的一部分,并且通过将问题分布在更多节点上,每个节点需要在内存中保存整个工作集的较小部分,以便您获得更少的磁盘访问,更多的缓存命中等,就会出现这种情况。不过,这种情况可能很少见。

最新更新