如果这个问题太基本,请原谅。我既不熟悉并行化的概念,也没有使用过 HPC 系统。
我正在训练一个深度学习模型,这在我的 PC 上需要很长时间。使用 12 GB RAM 的 i5 大约需要 2 天。
所以我决定使用 HPC,但在我看过的一个教程中,它说如果我没有正确编写代码,HPC 不会比普通 PC 快。它的真正含义是什么?我是否应该调整我的原始代码以使 HPC 受益?
其次,我们是否可以说使用 30 核应该比使用 6 核快 5 倍?速度和核心数量成比例吗?
如果这个问题太基本,请原谅。我既不熟悉并行化的概念,也没有使用过 HPC 系统。
我正在训练一个深度学习模型,这在我的 PC 上需要很长时间。使用 12 GB RAM 的 i5 大约需要 2 天。
所以我决定使用 HPC,但在我看过的一个教程中,它说如果我没有正确编写代码,HPC 不会比普通 PC 快。它的真正含义是什么?我是否应该调整我的原始代码以使 HPC 受益?
其次,我们是否可以说使用 30 核应该比使用 6 核快 5 倍?速度和核心数量成比例吗?
问:“我们可以说使用 30 核应该比使用 6 核快 5 倍吗?”
不,我们不可以。
问:“速度和核心数量成正比吗?”
不它不是。
任何(潜在的)加速都有一个终极上限。阿姆达尔定律(即使在其原始的、开销天真的、忽略工作的原子性的公式中)。
更好地使用修订后的、开销严格的、资源感知的阿姆达尔定律重新制定。
你看那里。
从这个开始,最好花一些时间调整交互式工具(那里的 URL)中的核心参数。
将经典库(如 TF 或其他)转换为高效的 HPC 工具并不容易,也不是免费的 - 附加开销可能很容易(参考 INTERACTIVE TOOL 中的结果)破坏任何潜在的 HPC 能力,只是由于扩展性差(从几个成本范围内的ns
成本到高于几个成本的成本ms
会以您可能花费的任何 HPC 预算扼杀游戏,不是吗?)
是的,确实如此,如果您的代码需要很长时间,即使 HPC 也不足以快速运行它,我的意思是,当代码难以在普通 PC 上运行时,例如由于低处理器或RAM 或任何有限的资源……等等。
但是,如果您编写的代码接近于非多项式问题(时间复杂度非常高),那么即使 HPC 也不够用,它会产生差异,但不是想要的,例如您正在编写一个时间复杂度非常高的代码,普通计算机需要 2 个月才能执行,而 HPC 只需 1 个月