首页 > 解决方案 > 谷歌计算引擎提高单线程性能

问题描述

我有一个受 cpu 限制的单线程进程。顶部显示负载大于一。在考虑成本的情况下增加 CPU 吞吐量的最佳方法是什么?我看到您可以同时提高 cpu 速度和 cpu 核心。例如,看起来我可以在下拉中使用 4 或 8 个 CPU 来获得边际速度提升。但是,这意味着在我的情况下,我要为不需要的核心付费。

我看到还有另一个选择 cpu 平台类型的选项。这似乎是对不同网桥架构的选择。这意味着我可以更快地访问内存,并且可能(我不知道)更快的 cpu 处理管道。

我不确定哪个是最好的选择,我不想调整比我的成本增加一倍以上的设置。

任何建议表示赞赏。

标签: google-cloud-platformgoogle-compute-engine

解决方案


这不是一个成熟的科学测试。我只是从头到尾运行了一些代码,并以编程方式记录了挂墙时间。在更换 cpu 平台之间,我在重启后稍等片刻,让事情安定下来。我没有等待相同的指定时间或直到顶部显示某些指定的负载水平。用于测试的代码是带有一些 BigQuery 访问权限的 python 3、pandas 和 numpy。基本上它的代码我有兴趣为开发目的更快地运行。一些配置运行不止一次。话虽如此,这是我的结果:

CPU 平台选择(每次运行的秒数)

  • 自动 141.42、124.96、123.58
  • 英特尔 Skylake 128.32、107.88、107.93
  • 英特尔 Broadwell 115.06、116.02
  • 英特尔 Haswell 135.31
  • 自动与 GPU NVidia Tesla P100 92.62, 91.87

我最后做了 GPU 测试,我认为它不会改善结果。这段代码不使用 tensorflow,据我所知,pandas 也不使用 GPU 库,因此使用 GPU 的性能提升是出乎意料的。

我对这个项目没有完整的计费可见性,因此我无法记录平​​台之间的任何成本差异。我想一个好的测试是看看你是否可以观察到不同测试运行的计费变化。


推荐阅读