考虑两台具有不同硬件和软件配置的计算机。在每个平台上运行完全相同的串行 Navier-Stokes 代码时,分别需要 x 和 y 时间为计算机 1 和 2 执行一次迭代。在这种情况下,, 是计算机 1 和计算机 2 之间的迭代时间差。
可能是什么影响的幅度? 一个明显的候选者是 CPU,我的主要问题是是否有其他因素可能会影响与CPU之间的硬件差异相同吗?
考虑两台具有不同硬件和软件配置的计算机。在每个平台上运行完全相同的串行 Navier-Stokes 代码时,分别需要 x 和 y 时间为计算机 1 和 2 执行一次迭代。在这种情况下,, 是计算机 1 和计算机 2 之间的迭代时间差。
可能是什么影响的幅度? 一个明显的候选者是 CPU,我的主要问题是是否有其他因素可能会影响与CPU之间的硬件差异相同吗?
该列表远未完成,但希望它的大小能够暗示可能因素的规模。我假设您正在从您选择的平台上的源代码编译代码。
软件
硬件
中央处理器
记忆
硬盘
这一切都忽略了不同制造商为使他们的芯片在市场上占据优势而包含的小技巧和功能。最大的问题是许多稀疏线性代数库受内存限制。进行稀疏矩阵乘法涉及大量数据移动而没有很多实际的触发器。
首先,@Godric 的回答很好,但我建议你考虑一下, 不是,所以你不必用问题的大小来限定它。
其次,您的问题特别排除了软件方面的差异。根据我的经验,仔细调整的性能回报可能是很大的因素,因此在考虑硬件问题时,不要忘记软件问题。毕竟,硬件只能执行你给它的指令,你给它的指令越少,它就会越快完成。
不要过多地扩展它,但是对于任何给定的问题,都有无数的程序可以解决它。其中,有些比其他所有花费的时间更少,这是一个下限。如果没有经过仔细调整,不要假设任何程序处于甚至接近这个下限。