0

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

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

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

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

4

2 回答 2

0

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

不,我们不可以。

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

不它不是。

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

在此处输入图像描述

更好地使用修订后的、开销严格的、资源感知的阿姆达尔定律重新制定

你看那里。


寻求提高性能?

从这个开始,最好花一些时间调整交互式工具(那里的 URL)中的核心参数。

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

于 2020-05-21T07:07:17.390 回答
0

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

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

于 2020-05-21T03:40:25.603 回答