【问题标题】:Should I change my original Python/Tensorflow code to make it run faster on HPC?我是否应该更改我原来的 Python/Tensorflow 代码以使其在 HPC 上运行得更快?
【发布时间】:2020-05-21 03:19:23
【问题描述】:

如果这个问题太基本,请原谅。我既不熟悉并行化的概念,也没有使用过 HPC 系统。

我正在训练一个深度学习模型,这在我的 PC 上需要很长时间。使用 12 GB RAM 的 i5 大约需要 2 天时间。

所以我决定使用 HPC,但在我看过的一个教程中,它说如果我没有正确编写代码,HPC 将不会比普通 PC 快。它的真正含义是什么?我是否应该调整我的原始代码以使 HPC 受益?

其次,我们可以说使用 30 核应该比使用 6 核快 5 倍吗?速度和核心数量成比例吗?

【问题讨论】:

  • 你可以查看我的答案

标签: performance tensorflow deep-learning hpc parallelism-amdahl


【解决方案1】:

Q“我们能说使用 30 核应该比使用 6 核快 5 倍吗?”

不,我们不能。

“速度和核心数量成比例吗?”

不,不是。

任何(潜在的)加速都有一个最终上限。阿姆达尔定律(即使在其最初的、开销天真的、忽略工作原子性的公式中)。

更好地使用修改后的、开销严格的、资源感知的Amdahl's Law re-formulation

你看到了。


寻求提高性能?

this 开始,最好花一些时间在交互式工具(那里的网址)中调整核心参数。

将经典库(如 TF 或其他)转换为高效的 HPC 工具并不容易,而且不会免费 - 附加的间接费用可能很容易(参考 INTERACTIVE TOOL 中的结果)破坏任何潜力HPC 能力,只是由于扩展性差(从几个 ns 范围内的成本到超过几个 ms 的成本正在扼杀游戏无论您花费多少 HPC 预算,不是吗?)

【讨论】:

    【解决方案2】:

    确实如此,如果您的代码需要很长时间,即使 HPC 也不足以快速运行它,我的意思是当代码难以在普通 PC 上运行时,您可以从 HPC 的性能中受益例如由于低处理器或 RAM 或任何有限的资源......等等

    但是,如果您编写的代码接近于 非多项式问题(具有非常高的时间复杂度),那么即使 HPC 也不够用,它会产生差异,但不会一个想要的例如,您正在编写一个时间复杂度非常高的代码,这将需要一台普通计算机 2 个月来执行,但对于一台 HPC 只需 1 个月

    【讨论】:

    • 我已经编辑了我的问题。实际上,我的代码远非非多项式问题。使用 12GB RAM 的 i5 大约需要 2 天。我想我的第一个问题的答案是“不,我不需要更改任何代码,我可以运行我在 PC 中运行的任何东西。”对吗?
    • @Arwen 老实说,我真的不知道它会如何影响时间(计算出来的),它说得很一般
    猜你喜欢
    • 2019-06-13
    • 2019-12-02
    • 1970-01-01
    • 2017-07-11
    • 2019-05-24
    • 2020-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多