首页 > 解决方案 > 将一台设备上的计算时间转换为另一台设备的正确方法是什么?

问题描述

我正在为我的硕士论文研究用 python 编写的遗传算法。相关公司希望计算时间不超过 1 分钟。GA 将在 Windows 平板电脑上实施。GA 的开发是在 2013 款 MacBook Air 上完成的。为了评估,我想在 AWS/AZURE/.. 上针对不同的参数设置和各种情况运行 GA 100 次。是否有像 CPU 速度/teraflops/...这样的度量来将我的 Macbook 或云服务的计算时间转换为 Windows 平板电脑上计算时间的近似值。当然,其他方法也值得赞赏。

我知道计算机很复杂,很多方面都会影响计算时间。我认为最简化的解决方案可能是这样的:

COMPUTATION_TIME_ON_MACBOOK = 50. #In seconds
SOME_SPEED_MEASURE_OF_MACBOOK = 600
SOME_SPEED_MEASURE_OF_WINDOWS_TABLET = 400

COMPUATION_TIME_ON_WINDOWS_TABLET = COMPUTATION_TIME_ON_MACBOOK * SOME_SPEED_MEASURE_OF_MACBOOK / SOME_SPEED_MEASURE_OF_WINDOWS_TABLET

print(COMPUATION_TIME_ON_WINDOWS_TABLET)
75 #An approximation of the computation time on the windows tablet in seconds

标签: pythoncomputer-sciencecomputation-theory

解决方案


您应该做的是使用您假设的参数创建一个性能模型 - 处理器频率、DRAM 频率、SDD/HDD 读写速率、网络上/下带宽和延迟等 - 然后运行几种硬件配置. 获得数据后,您可以通过将模型拟合到结果来找到系数。如果您找到适合的参数,那么您可以使用它。否则,您可能需要调整模型。

例如,如果 CPU 频率为 X,DRAM 频率为 Y,SDD 读/写为 Z,没有网络或其他任何牵连,您的模型可能如下所示:

T(n) = (A/X +B/Y + CZ)n

我建议您每次迭代选择一个具有代表性的问题实例,固定 n,然后查看参数是否以及如何随 n 变化。祝你好运!


推荐阅读