我是否应该更改我的原始 Python/Tensorflow 代码以使其在 HPC 上更快 运行?
Should I change my original Python/Tensorflow code to make it run faster on HPC?
如果这个问题太基础,请原谅。我既不熟悉并行化的概念,也没有使用过 HPC 系统。
我正在训练一个深度学习模型,这在我的 PC 上需要很长时间。在我的 12 GB RAM 的 i5 上大约需要 2 天。
所以我决定使用 HPC,但在我观看的其中一个教程中,它说如果我没有正确编写代码,HPC 不会比普通 PC 快。这到底是什么意思?我是否应该调整我的原始代码以便我可以受益于 HPC?
其次,我们是否可以说使用30核应该比使用6核快5倍?速度和内核数量成正比吗?
是的,这是真的,如果您的代码需要很长时间,即使 HPC 也不足以 运行 它快,我的意思是当代码难以 [=20] 时,您可以从 HPC 的性能中受益=] 在普通 PC 上 例如由于低处理器或 RAM 或任何有限的资源...等等 .
但是,如果您编写的代码接近于 非多项式问题(时间复杂度非常高),那么即使是 HPC 也不足以解决它,它将创造差异但不是想要的例如,您正在编写时间复杂度非常高的代码,普通计算机需要 2 个月才能执行,但 HPC 只需 1 个月
Q : "can we say that using 30 cores should be 5 times faster than using 6 cores?"
不,我们不能。
Q : "Is speed and number of cores proportionate?"
不,不是。
任何(潜在)加速都有一个最终上限。 Amdahl 定律(即使是其原始的、开销天真的、忽略工作原子性的公式)。
最好使用修订后的、开销严格的、资源感知的 Amdahl's Law re-formulation。
给你看。
为了提高性能?
从 this 开始,最好花一些时间在 交互式工具(URL 那里)中调整核心参数。
将经典库(如 TF 或其他)转换为 HPC 高效工具并不容易,也不是免费的 - 附加管理费用可能很容易(参考交互式工具中的结果)破坏任何潜在的 HPC 能力,只是由于扩展性差(从几 ns
的成本到几 [=11 以上的成本=] 正在杀死游戏,无论您花费多少 HPC 预算,不是吗?)
如果这个问题太基础,请原谅。我既不熟悉并行化的概念,也没有使用过 HPC 系统。
我正在训练一个深度学习模型,这在我的 PC 上需要很长时间。在我的 12 GB RAM 的 i5 上大约需要 2 天。
所以我决定使用 HPC,但在我观看的其中一个教程中,它说如果我没有正确编写代码,HPC 不会比普通 PC 快。这到底是什么意思?我是否应该调整我的原始代码以便我可以受益于 HPC?
其次,我们是否可以说使用30核应该比使用6核快5倍?速度和内核数量成正比吗?
是的,这是真的,如果您的代码需要很长时间,即使 HPC 也不足以 运行 它快,我的意思是当代码难以 [=20] 时,您可以从 HPC 的性能中受益=] 在普通 PC 上 例如由于低处理器或 RAM 或任何有限的资源...等等 .
但是,如果您编写的代码接近于 非多项式问题(时间复杂度非常高),那么即使是 HPC 也不足以解决它,它将创造差异但不是想要的例如,您正在编写时间复杂度非常高的代码,普通计算机需要 2 个月才能执行,但 HPC 只需 1 个月
Q : "can we say that using 30 cores should be 5 times faster than using 6 cores?"
不,我们不能。
Q : "Is speed and number of cores proportionate?"
不,不是。
任何(潜在)加速都有一个最终上限。 Amdahl 定律(即使是其原始的、开销天真的、忽略工作原子性的公式)。
最好使用修订后的、开销严格的、资源感知的 Amdahl's Law re-formulation。
给你看。
为了提高性能?
从 this 开始,最好花一些时间在 交互式工具(URL 那里)中调整核心参数。
将经典库(如 TF 或其他)转换为 HPC 高效工具并不容易,也不是免费的 - 附加管理费用可能很容易(参考交互式工具中的结果)破坏任何潜在的 HPC 能力,只是由于扩展性差(从几 ns
的成本到几 [=11 以上的成本=] 正在杀死游戏,无论您花费多少 HPC 预算,不是吗?)